altimate-datapilot-cli 0.0.14__tar.gz → 0.0.15__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.14 → altimate-datapilot-cli-0.0.15}/.bumpversion.cfg +1 -1
- {altimate-datapilot-cli-0.0.14/src/altimate_datapilot_cli.egg-info → altimate-datapilot-cli-0.0.15}/PKG-INFO +1 -1
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/conf.py +1 -1
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/setup.py +7 -7
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15/src/altimate_datapilot_cli.egg-info}/PKG-INFO +1 -1
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/altimate_datapilot_cli.egg-info/SOURCES.txt +1 -0
- altimate-datapilot-cli-0.0.15/src/altimate_datapilot_cli.egg-info/requires.txt +6 -0
- altimate-datapilot-cli-0.0.15/src/datapilot/__init__.py +1 -0
- altimate-datapilot-cli-0.0.15/src/datapilot/constants.py +7 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_labels_keys.py +1 -1
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_meta_keys.py +1 -1
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_freshness.py +1 -1
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_labels_keys.py +1 -1
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_meta_keys.py +1 -1
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/schemas/catalog.py +21 -13
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/schemas/manifest.py +41 -27
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/wrapper.py +77 -64
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/wrapper.py +88 -75
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/schemas.py +13 -13
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/wrapper.py +20 -19
- altimate-datapilot-cli-0.0.14/src/altimate_datapilot_cli.egg-info/requires.txt +0 -6
- altimate-datapilot-cli-0.0.14/src/datapilot/__init__.py +0 -1
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/.cookiecutterrc +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/.coveragerc +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/.editorconfig +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/.github/workflows/github-actions.yml +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/.pre-commit-config.yaml +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/.pre-commit-hooks.yaml +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/.readthedocs.yml +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/AUTHORS.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/CHANGELOG.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/CONTRIBUTING.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/LICENSE +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/MANIFEST.in +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/README.md +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/README.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/ci/bootstrap.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/ci/requirements.txt +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/ci/templates/.github/workflows/github-actions.yml +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/authors.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/changelog.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/configuration.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/contributing.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/features.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/hooks.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/index.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/insights.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/installation.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/introduction.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/performance.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/readme.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/reference/datapilot.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/reference/index.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/requirements.txt +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/spelling_wordlist.txt +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/docs/usage.rst +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/pyproject.toml +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/pytest.ini +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/setup.cfg +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/altimate_datapilot_cli.egg-info/dependency_links.txt +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/altimate_datapilot_cli.egg-info/entry_points.txt +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/altimate_datapilot_cli.egg-info/not-zip-safe +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/altimate_datapilot_cli.egg-info/top_level.txt +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/__main__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/cli/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/cli/main.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/clients/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/clients/altimate/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/clients/altimate/client.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/clients/altimate/utils.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/config/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/config/config.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/config/utils.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/base/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/base/insight.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/report.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/schema.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/sql/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/sql/base/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/sql/base/insight.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/sql/runtime/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/sql/static/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/insights/utils.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/cli/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/cli/cli.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/constants.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/exceptions.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/executor.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/factory.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/formatting.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/hooks/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/hooks/executor_hook.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/base.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/base.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_column_desc_are_same.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_column_name_contract.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_macro_args_have_desc.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_macro_has_desc.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_all_columns.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_properties_file.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_group.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_name.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_type.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_materialization_by_childs.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_name_contract.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_and_childs.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_database.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_schema.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_model_tags.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_childs.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_columns_have_desc.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_all_columns.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_loader.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_group.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_name.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_type.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_table_has_description.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/checks/check_source_tags.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/dbt_test/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/dbt_test/base.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/dbt_test/missing_primary_key_tests.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/dbt_test/test_coverage.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/governance/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/governance/base.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/governance/documentation_on_stale_columns.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/governance/exposures_dependent_on_private_models.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/governance/public_models_without_contracts.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/governance/undocumented_columns.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/governance/undocumented_public_models.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/README.md +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/base.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/direct_join_to_source.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/downstream_models_dependent_on_source.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/duplicate_sources.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/hard_coded_references.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/joining_of_upstream_concepts.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/model_fanout.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/multiple_sources_joined.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/root_model.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/source_fanout.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/staging_model_dependent_on_downstream_models.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/staging_model_dependent_on_staging_models.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/modelling/unused_sources.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/performance/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/performance/base.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/performance/chain_view_linking.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/performance/exposure_parent_materializations.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/schema.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/sql/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/sql/base.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/sql/sql_check.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/structure/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/structure/base.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/structure/model_directories_structure.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/structure/model_naming_conventions.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/structure/source_directories_structure.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/structure/test_directory_structure.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/insights/utils.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/schemas/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/utils.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/catalog/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/catalog/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/schemas.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/schemas.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/manifest/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/run_results/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/core/platforms/dbt/wrappers/run_results/run_results.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/exceptions/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/exceptions/exceptions.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/schemas/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/schemas/constants.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/schemas/nodes.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/schemas/sql.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/utils/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/utils/formatting/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/utils/formatting/utils.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/src/datapilot/utils/utils.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/core/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/core/platform/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/core/platform/dbt/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/core/platform/dbt/test_cli.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/core/platform/dbt/test_utils.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/catalog_v1.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/catalog_v12.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/config.yml +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifest_v10.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifest_v10macroargs.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifest_v11.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifest_v11macroargs.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifest_v12.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifests/manifest_js.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifests/manifest_js2.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifests/manifest_js3.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifests/manifest_tuva.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifests/manifest_tuva2.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/data/manifests/manifest_tuva3.json +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/utils/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/tests/utils/test_utils.py +0 -0
- {altimate-datapilot-cli-0.0.14 → altimate-datapilot-cli-0.0.15}/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.15",
|
17
17
|
license="MIT",
|
18
18
|
description="Assistant for Data Teams",
|
19
19
|
long_description="{}\n{}".format(
|
@@ -62,12 +62,12 @@ setup(
|
|
62
62
|
],
|
63
63
|
python_requires=">=3.8",
|
64
64
|
install_requires=[
|
65
|
-
"click
|
66
|
-
"dbt-artifacts-parser
|
67
|
-
"ruamel.yaml
|
68
|
-
"tabulate
|
69
|
-
"requests
|
70
|
-
"sqlglot
|
65
|
+
"click~=8.1.7",
|
66
|
+
"dbt-artifacts-parser~=0.8.1",
|
67
|
+
"ruamel.yaml~=0.18.6",
|
68
|
+
"tabulate~=0.9.0",
|
69
|
+
"requests~=2.31.0",
|
70
|
+
"sqlglot~=25.30.0",
|
71
71
|
],
|
72
72
|
extras_require={
|
73
73
|
# eg:
|
@@ -47,6 +47,7 @@ src/altimate_datapilot_cli.egg-info/requires.txt
|
|
47
47
|
src/altimate_datapilot_cli.egg-info/top_level.txt
|
48
48
|
src/datapilot/__init__.py
|
49
49
|
src/datapilot/__main__.py
|
50
|
+
src/datapilot/constants.py
|
50
51
|
src/datapilot/cli/__init__.py
|
51
52
|
src/datapilot/cli/main.py
|
52
53
|
src/datapilot/clients/__init__.py
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.0.15"
|
@@ -76,7 +76,7 @@ class CheckModelHasLabelsKeys(ChecksInsight):
|
|
76
76
|
def _check_labels_keys(self, node_id) -> Tuple[int, Set[str]]:
|
77
77
|
status_code = 0
|
78
78
|
missing_keys = set(self.labels_keys) - set(self.get_node(node_id).label)
|
79
|
-
config = self.get_node(node_id).config.
|
79
|
+
config = self.get_node(node_id).config.model_dump() if self.get_node(node_id).config else {}
|
80
80
|
labels = config.get("labels", {})
|
81
81
|
label_keys = set(labels.keys())
|
82
82
|
extra_keys = set()
|
@@ -72,7 +72,7 @@ class CheckModelHasMetaKeys(ChecksInsight):
|
|
72
72
|
def _check_meta_keys(self, node_id) -> Tuple[int, Set[str], Set[str]]:
|
73
73
|
status_code = 0
|
74
74
|
model = self.get_node(node_id)
|
75
|
-
meta = model.meta
|
75
|
+
meta = model.meta if model.meta else {}
|
76
76
|
model_meta_keys = set(meta.keys())
|
77
77
|
missing_keys = None
|
78
78
|
extra_keys = None
|
@@ -61,7 +61,7 @@ class CheckSourceHasFreshness(ChecksInsight):
|
|
61
61
|
|
62
62
|
def _check_source_has_freshness(self, source_id: str) -> List[str]:
|
63
63
|
source = self.get_node(source_id)
|
64
|
-
freshness = source.freshness.
|
64
|
+
freshness = source.freshness.model_dump() if source.freshness else {}
|
65
65
|
|
66
66
|
if not freshness:
|
67
67
|
return False
|
@@ -74,7 +74,7 @@ class CheckSourceHasLabelsKeys(ChecksInsight):
|
|
74
74
|
def _check_labels_keys(self, node_id) -> Tuple[int, Set[str]]:
|
75
75
|
status_code = 0
|
76
76
|
missing_keys = set(self.labels_keys) - set(self.get_node(node_id).label)
|
77
|
-
config = self.get_node(node_id).config.
|
77
|
+
config = self.get_node(node_id).config.model_dump() if self.get_node(node_id).config else {}
|
78
78
|
labels = config.get("labels", {})
|
79
79
|
label_keys = set(labels.keys())
|
80
80
|
extra_keys = set()
|
@@ -81,7 +81,7 @@ class CheckSourceHasMetaKeys(ChecksInsight):
|
|
81
81
|
def _check_source_has_meta_keys(self, source_unique_id: str):
|
82
82
|
status_code = 0
|
83
83
|
model = self.get_node(source_unique_id)
|
84
|
-
meta = model.meta
|
84
|
+
meta = model.meta if model.meta else {}
|
85
85
|
model_meta_keys = set(meta.keys())
|
86
86
|
missing_keys = None
|
87
87
|
extra_keys = None
|
@@ -5,13 +5,16 @@ from typing import List
|
|
5
5
|
from typing import Optional
|
6
6
|
from typing import Union
|
7
7
|
|
8
|
-
from pydantic
|
8
|
+
from pydantic import ConfigDict
|
9
9
|
from pydantic.main import BaseModel
|
10
10
|
|
11
|
+
from datapilot.constants import Extra
|
12
|
+
|
11
13
|
|
12
14
|
class AltimateCatalogMetadata(BaseModel):
|
13
|
-
|
14
|
-
extra
|
15
|
+
model_config = ConfigDict(
|
16
|
+
extra=Extra.forbid,
|
17
|
+
)
|
15
18
|
|
16
19
|
dbt_schema_version: Optional[str] = "https://schemas.getdbt.com/dbt/catalog/v1.json"
|
17
20
|
dbt_version: Optional[str] = "0.19.0"
|
@@ -21,8 +24,9 @@ class AltimateCatalogMetadata(BaseModel):
|
|
21
24
|
|
22
25
|
|
23
26
|
class AltimateCatalogTableMetadata(BaseModel):
|
24
|
-
|
25
|
-
extra
|
27
|
+
model_config = ConfigDict(
|
28
|
+
extra=Extra.forbid,
|
29
|
+
)
|
26
30
|
|
27
31
|
type: str
|
28
32
|
database: Optional[Optional[str]] = None
|
@@ -33,8 +37,9 @@ class AltimateCatalogTableMetadata(BaseModel):
|
|
33
37
|
|
34
38
|
|
35
39
|
class AltimateCatalogColumnMetadata(BaseModel):
|
36
|
-
|
37
|
-
extra
|
40
|
+
model_config = ConfigDict(
|
41
|
+
extra=Extra.forbid,
|
42
|
+
)
|
38
43
|
|
39
44
|
type: str
|
40
45
|
comment: Optional[Optional[str]] = None
|
@@ -43,8 +48,9 @@ class AltimateCatalogColumnMetadata(BaseModel):
|
|
43
48
|
|
44
49
|
|
45
50
|
class AltimateCatalogStatsItem(BaseModel):
|
46
|
-
|
47
|
-
extra
|
51
|
+
model_config = ConfigDict(
|
52
|
+
extra=Extra.forbid,
|
53
|
+
)
|
48
54
|
|
49
55
|
id: str
|
50
56
|
label: str
|
@@ -54,8 +60,9 @@ class AltimateCatalogStatsItem(BaseModel):
|
|
54
60
|
|
55
61
|
|
56
62
|
class AltimateCatalogTable(BaseModel):
|
57
|
-
|
58
|
-
extra
|
63
|
+
model_config = ConfigDict(
|
64
|
+
extra=Extra.forbid,
|
65
|
+
)
|
59
66
|
|
60
67
|
metadata: AltimateCatalogTableMetadata
|
61
68
|
columns: Dict[str, AltimateCatalogColumnMetadata]
|
@@ -64,8 +71,9 @@ class AltimateCatalogTable(BaseModel):
|
|
64
71
|
|
65
72
|
|
66
73
|
class AltimateCatalogCatalogV1(BaseModel):
|
67
|
-
|
68
|
-
extra
|
74
|
+
model_config = ConfigDict(
|
75
|
+
extra=Extra.forbid,
|
76
|
+
)
|
69
77
|
|
70
78
|
metadata: AltimateCatalogMetadata
|
71
79
|
nodes: Dict[str, AltimateCatalogTable]
|
@@ -19,7 +19,9 @@ from dbt_artifacts_parser.parsers.manifest.manifest_v10 import ManifestV10
|
|
19
19
|
from dbt_artifacts_parser.parsers.manifest.manifest_v11 import ManifestV11
|
20
20
|
from dbt_artifacts_parser.parsers.manifest.manifest_v11 import SupportedLanguage
|
21
21
|
from pydantic import BaseModel
|
22
|
-
from pydantic import
|
22
|
+
from pydantic import ConfigDict
|
23
|
+
|
24
|
+
from datapilot.constants import Extra
|
23
25
|
|
24
26
|
|
25
27
|
class DBTVersion(BaseModel):
|
@@ -46,16 +48,17 @@ Catalog = CatalogV1
|
|
46
48
|
|
47
49
|
|
48
50
|
class AltimateDocs(BaseModel):
|
49
|
-
|
50
|
-
extra
|
51
|
+
model_config = ConfigDict(
|
52
|
+
extra=Extra.forbid,
|
53
|
+
)
|
51
54
|
|
52
55
|
show: Optional[bool] = True
|
53
56
|
node_color: Optional[Optional[str]] = None
|
54
57
|
|
55
58
|
|
56
59
|
class AltimateDependsOn(BaseModel):
|
57
|
-
nodes: Optional[List[str]]
|
58
|
-
macros: Optional[List[str]]
|
60
|
+
nodes: Optional[List[str]] = None
|
61
|
+
macros: Optional[List[str]] = None
|
59
62
|
|
60
63
|
|
61
64
|
class AltimateManifestColumnInfo(BaseModel):
|
@@ -98,8 +101,9 @@ class AltimateAccess(Enum):
|
|
98
101
|
|
99
102
|
|
100
103
|
class AltimateDBTContract(BaseModel):
|
101
|
-
|
102
|
-
extra
|
104
|
+
model_config = ConfigDict(
|
105
|
+
extra=Extra.forbid,
|
106
|
+
)
|
103
107
|
|
104
108
|
enforced: Optional[bool] = False
|
105
109
|
alias_types: Optional[bool] = True
|
@@ -107,8 +111,9 @@ class AltimateDBTContract(BaseModel):
|
|
107
111
|
|
108
112
|
|
109
113
|
class AltimateHook(BaseModel):
|
110
|
-
|
111
|
-
extra
|
114
|
+
model_config = ConfigDict(
|
115
|
+
extra=Extra.forbid,
|
116
|
+
)
|
112
117
|
|
113
118
|
sql: str
|
114
119
|
transaction: Optional[bool] = True
|
@@ -117,8 +122,9 @@ class AltimateHook(BaseModel):
|
|
117
122
|
|
118
123
|
# TODO: Need to add the rest of the fields
|
119
124
|
class AltimateNodeConfig(BaseModel):
|
120
|
-
|
121
|
-
extra
|
125
|
+
model_config = ConfigDict(
|
126
|
+
extra=Extra.allow,
|
127
|
+
)
|
122
128
|
|
123
129
|
_extra: Optional[Dict[str, Any]] = None
|
124
130
|
enabled: Optional[bool] = True
|
@@ -203,8 +209,9 @@ class AltimateSourceConfig(BaseModel):
|
|
203
209
|
|
204
210
|
|
205
211
|
class AltimateDeferRelation(BaseModel):
|
206
|
-
|
207
|
-
extra
|
212
|
+
model_config = ConfigDict(
|
213
|
+
extra=Extra.forbid,
|
214
|
+
)
|
208
215
|
|
209
216
|
database: Optional[str]
|
210
217
|
schema_name: str
|
@@ -213,8 +220,9 @@ class AltimateDeferRelation(BaseModel):
|
|
213
220
|
|
214
221
|
|
215
222
|
class AltimateSeedConfig(BaseModel):
|
216
|
-
|
217
|
-
extra
|
223
|
+
model_config = ConfigDict(
|
224
|
+
extra=Extra.allow,
|
225
|
+
)
|
218
226
|
|
219
227
|
_extra: Optional[Dict[str, Any]] = None
|
220
228
|
enabled: Optional[bool] = True
|
@@ -314,8 +322,9 @@ class AltimateExposureType(Enum):
|
|
314
322
|
|
315
323
|
|
316
324
|
class AltimateOwner(BaseModel):
|
317
|
-
|
318
|
-
extra
|
325
|
+
model_config = ConfigDict(
|
326
|
+
extra=Extra.allow,
|
327
|
+
)
|
319
328
|
|
320
329
|
_extra: Optional[Dict[str, Any]] = None
|
321
330
|
email: Optional[Optional[str]] = None
|
@@ -329,8 +338,9 @@ class AltimateMaturityEnum(Enum):
|
|
329
338
|
|
330
339
|
|
331
340
|
class AltimateRefArgs(BaseModel):
|
332
|
-
|
333
|
-
extra
|
341
|
+
model_config = ConfigDict(
|
342
|
+
extra=Extra.forbid,
|
343
|
+
)
|
334
344
|
|
335
345
|
name: str
|
336
346
|
package: Optional[Optional[str]] = None
|
@@ -338,8 +348,9 @@ class AltimateRefArgs(BaseModel):
|
|
338
348
|
|
339
349
|
|
340
350
|
class AltimateExposureConfig(BaseModel):
|
341
|
-
|
342
|
-
extra
|
351
|
+
model_config = ConfigDict(
|
352
|
+
extra=Extra.allow,
|
353
|
+
)
|
343
354
|
|
344
355
|
_extra: Optional[Dict[str, Any]] = None
|
345
356
|
enabled: Optional[bool] = True
|
@@ -371,8 +382,9 @@ class AltimateManifestExposureNode(BaseModel):
|
|
371
382
|
|
372
383
|
|
373
384
|
class AltimateTestMetadata(BaseModel):
|
374
|
-
|
375
|
-
extra
|
385
|
+
model_config = ConfigDict(
|
386
|
+
extra=Extra.forbid,
|
387
|
+
)
|
376
388
|
|
377
389
|
name: str
|
378
390
|
kwargs: Optional[Dict[str, Any]] = None
|
@@ -380,8 +392,9 @@ class AltimateTestMetadata(BaseModel):
|
|
380
392
|
|
381
393
|
|
382
394
|
class AltimateTestConfig(BaseModel):
|
383
|
-
|
384
|
-
extra
|
395
|
+
model_config = ConfigDict(
|
396
|
+
extra=Extra.allow,
|
397
|
+
)
|
385
398
|
|
386
399
|
_extra: Optional[Dict[str, Any]] = None
|
387
400
|
enabled: Optional[bool] = True
|
@@ -433,8 +446,9 @@ class AltimateManifestTestNode(BaseModel):
|
|
433
446
|
|
434
447
|
|
435
448
|
class AltimateMacroArgument(BaseModel):
|
436
|
-
|
437
|
-
extra
|
449
|
+
model_config = ConfigDict(
|
450
|
+
extra=Extra.forbid,
|
451
|
+
)
|
438
452
|
|
439
453
|
name: str
|
440
454
|
type: Optional[Optional[str]] = None
|
@@ -116,6 +116,7 @@ class ManifestV10Wrapper(BaseManifestWrapper):
|
|
116
116
|
contract=contract,
|
117
117
|
meta=node.meta,
|
118
118
|
patch_path=node.patch_path,
|
119
|
+
access=node.access.value,
|
119
120
|
)
|
120
121
|
|
121
122
|
def _get_source(self, source: SourceNode) -> AltimateManifestSourceNode:
|
@@ -133,10 +134,10 @@ class ManifestV10Wrapper(BaseManifestWrapper):
|
|
133
134
|
source_description=source.source_description,
|
134
135
|
loader=source.loader,
|
135
136
|
identifier=source.identifier,
|
136
|
-
quoting=AltimateQuoting(**source.quoting.
|
137
|
+
quoting=AltimateQuoting(**source.quoting.model_dump()) if source.quoting else None,
|
137
138
|
loaded_at_field=source.loaded_at_field,
|
138
|
-
freshness=AltimateFreshnessThreshold(**source.freshness.
|
139
|
-
external=AltimateExternalTable(**source.external.
|
139
|
+
freshness=AltimateFreshnessThreshold(**source.freshness.model_dump()) if source.freshness else None,
|
140
|
+
external=AltimateExternalTable(**source.external.model_dump()) if source.external else None,
|
140
141
|
description=source.description,
|
141
142
|
columns={
|
142
143
|
name: AltimateManifestColumnInfo(
|
@@ -153,7 +154,7 @@ class ManifestV10Wrapper(BaseManifestWrapper):
|
|
153
154
|
relation_name=source.relation_name,
|
154
155
|
source_meta=source.source_meta,
|
155
156
|
tags=source.tags,
|
156
|
-
config=AltimateSourceConfig(**source.config.
|
157
|
+
config=AltimateSourceConfig(**source.config.model_dump()) if source.config else None,
|
157
158
|
patch_path=source.patch_path,
|
158
159
|
unrendered_config=source.unrendered_config,
|
159
160
|
created_at=source.created_at,
|
@@ -177,9 +178,9 @@ class ManifestV10Wrapper(BaseManifestWrapper):
|
|
177
178
|
),
|
178
179
|
description=macro.description,
|
179
180
|
meta=macro.meta,
|
180
|
-
docs=macro.docs,
|
181
|
+
docs=macro.docs.model_dump() if macro.docs else None,
|
181
182
|
patch_path=macro.patch_path,
|
182
|
-
arguments=[AltimateMacroArgument(**arg.
|
183
|
+
arguments=[AltimateMacroArgument(**arg.model_dump()) for arg in macro.arguments] if macro.arguments else None,
|
183
184
|
created_at=macro.created_at,
|
184
185
|
supported_languages=macro.supported_languages,
|
185
186
|
)
|
@@ -194,22 +195,24 @@ class ManifestV10Wrapper(BaseManifestWrapper):
|
|
194
195
|
unique_id=exposure.unique_id,
|
195
196
|
fqn=exposure.fqn,
|
196
197
|
type=AltimateExposureType(exposure.type.value) if exposure.type else None,
|
197
|
-
owner=AltimateOwner(**exposure.owner.
|
198
|
+
owner=AltimateOwner(**exposure.owner.model_dump()) if exposure.owner else None,
|
198
199
|
description=exposure.description,
|
199
200
|
label=exposure.label,
|
200
201
|
maturity=AltimateMaturityEnum(exposure.maturity.value) if exposure.maturity else None,
|
201
202
|
meta=exposure.meta,
|
202
203
|
tags=exposure.tags,
|
203
|
-
config=AltimateSourceConfig(**exposure.config.
|
204
|
+
config=AltimateSourceConfig(**exposure.config.model_dump()) if exposure.config else None,
|
204
205
|
unrendered_config=exposure.unrendered_config,
|
205
206
|
url=exposure.url,
|
206
|
-
depends_on=
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
207
|
+
depends_on=(
|
208
|
+
AltimateDependsOn(
|
209
|
+
nodes=exposure.depends_on.nodes,
|
210
|
+
macros=exposure.depends_on.macros,
|
211
|
+
)
|
212
|
+
if exposure.depends_on
|
213
|
+
else None
|
214
|
+
),
|
215
|
+
refs=[AltimateRefArgs(**ref.model_dump()) for ref in exposure.refs] if exposure.refs else None,
|
213
216
|
sources=exposure.sources,
|
214
217
|
metrics=exposure.metrics,
|
215
218
|
created_at=exposure.created_at,
|
@@ -219,7 +222,7 @@ class ManifestV10Wrapper(BaseManifestWrapper):
|
|
219
222
|
test_metadata = None
|
220
223
|
if isinstance(test, GenericTestNode):
|
221
224
|
test_type = GENERIC
|
222
|
-
test_metadata = AltimateTestMetadata(**test.test_metadata.
|
225
|
+
test_metadata = AltimateTestMetadata(**test.test_metadata.model_dump()) if test.test_metadata else None
|
223
226
|
elif isinstance(test, SingularTestNode):
|
224
227
|
test_type = SINGULAR
|
225
228
|
else:
|
@@ -235,42 +238,48 @@ class ManifestV10Wrapper(BaseManifestWrapper):
|
|
235
238
|
unique_id=test.unique_id,
|
236
239
|
fqn=test.fqn,
|
237
240
|
alias=test.alias,
|
238
|
-
checksum=
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
241
|
+
checksum=(
|
242
|
+
AltimateFileHash(
|
243
|
+
name=test.checksum.name,
|
244
|
+
checksum=test.checksum.checksum,
|
245
|
+
)
|
246
|
+
if test.checksum
|
247
|
+
else None
|
248
|
+
),
|
249
|
+
config=AltimateTestConfig(**test.config.model_dump()) if test.config else None,
|
245
250
|
description=test.description,
|
246
251
|
tags=test.tags,
|
247
|
-
columns=
|
248
|
-
|
249
|
-
name
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
252
|
+
columns=(
|
253
|
+
{
|
254
|
+
name: AltimateManifestColumnInfo(
|
255
|
+
name=column.name,
|
256
|
+
description=column.description,
|
257
|
+
meta=column.meta,
|
258
|
+
data_type=column.data_type,
|
259
|
+
quote=column.quote,
|
260
|
+
tags=column.tags,
|
261
|
+
)
|
262
|
+
for name, column in test.columns.items()
|
263
|
+
}
|
264
|
+
if test.columns
|
265
|
+
else None
|
266
|
+
),
|
260
267
|
meta=test.meta,
|
261
268
|
relation_name=test.relation_name,
|
262
269
|
group=test.group,
|
263
270
|
raw_code=test.raw_code,
|
264
271
|
language=test.language,
|
265
|
-
refs=[AltimateRefArgs(**ref.
|
272
|
+
refs=[AltimateRefArgs(**ref.model_dump()) for ref in test.refs] if test.refs else None,
|
266
273
|
sources=test.sources,
|
267
274
|
metrics=test.metrics,
|
268
|
-
depends_on=
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
275
|
+
depends_on=(
|
276
|
+
AltimateDependsOn(
|
277
|
+
nodes=test.depends_on.nodes,
|
278
|
+
macros=test.depends_on.macros,
|
279
|
+
)
|
280
|
+
if test.depends_on
|
281
|
+
else None
|
282
|
+
),
|
274
283
|
compiled_path=test.compiled_path,
|
275
284
|
compiled=test.compiled,
|
276
285
|
compiled_code=test.compiled_code,
|
@@ -288,31 +297,35 @@ class ManifestV10Wrapper(BaseManifestWrapper):
|
|
288
297
|
unique_id=seed.unique_id,
|
289
298
|
fqn=seed.fqn,
|
290
299
|
alias=seed.alias,
|
291
|
-
checksum=
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
300
|
+
checksum=(
|
301
|
+
AltimateFileHash(
|
302
|
+
name=seed.checksum.name,
|
303
|
+
checksum=seed.checksum.checksum,
|
304
|
+
)
|
305
|
+
if seed.checksum
|
306
|
+
else None
|
307
|
+
),
|
308
|
+
config=AltimateSeedConfig(**seed.config.model_dump()) if seed.config else None,
|
298
309
|
description=seed.description,
|
299
310
|
tags=seed.tags,
|
300
|
-
columns=
|
301
|
-
|
302
|
-
name
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
311
|
+
columns=(
|
312
|
+
{
|
313
|
+
name: AltimateManifestColumnInfo(
|
314
|
+
name=column.name,
|
315
|
+
description=column.description,
|
316
|
+
meta=column.meta,
|
317
|
+
data_type=column.data_type,
|
318
|
+
quote=column.quote,
|
319
|
+
tags=column.tags,
|
320
|
+
)
|
321
|
+
for name, column in seed.columns.items()
|
322
|
+
}
|
323
|
+
if seed.columns
|
324
|
+
else None
|
325
|
+
),
|
313
326
|
meta=seed.meta,
|
314
327
|
group=seed.group,
|
315
|
-
docs=seed.docs.
|
328
|
+
docs=seed.docs.model_dump() if seed.docs else None,
|
316
329
|
patch_path=seed.patch_path,
|
317
330
|
build_path=seed.build_path,
|
318
331
|
deferred=seed.deferred,
|