altimate-datapilot-cli 0.0.11__tar.gz → 0.0.13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/.bumpversion.cfg +1 -1
- {altimate-datapilot-cli-0.0.11/src/altimate_datapilot_cli.egg-info → altimate-datapilot-cli-0.0.13}/PKG-INFO +1 -1
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/conf.py +1 -1
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/setup.py +2 -2
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13/src/altimate_datapilot_cli.egg-info}/PKG-INFO +1 -1
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/altimate_datapilot_cli.egg-info/SOURCES.txt +5 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/altimate_datapilot_cli.egg-info/requires.txt +1 -1
- altimate-datapilot-cli-0.0.13/src/datapilot/__init__.py +1 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/clients/altimate/client.py +5 -1
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/clients/altimate/utils.py +24 -3
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/cli/cli.py +41 -4
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/factory.py +4 -0
- altimate-datapilot-cli-0.0.13/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/schemas.py +36 -0
- altimate-datapilot-cli-0.0.13/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/wrapper.py +409 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/utils/utils.py +11 -4
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/core/platform/dbt/test_cli.py +15 -0
- altimate-datapilot-cli-0.0.13/tests/data/catalog_v12.json +1 -0
- altimate-datapilot-cli-0.0.13/tests/data/manifest_v12.json +1 -0
- altimate-datapilot-cli-0.0.13/tests/utils/__init__.py +0 -0
- altimate-datapilot-cli-0.0.11/src/datapilot/__init__.py +0 -1
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/.cookiecutterrc +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/.coveragerc +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/.editorconfig +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/.github/workflows/github-actions.yml +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/.pre-commit-config.yaml +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/.pre-commit-hooks.yaml +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/.readthedocs.yml +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/AUTHORS.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/CHANGELOG.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/CONTRIBUTING.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/LICENSE +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/MANIFEST.in +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/README.md +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/README.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/ci/bootstrap.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/ci/requirements.txt +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/ci/templates/.github/workflows/github-actions.yml +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/authors.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/changelog.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/configuration.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/contributing.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/features.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/hooks.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/index.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/insights.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/installation.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/introduction.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/performance.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/readme.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/reference/datapilot.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/reference/index.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/requirements.txt +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/spelling_wordlist.txt +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/docs/usage.rst +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/pyproject.toml +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/pytest.ini +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/setup.cfg +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/altimate_datapilot_cli.egg-info/dependency_links.txt +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/altimate_datapilot_cli.egg-info/entry_points.txt +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/altimate_datapilot_cli.egg-info/not-zip-safe +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/altimate_datapilot_cli.egg-info/top_level.txt +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/__main__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/cli/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/cli/main.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/clients/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/clients/altimate/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/config/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/config/config.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/config/utils.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/base/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/base/insight.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/report.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/schema.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/sql/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/sql/base/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/sql/base/insight.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/sql/runtime/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/sql/static/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/insights/utils.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/cli/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/constants.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/exceptions.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/executor.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/formatting.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/hooks/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/hooks/executor_hook.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/base.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/base.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_column_desc_are_same.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_column_name_contract.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_macro_args_have_desc.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_macro_has_desc.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_all_columns.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_labels_keys.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_meta_keys.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_properties_file.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_group.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_name.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_type.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_materialization_by_childs.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_name_contract.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_and_childs.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_database.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_schema.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_model_tags.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_childs.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_columns_have_desc.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_all_columns.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_freshness.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_labels_keys.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_loader.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_meta_keys.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_group.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_name.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_type.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_table_has_description.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/checks/check_source_tags.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/dbt_test/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/dbt_test/base.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/dbt_test/missing_primary_key_tests.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/dbt_test/test_coverage.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/governance/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/governance/base.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/governance/documentation_on_stale_columns.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/governance/exposures_dependent_on_private_models.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/governance/public_models_without_contracts.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/governance/undocumented_columns.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/governance/undocumented_public_models.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/README.md +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/base.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/direct_join_to_source.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/downstream_models_dependent_on_source.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/duplicate_sources.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/hard_coded_references.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/joining_of_upstream_concepts.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/model_fanout.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/multiple_sources_joined.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/root_model.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/source_fanout.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/staging_model_dependent_on_downstream_models.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/staging_model_dependent_on_staging_models.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/modelling/unused_sources.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/performance/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/performance/base.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/performance/chain_view_linking.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/performance/exposure_parent_materializations.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/schema.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/structure/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/structure/base.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/structure/model_directories_structure.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/structure/model_naming_conventions.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/structure/source_directories_structure.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/structure/test_directory_structure.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/insights/utils.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/schemas/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/schemas/catalog.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/schemas/manifest.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/utils.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/catalog/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/catalog/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/manifest/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/schemas.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/schemas.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.11/src/datapilot/core/platforms/dbt/wrappers/run_results → altimate-datapilot-cli-0.0.13/src/datapilot/core/platforms/dbt/wrappers/manifest/v12}/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/manifest/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.11/src/datapilot/exceptions → altimate-datapilot-cli-0.0.13/src/datapilot/core/platforms/dbt/wrappers/run_results}/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/core/platforms/dbt/wrappers/run_results/run_results.py +0 -0
- {altimate-datapilot-cli-0.0.11/src/datapilot/schemas → altimate-datapilot-cli-0.0.13/src/datapilot/exceptions}/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/exceptions/exceptions.py +0 -0
- {altimate-datapilot-cli-0.0.11/src/datapilot/utils → altimate-datapilot-cli-0.0.13/src/datapilot/schemas}/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/schemas/constants.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/schemas/nodes.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/schemas/sql.py +0 -0
- {altimate-datapilot-cli-0.0.11/src/datapilot/utils/formatting → altimate-datapilot-cli-0.0.13/src/datapilot/utils}/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11/tests/core → altimate-datapilot-cli-0.0.13/src/datapilot/utils/formatting}/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/src/datapilot/utils/formatting/utils.py +0 -0
- {altimate-datapilot-cli-0.0.11/tests/core/platform → altimate-datapilot-cli-0.0.13/tests/core}/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11/tests/core/platform/dbt → altimate-datapilot-cli-0.0.13/tests/core/platform}/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11/tests/utils → altimate-datapilot-cli-0.0.13/tests/core/platform/dbt}/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/core/platform/dbt/test_utils.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/catalog_v1.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/config.yml +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/manifest_v10.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/manifest_v10macroargs.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/manifest_v11.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/manifest_v11macroargs.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/manifests/manifest_js.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/manifests/manifest_js2.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/manifests/manifest_js3.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/manifests/manifest_tuva.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/manifests/manifest_tuva2.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/data/manifests/manifest_tuva3.json +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tests/utils/test_utils.py +0 -0
- {altimate-datapilot-cli-0.0.11 → altimate-datapilot-cli-0.0.13}/tox.ini +0 -0
@@ -13,7 +13,7 @@ def read(*names, **kwargs):
|
|
13
13
|
|
14
14
|
setup(
|
15
15
|
name="altimate-datapilot-cli",
|
16
|
-
version="0.0.
|
16
|
+
version="0.0.13",
|
17
17
|
license="MIT",
|
18
18
|
description="Assistant for Data Teams",
|
19
19
|
long_description="{}\n{}".format(
|
@@ -63,7 +63,7 @@ setup(
|
|
63
63
|
python_requires=">=3.8",
|
64
64
|
install_requires=[
|
65
65
|
"click==8.1.7",
|
66
|
-
"dbt-artifacts-parser==0.
|
66
|
+
"dbt-artifacts-parser==0.6.0",
|
67
67
|
"ruamel.yaml==0.18.6",
|
68
68
|
"tabulate==0.9.0",
|
69
69
|
"requests==2.31.0",
|
@@ -168,6 +168,9 @@ src/datapilot/core/platforms/dbt/wrappers/manifest/v10/wrapper.py
|
|
168
168
|
src/datapilot/core/platforms/dbt/wrappers/manifest/v11/__init__.py
|
169
169
|
src/datapilot/core/platforms/dbt/wrappers/manifest/v11/schemas.py
|
170
170
|
src/datapilot/core/platforms/dbt/wrappers/manifest/v11/wrapper.py
|
171
|
+
src/datapilot/core/platforms/dbt/wrappers/manifest/v12/__init__.py
|
172
|
+
src/datapilot/core/platforms/dbt/wrappers/manifest/v12/schemas.py
|
173
|
+
src/datapilot/core/platforms/dbt/wrappers/manifest/v12/wrapper.py
|
171
174
|
src/datapilot/core/platforms/dbt/wrappers/run_results/__init__.py
|
172
175
|
src/datapilot/core/platforms/dbt/wrappers/run_results/run_results.py
|
173
176
|
src/datapilot/exceptions/__init__.py
|
@@ -186,11 +189,13 @@ tests/core/platform/dbt/__init__.py
|
|
186
189
|
tests/core/platform/dbt/test_cli.py
|
187
190
|
tests/core/platform/dbt/test_utils.py
|
188
191
|
tests/data/catalog_v1.json
|
192
|
+
tests/data/catalog_v12.json
|
189
193
|
tests/data/config.yml
|
190
194
|
tests/data/manifest_v10.json
|
191
195
|
tests/data/manifest_v10macroargs.json
|
192
196
|
tests/data/manifest_v11.json
|
193
197
|
tests/data/manifest_v11macroargs.json
|
198
|
+
tests/data/manifest_v12.json
|
194
199
|
tests/data/manifests/manifest_js.json
|
195
200
|
tests/data/manifests/manifest_js2.json
|
196
201
|
tests/data/manifests/manifest_js3.json
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.0.13"
|
@@ -62,7 +62,7 @@ class APIClient:
|
|
62
62
|
response = requests.post(url, headers=headers, json=data, timeout=timeout)
|
63
63
|
self.logger.debug(f"Received POST response with status: {response.status_code }")
|
64
64
|
|
65
|
-
return response
|
65
|
+
return response.json()
|
66
66
|
|
67
67
|
def put(self, endpoint, data, timeout=None):
|
68
68
|
url = f"{self.base_url}{endpoint}"
|
@@ -83,3 +83,7 @@ class APIClient:
|
|
83
83
|
def validate_credentials(self):
|
84
84
|
endpoint = "/dbt/v3/validate-credentials"
|
85
85
|
return self.get(endpoint)
|
86
|
+
|
87
|
+
def start_dbt_ingestion(self, params=None):
|
88
|
+
endpoint = "/dbt/v1/start_dbt_ingestion"
|
89
|
+
return self.post(endpoint, data=params)
|
@@ -46,10 +46,14 @@ def validate_credentials(
|
|
46
46
|
return api_client.validate_credentials()
|
47
47
|
|
48
48
|
|
49
|
-
def
|
49
|
+
def onboard_file(api_token, tenant, dbt_core_integration_id, dbt_core_integration_environment, file_type, file_path, backend_url) -> Dict:
|
50
50
|
api_client = APIClient(api_token, base_url=backend_url, tenant=tenant)
|
51
51
|
|
52
|
-
params = {
|
52
|
+
params = {
|
53
|
+
"dbt_core_integration_id": dbt_core_integration_id,
|
54
|
+
"dbt_core_integration_environment_type": dbt_core_integration_environment,
|
55
|
+
"file_type": file_type,
|
56
|
+
}
|
53
57
|
signed_url_data = api_client.get_signed_url(params)
|
54
58
|
if signed_url_data:
|
55
59
|
signed_url = signed_url_data.get("url")
|
@@ -57,7 +61,7 @@ def onboard_manifest(api_token, tenant, dbt_core_integration_id, manifest_path,
|
|
57
61
|
api_client.log(f"Received signed URL: {signed_url}")
|
58
62
|
api_client.log(f"Received File ID: {file_id}")
|
59
63
|
|
60
|
-
upload_response = upload_content_to_signed_url(
|
64
|
+
upload_response = upload_content_to_signed_url(file_path, signed_url)
|
61
65
|
|
62
66
|
if upload_response:
|
63
67
|
verify_params = {"dbt_core_integration_file_id": file_id}
|
@@ -73,3 +77,20 @@ def onboard_manifest(api_token, tenant, dbt_core_integration_id, manifest_path,
|
|
73
77
|
"ok": False,
|
74
78
|
"message": "Error in uploading the manifest. ",
|
75
79
|
}
|
80
|
+
|
81
|
+
|
82
|
+
def start_dbt_ingestion(api_token, tenant, dbt_core_integration_id, dbt_core_integration_environment, backend_url):
|
83
|
+
api_client = APIClient(api_token, base_url=backend_url, tenant=tenant)
|
84
|
+
params = {
|
85
|
+
"dbt_core_integration_id": dbt_core_integration_id,
|
86
|
+
"dbt_core_integration_environment_type": dbt_core_integration_environment,
|
87
|
+
}
|
88
|
+
data = api_client.start_dbt_ingestion(params)
|
89
|
+
if data and data.get("ok"):
|
90
|
+
return {"ok": True}
|
91
|
+
else:
|
92
|
+
api_client.log("Error starting dbt ingestion worker")
|
93
|
+
return {
|
94
|
+
"ok": False,
|
95
|
+
"message": "Error starting dbt ingestion worker. ",
|
96
|
+
}
|
@@ -3,7 +3,8 @@ import logging
|
|
3
3
|
import click
|
4
4
|
|
5
5
|
from datapilot.clients.altimate.utils import check_token_and_instance
|
6
|
-
from datapilot.clients.altimate.utils import
|
6
|
+
from datapilot.clients.altimate.utils import onboard_file
|
7
|
+
from datapilot.clients.altimate.utils import start_dbt_ingestion
|
7
8
|
from datapilot.clients.altimate.utils import validate_credentials
|
8
9
|
from datapilot.config.config import load_config
|
9
10
|
from datapilot.core.platforms.dbt.constants import MODEL
|
@@ -14,6 +15,7 @@ from datapilot.core.platforms.dbt.formatting import generate_project_insights_ta
|
|
14
15
|
from datapilot.core.platforms.dbt.utils import load_catalog
|
15
16
|
from datapilot.core.platforms.dbt.utils import load_manifest
|
16
17
|
from datapilot.utils.formatting.utils import tabulate_data
|
18
|
+
from datapilot.utils.utils import map_url_to_instance
|
17
19
|
|
18
20
|
logging.basicConfig(level=logging.INFO)
|
19
21
|
|
@@ -87,9 +89,21 @@ def project_health(manifest_path, catalog_path, config_path=None, select=None):
|
|
87
89
|
@click.option("--token", prompt="API Token", help="Your API token for authentication.")
|
88
90
|
@click.option("--instance-name", prompt="Instance Name", help="Your tenant ID.")
|
89
91
|
@click.option("--dbt_core_integration_id", prompt="DBT Core Integration ID", help="DBT Core Integration ID")
|
92
|
+
@click.option(
|
93
|
+
"--dbt_core_integration_environment", default="PROD", prompt="DBT Core Integration Environment", help="DBT Core Integration Environment"
|
94
|
+
)
|
90
95
|
@click.option("--manifest-path", required=True, prompt="Manifest Path", help="Path to the manifest file.")
|
96
|
+
@click.option("--catalog-path", required=False, prompt=False, help="Path to the catalog file.")
|
91
97
|
@click.option("--backend-url", required=False, help="Altimate's Backend URL", default="https://api.myaltimate.com")
|
92
|
-
def onboard(
|
98
|
+
def onboard(
|
99
|
+
token,
|
100
|
+
instance_name,
|
101
|
+
dbt_core_integration_id,
|
102
|
+
dbt_core_integration_environment,
|
103
|
+
manifest_path,
|
104
|
+
catalog_path,
|
105
|
+
backend_url="https://api.myaltimate.com",
|
106
|
+
):
|
93
107
|
"""Onboard a manifest file to DBT."""
|
94
108
|
check_token_and_instance(token, instance_name)
|
95
109
|
|
@@ -104,9 +118,32 @@ def onboard(token, instance_name, dbt_core_integration_id, manifest_path, backen
|
|
104
118
|
click.echo(f"Error: {e}")
|
105
119
|
return
|
106
120
|
|
107
|
-
response =
|
108
|
-
|
121
|
+
response = onboard_file(
|
122
|
+
token, instance_name, dbt_core_integration_id, dbt_core_integration_environment, "manifest", manifest_path, backend_url
|
123
|
+
)
|
109
124
|
if response["ok"]:
|
110
125
|
click.echo("Manifest onboarded successfully!")
|
111
126
|
else:
|
112
127
|
click.echo(f"{response['message']}")
|
128
|
+
|
129
|
+
if not catalog_path:
|
130
|
+
return
|
131
|
+
|
132
|
+
response = onboard_file(
|
133
|
+
token, instance_name, dbt_core_integration_id, dbt_core_integration_environment, "catalog", catalog_path, backend_url
|
134
|
+
)
|
135
|
+
if response["ok"]:
|
136
|
+
click.echo("Catalog onboarded successfully!")
|
137
|
+
else:
|
138
|
+
click.echo(f"{response['message']}")
|
139
|
+
|
140
|
+
response = start_dbt_ingestion(token, instance_name, dbt_core_integration_id, dbt_core_integration_environment, backend_url)
|
141
|
+
if response["ok"]:
|
142
|
+
url = map_url_to_instance(backend_url, instance_name)
|
143
|
+
if not url:
|
144
|
+
click.echo("Manifest and catalog ingestion has started.")
|
145
|
+
else:
|
146
|
+
url = f"{url}/settings/integrations/{dbt_core_integration_id}/{dbt_core_integration_environment}"
|
147
|
+
click.echo(f"Manifest and catalog ingestion has started. You can check the status at {url}")
|
148
|
+
else:
|
149
|
+
click.echo(f"{response['message']}")
|
@@ -1,18 +1,22 @@
|
|
1
1
|
from dbt_artifacts_parser.parsers.catalog.catalog_v1 import CatalogV1
|
2
2
|
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import ManifestV10
|
3
3
|
from dbt_artifacts_parser.parsers.manifest.manifest_v11 import ManifestV11
|
4
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import ManifestV12
|
4
5
|
|
5
6
|
from datapilot.core.platforms.dbt.schemas.manifest import Catalog
|
6
7
|
from datapilot.core.platforms.dbt.schemas.manifest import Manifest
|
7
8
|
from datapilot.core.platforms.dbt.wrappers.catalog.v1.wrapper import CatalogV1Wrapper
|
8
9
|
from datapilot.core.platforms.dbt.wrappers.manifest.v10.wrapper import ManifestV10Wrapper
|
9
10
|
from datapilot.core.platforms.dbt.wrappers.manifest.v11.wrapper import ManifestV11Wrapper
|
11
|
+
from datapilot.core.platforms.dbt.wrappers.manifest.v12.wrapper import ManifestV12Wrapper
|
10
12
|
from datapilot.exceptions.exceptions import AltimateNotSupportedError
|
11
13
|
|
12
14
|
|
13
15
|
class DBTFactory:
|
14
16
|
@classmethod
|
15
17
|
def get_manifest_wrapper(cls, manifest: Manifest):
|
18
|
+
if isinstance(manifest, ManifestV12):
|
19
|
+
return ManifestV12Wrapper(manifest)
|
16
20
|
if isinstance(manifest, ManifestV11):
|
17
21
|
return ManifestV11Wrapper(manifest)
|
18
22
|
if isinstance(manifest, ManifestV10):
|
altimate-datapilot-cli-0.0.13/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/schemas.py
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
from typing import Dict
|
2
|
+
from typing import Type
|
3
|
+
from typing import Union
|
4
|
+
|
5
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Exposures
|
6
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Macros
|
7
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Node
|
8
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Node1
|
9
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Node2
|
10
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Node3
|
11
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Node4
|
12
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Node5
|
13
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Node6
|
14
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Node7
|
15
|
+
from dbt_artifacts_parser.parsers.manifest.manifest_v12 import Sources
|
16
|
+
|
17
|
+
from datapilot.core.platforms.dbt.constants import GENERIC
|
18
|
+
from datapilot.core.platforms.dbt.constants import SINGULAR
|
19
|
+
|
20
|
+
ManifestNode = Union[Node, Node1, Node2, Node3, Node4, Node5, Node6, Node7]
|
21
|
+
|
22
|
+
SourceNode = Sources
|
23
|
+
|
24
|
+
ExposureNode = Exposures
|
25
|
+
|
26
|
+
TestNode = Union[Node6, Node2]
|
27
|
+
|
28
|
+
MacroNode = Macros
|
29
|
+
|
30
|
+
TEST_TYPE_TO_NODE_MAP: Dict[str, Type] = {
|
31
|
+
GENERIC: [Node6],
|
32
|
+
SINGULAR: [Node2],
|
33
|
+
}
|
34
|
+
|
35
|
+
|
36
|
+
SeedNodeMap = Node
|