getindata/dbt-airflow-factory

View on GitHub
dbt_airflow_factory/tasks_builder/builder.py

Summary

Maintainability
A
30 mins
Test Coverage
A
100%

Avoid too many return statements within this function.
Open

        return self._create_task_for_model(
Severity: Major
Found in dbt_airflow_factory/tasks_builder/builder.py - About 30 mins to fix

    Specify string format arguments as logging function parameters
    Wontfix

                logging.debug("Manifest content: " + str(manifest_content))

    Used when a logging statement has a call form of logging.<logging method>(format_string % (format_args...)). Such calls should leave string interpolation to the logging method itself and be written logging.<logging method>(format_string, format_args...) so that the program may avoid incurring the cost of the interpolation in those cases in which no message will be logged. For more, see http://www.python.org/dev/peps/pep-0282/.

    Module 'contextlib' has no 'nullcontext' member
    Invalid

            task_group_ctx = task_group or contextlib.nullcontext()

    Used when a variable is accessed for an unexistent member.

    todo move parameters to configuration
    Wontfix

            # todo move parameters to configuration

    Used when a warning note as FIXME or XXX is detected.

    Use % formatting in logging functions and pass the % parameters as arguments
    Invalid

            logging.info(f"Created {str(tasks_with_context.length())} tasks groups")

    Used when a logging statement has a call form of logging.<logging method>(<string formatting>). with invalid string formatting. Use another way for format the string instead.

    Statement seems to have no effect
    Invalid

                run_task >> test_task

    Used when a statement doesn't have (or at least seems to) any effect.

    Expression result_tasks[node].get_end_task() >> result_tasks[neighbour].get_start_task() is assigned to nothing
    Invalid

                (result_tasks[node].get_end_task() >> result_tasks[neighbour].get_start_task())

    Used when an expression that is not a function call is assigned to nothing. Probably something else was intended.

    Import from dbt_airflow_factory.tasks import ModelExecutionTask, ModelExecutionTasks should be placed at the top of the module
    Open

    from dbt_airflow_factory.tasks import ModelExecutionTask, ModelExecutionTasks

    Used when code and imports are mixed

    third party import from dbt_graph_builder.node_type import NodeType should be placed before from dbt_airflow_factory.constants import IS_FIRST_AIRFLOW_VERSION
    Open

    from dbt_graph_builder.node_type import NodeType

    Used when PEP8 import order is not respected (standard imports first, then third-party libraries, then local imports)

    Line too long (114/100)
    Open

                    check_all_deps_for_multiple_deps_tests=self.airflow_config.check_all_deps_for_multiple_deps_tests,

    Used when a line is longer than a given number of characters.

    Import outside toplevel (contextlib)
    Open

            import contextlib

    Used when an import statement is used anywhere other than the module toplevel. Move this import to the top of the file.

    Import from dbt_airflow_factory.operator import DbtRunOperatorBuilder, EphemeralOperator should be placed at the top of the module
    Open

    from dbt_airflow_factory.operator import DbtRunOperatorBuilder, EphemeralOperator

    Used when code and imports are mixed

    third party import from dbt_graph_builder.graph import DbtManifestGraph should be placed before from dbt_airflow_factory.constants import IS_FIRST_AIRFLOW_VERSION
    Open

    from dbt_graph_builder.graph import DbtManifestGraph

    Used when PEP8 import order is not respected (standard imports first, then third-party libraries, then local imports)

    Import from dbt_graph_builder.gateway import GatewayConfiguration should be placed at the top of the module
    Open

    from dbt_graph_builder.gateway import GatewayConfiguration

    Used when code and imports are mixed

    third party import from dbt_graph_builder.gateway import GatewayConfiguration should be placed before from dbt_airflow_factory.constants import IS_FIRST_AIRFLOW_VERSION
    Open

    from dbt_graph_builder.gateway import GatewayConfiguration

    Used when PEP8 import order is not respected (standard imports first, then third-party libraries, then local imports)

    Imports from package dbt_airflow_factory are not grouped
    Open

    from dbt_airflow_factory.operator import DbtRunOperatorBuilder, EphemeralOperator

    Used when imports are not grouped by packages

    Import from dbt_graph_builder.graph import DbtManifestGraph should be placed at the top of the module
    Open

    from dbt_graph_builder.graph import DbtManifestGraph

    Used when code and imports are mixed

    Variable name f doesn't conform to snake_case naming style
    Open

            with open(manifest_path, "r") as f:

    Used when the name doesn't conform to naming rules associated to its type (constant, variable, class...).

    third party import from dbt_graph_builder.builder import GraphConfiguration, create_tasks_graph should be placed before from dbt_airflow_factory.constants import IS_FIRST_AIRFLOW_VERSION
    Open

    from dbt_graph_builder.builder import GraphConfiguration, create_tasks_graph

    Used when PEP8 import order is not respected (standard imports first, then third-party libraries, then local imports)

    Import from dbt_graph_builder.builder import GraphConfiguration, create_tasks_graph should be placed at the top of the module
    Open

    from dbt_graph_builder.builder import GraphConfiguration, create_tasks_graph

    Used when code and imports are mixed

    Import from dbt_graph_builder.node_type import NodeType should be placed at the top of the module
    Open

    from dbt_graph_builder.node_type import NodeType

    Used when code and imports are mixed

    Imports from package airflow are not grouped
    Open

        from airflow.utils.task_group import TaskGroup

    Used when imports are not grouped by packages

    There are no issues that match your filters.

    Category
    Status