Skip to content

[FEA]: deprecate and replace Python stages with existing C++ variants. #562

Open

Description

Is this a new feature, an improvement, or a change to existing functionality?

Improvement

How would you describe the priority of this feature request

Medium

Please provide a clear description of problem this feature solves

Morpheus maintains both C++ and Python variants of many stages, leading to confusion while running pipelines, testing, and debugging. It also allows for discrepancies between the implementations, as seen in #559.

By enforcing only a single implementation of a stage, we can reduce the complexity of the stage's API and eliminate discrepancies between the implementations, reduce required maintenance, and delete redundant code.

Describe your ideal solution

Consolidate, deprecate, and eventually remove Python implementation of stages in favor of existing C++ implementations:

  • add_classifications_stage.py
  • add_scores_stage.py
  • deserialize_stage.py
  • file_source_stage.py
  • filter_detections_stage.py
  • kafka_source_stage.py
  • preprocess_fil_stage.py
  • preprocess_nlp_stage.py
  • serialize_stage.py
  • triton_inference_stage.py
  • write_to_file_stage.py

Remove all references to CppConfig and supports_cpp_node, and update documentation accordingly.

Describe any alternatives you have considered

Maintain parity and testing of both Python and C++ implementations.

Additional context

If we absolutely need both a C++ and a Python implementation of a stage, we can either split that in to two stages, or provide a constructor argument dictating which implementation should be used.

Code of Conduct

  • I agree to follow this project's Code of Conduct
  • I have searched the open feature requests and have found no duplicates for this feature request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    • Status

      Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions