altimate-datapilot-cli 0.3.5__tar.gz → 0.3.6__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.3.5 → altimate_datapilot_cli-0.3.6}/.bumpversion.cfg +1 -1
- {altimate_datapilot_cli-0.3.5/src/altimate_datapilot_cli.egg-info → altimate_datapilot_cli-0.3.6}/PKG-INFO +1 -1
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/conf.py +1 -1
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/setup.py +1 -1
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6/src/altimate_datapilot_cli.egg-info}/PKG-INFO +1 -1
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/SOURCES.txt +1 -0
- altimate_datapilot_cli-0.3.6/src/datapilot/__init__.py +1 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/sources/sources_v1.py +22 -1
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/sources/sources_v2.py +22 -1
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/sources/sources_v3.py +22 -1
- altimate_datapilot_cli-0.3.6/tests/test_vendor/test_sources_freshness_status.py +127 -0
- altimate_datapilot_cli-0.3.5/src/datapilot/__init__.py +0 -1
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.cookiecutterrc +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.coveragerc +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.editorconfig +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.github/workflows/github-actions.yml +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.pre-commit-config.yaml +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.pre-commit-hooks.yaml +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.readthedocs.yml +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/AUTHORS.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/CHANGELOG.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/CONTRIBUTING.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/LICENSE +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/MANIFEST.in +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/Makefile +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/README.md +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/README.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/ci/bootstrap.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/ci/requirements.txt +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/ci/templates/.github/workflows/github-actions.yml +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/authors.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/changelog.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/configuration.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/contributing.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/features.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/hooks.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/index.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/insights.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/installation.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/introduction.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/performance.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/readme.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/reference/datapilot.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/reference/index.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/requirements.txt +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/spelling_wordlist.txt +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/usage.rst +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/pyproject.toml +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/pytest.ini +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/setup.cfg +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/dependency_links.txt +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/entry_points.txt +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/not-zip-safe +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/requires.txt +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/top_level.txt +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/__main__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/cli/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/cli/decorators.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/cli/main.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/altimate/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/altimate/client.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/altimate/constants.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/altimate/utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/config/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/config/config.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/config/utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/base/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/base/insight.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/report.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/schema.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/sql/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/sql/base/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/sql/base/insight.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/sql/runtime/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/sql/static/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/knowledge/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/knowledge/cli.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/knowledge/server.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/mcp_utils/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/mcp_utils/mcp.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/cli/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/cli/cli.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/constants.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/exceptions.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/executor.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/factory.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/formatting.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/hooks/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/hooks/executor_hook.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/base.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/base.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_column_desc_are_same.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_column_name_contract.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_macro_args_have_desc.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_macro_has_desc.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_all_columns.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_labels_keys.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_meta_keys.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_properties_file.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_group.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_name.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_type.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_materialization_by_childs.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_name_contract.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_and_childs.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_database.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_schema.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_model_tags.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_childs.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_columns_have_desc.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_all_columns.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_freshness.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_labels_keys.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_loader.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_meta_keys.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_group.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_name.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_type.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_table_has_description.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/check_source_tags.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/dbt_test/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/dbt_test/base.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/dbt_test/missing_primary_key_tests.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/dbt_test/test_coverage.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/governance/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/governance/base.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/governance/documentation_on_stale_columns.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/governance/exposures_dependent_on_private_models.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/governance/public_models_without_contracts.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/governance/undocumented_columns.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/governance/undocumented_public_models.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/README.md +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/base.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/direct_join_to_source.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/downstream_models_dependent_on_source.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/duplicate_sources.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/hard_coded_references.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/joining_of_upstream_concepts.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/model_fanout.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/multiple_sources_joined.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/root_model.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/source_fanout.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/staging_model_dependent_on_downstream_models.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/staging_model_dependent_on_staging_models.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/unused_sources.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/performance/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/performance/base.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/performance/chain_view_linking.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/performance/exposure_parent_materializations.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/schema.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/sql/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/sql/base.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/sql/sql_check.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/structure/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/structure/base.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/structure/model_directories_structure.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/structure/model_naming_conventions.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/structure/source_directories_structure.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/structure/test_directory_structure.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/schemas/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/schemas/catalog.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/schemas/manifest.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/schemas/run_results.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/schemas/sources.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/catalog/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/wrapper.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/catalog/wrapper.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/schemas.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/wrapper.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/schemas.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/wrapper.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/schemas.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/wrapper.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/wrapper.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/run_results/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/run_results/run_results.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/exceptions/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/exceptions/exceptions.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/schemas/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/schemas/constants.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/schemas/nodes.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/schemas/sql.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/utils/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/utils/formatting/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/utils/formatting/utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/utils/logging_utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/utils/utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parser.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/base.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/catalog/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/catalog/catalog_v1.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v1.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v10.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v11.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v12.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v2.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v3.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v4.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v5.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v6.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v7.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v8.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v9.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/run_results/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/run_results/run_results_v1.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/run_results/run_results_v2.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/run_results/run_results_v3.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/run_results/run_results_v4.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/run_results/run_results_v5.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/run_results/run_results_v6.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/sources/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/version_map.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/catalog/catalog_v1.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v1.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v10.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v11.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v12.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v2.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v3.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v4.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v5.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v6.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v7.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v8.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v9.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/run-results/run-results_v1.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/run-results/run-results_v2.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/run-results/run-results_v3.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/run-results/run-results_v4.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/run-results/run-results_v5.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/run-results/run-results_v6.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/sources/sources_v1.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/sources/sources_v2.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/sources/sources_v3.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/cli/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/cli/test_debug_option.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/clients/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/clients/altimate/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/clients/altimate/test_client_redaction.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/clients/altimate/test_utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/platform/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/platform/dbt/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/platform/dbt/test_artifact_loaders.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/platform/dbt/test_cli.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/platform/dbt/test_utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/catalog_v1.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/catalog_v12.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/config.yml +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifest_v10.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifest_v10macroargs.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifest_v11.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifest_v11macroargs.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifest_v12.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_js.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_js2.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_js3.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_tuva.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_tuva2.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_tuva3.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/run_results_v6.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/sources_v3.json +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/test_vendor/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/test_vendor/test_catalog_v1.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/test_vendor/test_run_results_pre_v6.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/test_vendor/test_run_results_v6.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/utils/__init__.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/utils/test_logging_utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/utils/test_utils.py +0 -0
- {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tox.ini +0 -0
|
@@ -285,6 +285,7 @@ tests/test_vendor/__init__.py
|
|
|
285
285
|
tests/test_vendor/test_catalog_v1.py
|
|
286
286
|
tests/test_vendor/test_run_results_pre_v6.py
|
|
287
287
|
tests/test_vendor/test_run_results_v6.py
|
|
288
|
+
tests/test_vendor/test_sources_freshness_status.py
|
|
288
289
|
tests/utils/__init__.py
|
|
289
290
|
tests/utils/test_logging_utils.py
|
|
290
291
|
tests/utils/test_utils.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.6"
|
|
@@ -38,12 +38,33 @@ class SourceFreshnessRuntimeError(BaseParserModel):
|
|
|
38
38
|
status: Status
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
class Status1(Enum):
|
|
41
|
+
class Status1(str, Enum):
|
|
42
42
|
pass_ = "pass"
|
|
43
43
|
warn = "warn"
|
|
44
44
|
error = "error"
|
|
45
45
|
runtime_error = "runtime error"
|
|
46
46
|
|
|
47
|
+
@classmethod
|
|
48
|
+
def _missing_(cls, value):
|
|
49
|
+
# The dbt Fusion engine serializes freshness statuses with its Rust
|
|
50
|
+
# variant names -- "Pass" / "Warn" / "Error" -- while the published
|
|
51
|
+
# sources schema it stamps into the artifact, and every dbt-core
|
|
52
|
+
# release, use the lowercase forms. Fold case first so a Fusion
|
|
53
|
+
# artifact resolves to the canonical lowercase member and `.value`
|
|
54
|
+
# stays stable for downstream storage.
|
|
55
|
+
if isinstance(value, str):
|
|
56
|
+
folded = value.casefold()
|
|
57
|
+
for member in cls:
|
|
58
|
+
if member.value.casefold() == folded:
|
|
59
|
+
return member
|
|
60
|
+
# Forward-compatibility: surface any other unknown status as a real
|
|
61
|
+
# member so downstream `.value` access keeps working instead of failing
|
|
62
|
+
# validation and silently dropping the entire sources.json.
|
|
63
|
+
member = str.__new__(cls, value)
|
|
64
|
+
member._name_ = str(value)
|
|
65
|
+
member._value_ = value
|
|
66
|
+
return member
|
|
67
|
+
|
|
47
68
|
|
|
48
69
|
class Period(Enum):
|
|
49
70
|
minute = "minute"
|
|
@@ -38,12 +38,33 @@ class SourceFreshnessRuntimeError(BaseParserModel):
|
|
|
38
38
|
status: Status
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
class Status1(Enum):
|
|
41
|
+
class Status1(str, Enum):
|
|
42
42
|
pass_ = "pass"
|
|
43
43
|
warn = "warn"
|
|
44
44
|
error = "error"
|
|
45
45
|
runtime_error = "runtime error"
|
|
46
46
|
|
|
47
|
+
@classmethod
|
|
48
|
+
def _missing_(cls, value):
|
|
49
|
+
# The dbt Fusion engine serializes freshness statuses with its Rust
|
|
50
|
+
# variant names -- "Pass" / "Warn" / "Error" -- while the published
|
|
51
|
+
# sources schema it stamps into the artifact, and every dbt-core
|
|
52
|
+
# release, use the lowercase forms. Fold case first so a Fusion
|
|
53
|
+
# artifact resolves to the canonical lowercase member and `.value`
|
|
54
|
+
# stays stable for downstream storage.
|
|
55
|
+
if isinstance(value, str):
|
|
56
|
+
folded = value.casefold()
|
|
57
|
+
for member in cls:
|
|
58
|
+
if member.value.casefold() == folded:
|
|
59
|
+
return member
|
|
60
|
+
# Forward-compatibility: surface any other unknown status as a real
|
|
61
|
+
# member so downstream `.value` access keeps working instead of failing
|
|
62
|
+
# validation and silently dropping the entire sources.json.
|
|
63
|
+
member = str.__new__(cls, value)
|
|
64
|
+
member._name_ = str(value)
|
|
65
|
+
member._value_ = value
|
|
66
|
+
return member
|
|
67
|
+
|
|
47
68
|
|
|
48
69
|
class Period(Enum):
|
|
49
70
|
minute = "minute"
|
|
@@ -38,12 +38,33 @@ class Results(BaseParserModel):
|
|
|
38
38
|
status: Status
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
class Status1(Enum):
|
|
41
|
+
class Status1(str, Enum):
|
|
42
42
|
pass_ = "pass"
|
|
43
43
|
warn = "warn"
|
|
44
44
|
error = "error"
|
|
45
45
|
runtime_error = "runtime error"
|
|
46
46
|
|
|
47
|
+
@classmethod
|
|
48
|
+
def _missing_(cls, value):
|
|
49
|
+
# The dbt Fusion engine serializes freshness statuses with its Rust
|
|
50
|
+
# variant names -- "Pass" / "Warn" / "Error" -- while the published
|
|
51
|
+
# sources schema it stamps into the artifact, and every dbt-core
|
|
52
|
+
# release, use the lowercase forms. Fold case first so a Fusion
|
|
53
|
+
# artifact resolves to the canonical lowercase member and `.value`
|
|
54
|
+
# stays stable for downstream storage.
|
|
55
|
+
if isinstance(value, str):
|
|
56
|
+
folded = value.casefold()
|
|
57
|
+
for member in cls:
|
|
58
|
+
if member.value.casefold() == folded:
|
|
59
|
+
return member
|
|
60
|
+
# Forward-compatibility: surface any other unknown status as a real
|
|
61
|
+
# member so downstream `.value` access keeps working instead of failing
|
|
62
|
+
# validation and silently dropping the entire sources.json.
|
|
63
|
+
member = str.__new__(cls, value)
|
|
64
|
+
member._name_ = str(value)
|
|
65
|
+
member._value_ = value
|
|
66
|
+
return member
|
|
67
|
+
|
|
47
68
|
|
|
48
69
|
class Period(Enum):
|
|
49
70
|
minute = "minute"
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"""Tests for the sources v1-v3 parsers, specifically the resilient freshness `Status1` enum.
|
|
2
|
+
|
|
3
|
+
Regression coverage for the dbt Fusion engine emitting capitalized freshness
|
|
4
|
+
statuses (``"Pass"`` / ``"Warn"`` / ``"Error"``) in sources.json. Every result row
|
|
5
|
+
failed both members of the ``results`` union, so the ENTIRE sources.json raised a
|
|
6
|
+
``ValidationError`` and was silently dropped during ingestion -- no source freshness
|
|
7
|
+
ever reached Postgres for a Fusion-backed environment.
|
|
8
|
+
|
|
9
|
+
The statuses must fold to their canonical lowercase members, because the extractor
|
|
10
|
+
persists ``result.status.value`` and the rest of the platform (including every
|
|
11
|
+
dbt-core-backed tenant already in the same table) uses the lowercase vocabulary.
|
|
12
|
+
"""
|
|
13
|
+
import pytest
|
|
14
|
+
|
|
15
|
+
from vendor.dbt_artifacts_parser.parser import parse_sources
|
|
16
|
+
from vendor.dbt_artifacts_parser.parsers.sources.sources_v1 import SourceFreshnessOutput as OutputV1
|
|
17
|
+
from vendor.dbt_artifacts_parser.parsers.sources.sources_v1 import Status1 as StatusV1
|
|
18
|
+
from vendor.dbt_artifacts_parser.parsers.sources.sources_v2 import SourceFreshnessOutput as OutputV2
|
|
19
|
+
from vendor.dbt_artifacts_parser.parsers.sources.sources_v2 import Status1 as StatusV2
|
|
20
|
+
from vendor.dbt_artifacts_parser.parsers.sources.sources_v3 import Results as RuntimeErrorV3
|
|
21
|
+
from vendor.dbt_artifacts_parser.parsers.sources.sources_v3 import Results1 as OutputV3
|
|
22
|
+
from vendor.dbt_artifacts_parser.parsers.sources.sources_v3 import Status1 as StatusV3
|
|
23
|
+
|
|
24
|
+
V3_SCHEMA = "https://schemas.getdbt.com/dbt/sources/v3.json"
|
|
25
|
+
|
|
26
|
+
# (output model, status enum) per schema version -- the enum is identical in all three.
|
|
27
|
+
VERSIONS = [
|
|
28
|
+
pytest.param(OutputV1, StatusV1, id="v1"),
|
|
29
|
+
pytest.param(OutputV2, StatusV2, id="v2"),
|
|
30
|
+
pytest.param(OutputV3, StatusV3, id="v3"),
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
# Fusion's Rust variant name -> the canonical lowercase status dbt-core emits.
|
|
34
|
+
FUSION_CASINGS = [("Pass", "pass"), ("Warn", "warn"), ("Error", "error")]
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _output(status: str, unique_id: str = "source.proj.schema.tbl") -> dict:
|
|
38
|
+
"""A complete freshness result -- the shape Fusion always emits."""
|
|
39
|
+
return {
|
|
40
|
+
"unique_id": unique_id,
|
|
41
|
+
"max_loaded_at": "2026-08-19T08:33:50.855920Z",
|
|
42
|
+
"snapshotted_at": "2026-08-19T17:00:33.833000Z",
|
|
43
|
+
"max_loaded_at_time_ago_in_s": 30402.0,
|
|
44
|
+
"status": status,
|
|
45
|
+
"criteria": {
|
|
46
|
+
"warn_after": {"count": 24, "period": "hour"},
|
|
47
|
+
"error_after": {"count": 48, "period": "hour"},
|
|
48
|
+
},
|
|
49
|
+
"adapter_response": {},
|
|
50
|
+
"timing": [],
|
|
51
|
+
"thread_id": "Thread-20",
|
|
52
|
+
"execution_time": 0.0,
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def _sources_v3(*statuses: str) -> dict:
|
|
57
|
+
return {
|
|
58
|
+
"metadata": {
|
|
59
|
+
"dbt_schema_version": V3_SCHEMA,
|
|
60
|
+
"dbt_version": "2.0.0-preview.210",
|
|
61
|
+
"invocation_id": "test-invocation-123",
|
|
62
|
+
},
|
|
63
|
+
"elapsed_time": 1.5,
|
|
64
|
+
"results": [_output(s, f"source.proj.sch.t{i}") for i, s in enumerate(statuses)],
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class TestFusionStatusCasing:
|
|
69
|
+
"""Fusion's capitalized statuses must parse AND normalize to lowercase."""
|
|
70
|
+
|
|
71
|
+
@pytest.mark.parametrize(("model", "status_enum"), VERSIONS)
|
|
72
|
+
@pytest.mark.parametrize(("fusion", "canonical"), FUSION_CASINGS)
|
|
73
|
+
def test_capitalized_status_folds_to_canonical_member(self, model, status_enum, fusion, canonical):
|
|
74
|
+
result = model(**_output(fusion))
|
|
75
|
+
assert result.status is status_enum(canonical)
|
|
76
|
+
assert result.status.value == canonical
|
|
77
|
+
|
|
78
|
+
@pytest.mark.parametrize(("model", "status_enum"), VERSIONS)
|
|
79
|
+
def test_lowercase_statuses_unchanged(self, model, status_enum):
|
|
80
|
+
"""dbt-core's existing lowercase vocabulary must keep resolving as before."""
|
|
81
|
+
for status in ("pass", "warn", "error", "runtime error"):
|
|
82
|
+
assert model(**_output(status)).status.value == status
|
|
83
|
+
|
|
84
|
+
@pytest.mark.parametrize(("model", "status_enum"), VERSIONS)
|
|
85
|
+
def test_unknown_future_status_parses(self, model, status_enum):
|
|
86
|
+
"""Forward-compat: a status dbt has not shipped yet must not drop the file."""
|
|
87
|
+
assert model(**_output("some_future_status")).status.value == "some_future_status"
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
class TestUnionResolutionIsNotLossy:
|
|
91
|
+
"""A complete freshness row must NEVER resolve to the runtime-error branch.
|
|
92
|
+
|
|
93
|
+
``SourcesV3.results`` is ``list[Union[Results, Results1]]`` and ``Results`` (the
|
|
94
|
+
runtime-error shape) requires only ``unique_id`` + ``status`` with ``extra="allow"``.
|
|
95
|
+
If a full row resolved there, every freshness field would be dropped -- turning a
|
|
96
|
+
loud parse failure into silent data loss, which is strictly worse.
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
@pytest.mark.parametrize(("fusion", "canonical"), FUSION_CASINGS)
|
|
100
|
+
def test_full_row_resolves_to_output_branch(self, fusion, canonical):
|
|
101
|
+
parsed = parse_sources(_sources_v3(fusion))
|
|
102
|
+
(result,) = parsed.results
|
|
103
|
+
assert isinstance(result, OutputV3)
|
|
104
|
+
assert result.status.value == canonical
|
|
105
|
+
assert result.max_loaded_at == "2026-08-19T08:33:50.855920Z"
|
|
106
|
+
assert result.criteria.error_after.count == 48
|
|
107
|
+
|
|
108
|
+
def test_runtime_error_row_still_resolves_to_runtime_error_branch(self):
|
|
109
|
+
"""dbt-core emits a distinct, field-less shape for a failed freshness check."""
|
|
110
|
+
artifact = _sources_v3()
|
|
111
|
+
artifact["results"] = [
|
|
112
|
+
{
|
|
113
|
+
"unique_id": "source.proj.sch.broken",
|
|
114
|
+
"error": "Database Error: permission denied",
|
|
115
|
+
"status": "runtime error",
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
(result,) = parse_sources(artifact).results
|
|
119
|
+
assert isinstance(result, RuntimeErrorV3)
|
|
120
|
+
assert result.status.value == "runtime error"
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class TestFullArtifactParse:
|
|
124
|
+
def test_fusion_artifact_parses_end_to_end(self):
|
|
125
|
+
"""The whole-file failure this regression is about: mixed Fusion statuses."""
|
|
126
|
+
parsed = parse_sources(_sources_v3("Pass", "Error", "Warn", "Pass"))
|
|
127
|
+
assert [r.status.value for r in parsed.results] == ["pass", "error", "warn", "pass"]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.3.5"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.github/workflows/github-actions.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/cli/decorators.py
RENAMED
|
File without changes
|
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/config/__init__.py
RENAMED
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/config/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/report.py
RENAMED
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/knowledge/cli.py
RENAMED
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/knowledge/server.py
RENAMED
|
File without changes
|
|
File without changes
|
{altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/mcp_utils/mcp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|