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.
Files changed (294) hide show
  1. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.bumpversion.cfg +1 -1
  2. {altimate_datapilot_cli-0.3.5/src/altimate_datapilot_cli.egg-info → altimate_datapilot_cli-0.3.6}/PKG-INFO +1 -1
  3. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/conf.py +1 -1
  4. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/setup.py +1 -1
  5. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6/src/altimate_datapilot_cli.egg-info}/PKG-INFO +1 -1
  6. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/SOURCES.txt +1 -0
  7. altimate_datapilot_cli-0.3.6/src/datapilot/__init__.py +1 -0
  8. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/sources/sources_v1.py +22 -1
  9. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/sources/sources_v2.py +22 -1
  10. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/sources/sources_v3.py +22 -1
  11. altimate_datapilot_cli-0.3.6/tests/test_vendor/test_sources_freshness_status.py +127 -0
  12. altimate_datapilot_cli-0.3.5/src/datapilot/__init__.py +0 -1
  13. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.cookiecutterrc +0 -0
  14. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.coveragerc +0 -0
  15. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.editorconfig +0 -0
  16. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.github/workflows/github-actions.yml +0 -0
  17. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.pre-commit-config.yaml +0 -0
  18. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.pre-commit-hooks.yaml +0 -0
  19. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/.readthedocs.yml +0 -0
  20. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/AUTHORS.rst +0 -0
  21. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/CHANGELOG.rst +0 -0
  22. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/CONTRIBUTING.rst +0 -0
  23. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/LICENSE +0 -0
  24. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/MANIFEST.in +0 -0
  25. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/Makefile +0 -0
  26. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/README.md +0 -0
  27. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/README.rst +0 -0
  28. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/ci/bootstrap.py +0 -0
  29. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/ci/requirements.txt +0 -0
  30. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/ci/templates/.github/workflows/github-actions.yml +0 -0
  31. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/authors.rst +0 -0
  32. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/changelog.rst +0 -0
  33. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/configuration.rst +0 -0
  34. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/contributing.rst +0 -0
  35. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/features.rst +0 -0
  36. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/hooks.rst +0 -0
  37. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/index.rst +0 -0
  38. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/insights.rst +0 -0
  39. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/installation.rst +0 -0
  40. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/introduction.rst +0 -0
  41. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/performance.rst +0 -0
  42. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/readme.rst +0 -0
  43. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/reference/datapilot.rst +0 -0
  44. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/reference/index.rst +0 -0
  45. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/requirements.txt +0 -0
  46. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/spelling_wordlist.txt +0 -0
  47. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/docs/usage.rst +0 -0
  48. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/pyproject.toml +0 -0
  49. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/pytest.ini +0 -0
  50. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/setup.cfg +0 -0
  51. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/dependency_links.txt +0 -0
  52. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/entry_points.txt +0 -0
  53. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/not-zip-safe +0 -0
  54. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/requires.txt +0 -0
  55. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/altimate_datapilot_cli.egg-info/top_level.txt +0 -0
  56. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/__main__.py +0 -0
  57. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/cli/__init__.py +0 -0
  58. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/cli/decorators.py +0 -0
  59. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/cli/main.py +0 -0
  60. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/__init__.py +0 -0
  61. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/altimate/__init__.py +0 -0
  62. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/altimate/client.py +0 -0
  63. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/altimate/constants.py +0 -0
  64. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/clients/altimate/utils.py +0 -0
  65. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/config/__init__.py +0 -0
  66. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/config/config.py +0 -0
  67. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/config/utils.py +0 -0
  68. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/__init__.py +0 -0
  69. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/__init__.py +0 -0
  70. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/base/__init__.py +0 -0
  71. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/base/insight.py +0 -0
  72. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/report.py +0 -0
  73. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/schema.py +0 -0
  74. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/sql/__init__.py +0 -0
  75. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/sql/base/__init__.py +0 -0
  76. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/sql/base/insight.py +0 -0
  77. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/sql/runtime/__init__.py +0 -0
  78. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/sql/static/__init__.py +0 -0
  79. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/insights/utils.py +0 -0
  80. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/knowledge/__init__.py +0 -0
  81. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/knowledge/cli.py +0 -0
  82. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/knowledge/server.py +0 -0
  83. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/mcp_utils/__init__.py +0 -0
  84. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/mcp_utils/mcp.py +0 -0
  85. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/__init__.py +0 -0
  86. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/__init__.py +0 -0
  87. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/cli/__init__.py +0 -0
  88. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/cli/cli.py +0 -0
  89. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/constants.py +0 -0
  90. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/exceptions.py +0 -0
  91. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/executor.py +0 -0
  92. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/factory.py +0 -0
  93. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/formatting.py +0 -0
  94. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/hooks/__init__.py +0 -0
  95. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/hooks/executor_hook.py +0 -0
  96. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/__init__.py +0 -0
  97. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/base.py +0 -0
  98. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/__init__.py +0 -0
  99. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/checks/base.py +0 -0
  100. {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
  101. {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
  102. {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
  103. {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
  104. {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
  105. {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
  106. {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
  107. {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
  108. {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
  109. {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
  110. {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
  111. {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
  112. {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
  113. {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
  114. {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
  115. {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
  116. {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
  117. {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
  118. {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
  119. {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
  120. {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
  121. {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
  122. {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
  123. {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
  124. {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
  125. {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
  126. {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
  127. {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
  128. {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
  129. {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
  130. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/dbt_test/__init__.py +0 -0
  131. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/dbt_test/base.py +0 -0
  132. {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
  133. {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
  134. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/governance/__init__.py +0 -0
  135. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/governance/base.py +0 -0
  136. {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
  137. {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
  138. {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
  139. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/governance/undocumented_columns.py +0 -0
  140. {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
  141. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/README.md +0 -0
  142. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/__init__.py +0 -0
  143. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/base.py +0 -0
  144. {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
  145. {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
  146. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/duplicate_sources.py +0 -0
  147. {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
  148. {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
  149. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/model_fanout.py +0 -0
  150. {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
  151. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/root_model.py +0 -0
  152. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/source_fanout.py +0 -0
  153. {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
  154. {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
  155. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/modelling/unused_sources.py +0 -0
  156. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/performance/__init__.py +0 -0
  157. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/performance/base.py +0 -0
  158. {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
  159. {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
  160. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/schema.py +0 -0
  161. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/sql/__init__.py +0 -0
  162. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/sql/base.py +0 -0
  163. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/sql/sql_check.py +0 -0
  164. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/structure/__init__.py +0 -0
  165. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/structure/base.py +0 -0
  166. {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
  167. {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
  168. {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
  169. {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
  170. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/insights/utils.py +0 -0
  171. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/schemas/__init__.py +0 -0
  172. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/schemas/catalog.py +0 -0
  173. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/schemas/manifest.py +0 -0
  174. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/schemas/run_results.py +0 -0
  175. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/schemas/sources.py +0 -0
  176. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/utils.py +0 -0
  177. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/__init__.py +0 -0
  178. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/catalog/__init__.py +0 -0
  179. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/__init__.py +0 -0
  180. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/wrapper.py +0 -0
  181. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/catalog/wrapper.py +0 -0
  182. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/__init__.py +0 -0
  183. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/__init__.py +0 -0
  184. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/schemas.py +0 -0
  185. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/wrapper.py +0 -0
  186. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/__init__.py +0 -0
  187. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/schemas.py +0 -0
  188. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/wrapper.py +0 -0
  189. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/__init__.py +0 -0
  190. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/schemas.py +0 -0
  191. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/wrapper.py +0 -0
  192. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/manifest/wrapper.py +0 -0
  193. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/core/platforms/dbt/wrappers/run_results/__init__.py +0 -0
  194. {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
  195. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/exceptions/__init__.py +0 -0
  196. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/exceptions/exceptions.py +0 -0
  197. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/schemas/__init__.py +0 -0
  198. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/schemas/constants.py +0 -0
  199. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/schemas/nodes.py +0 -0
  200. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/schemas/sql.py +0 -0
  201. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/utils/__init__.py +0 -0
  202. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/utils/formatting/__init__.py +0 -0
  203. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/utils/formatting/utils.py +0 -0
  204. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/utils/logging_utils.py +0 -0
  205. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/datapilot/utils/utils.py +0 -0
  206. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/__init__.py +0 -0
  207. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/__init__.py +0 -0
  208. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parser.py +0 -0
  209. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/__init__.py +0 -0
  210. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/base.py +0 -0
  211. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/catalog/__init__.py +0 -0
  212. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/catalog/catalog_v1.py +0 -0
  213. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/__init__.py +0 -0
  214. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v1.py +0 -0
  215. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v10.py +0 -0
  216. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v11.py +0 -0
  217. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v12.py +0 -0
  218. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v2.py +0 -0
  219. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v3.py +0 -0
  220. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v4.py +0 -0
  221. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v5.py +0 -0
  222. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v6.py +0 -0
  223. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v7.py +0 -0
  224. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v8.py +0 -0
  225. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v9.py +0 -0
  226. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/run_results/__init__.py +0 -0
  227. {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
  228. {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
  229. {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
  230. {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
  231. {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
  232. {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
  233. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/sources/__init__.py +0 -0
  234. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/utils.py +0 -0
  235. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/parsers/version_map.py +0 -0
  236. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/catalog/catalog_v1.json +0 -0
  237. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v1.json +0 -0
  238. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v10.json +0 -0
  239. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v11.json +0 -0
  240. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v12.json +0 -0
  241. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v2.json +0 -0
  242. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v3.json +0 -0
  243. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v4.json +0 -0
  244. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v5.json +0 -0
  245. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v6.json +0 -0
  246. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v7.json +0 -0
  247. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v8.json +0 -0
  248. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/manifest/manifest_v9.json +0 -0
  249. {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
  250. {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
  251. {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
  252. {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
  253. {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
  254. {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
  255. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/sources/sources_v1.json +0 -0
  256. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/sources/sources_v2.json +0 -0
  257. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/resources/sources/sources_v3.json +0 -0
  258. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/src/vendor/dbt_artifacts_parser/utils.py +0 -0
  259. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/cli/__init__.py +0 -0
  260. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/cli/test_debug_option.py +0 -0
  261. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/clients/__init__.py +0 -0
  262. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/clients/altimate/__init__.py +0 -0
  263. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/clients/altimate/test_client_redaction.py +0 -0
  264. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/clients/altimate/test_utils.py +0 -0
  265. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/__init__.py +0 -0
  266. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/platform/__init__.py +0 -0
  267. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/platform/dbt/__init__.py +0 -0
  268. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/platform/dbt/test_artifact_loaders.py +0 -0
  269. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/platform/dbt/test_cli.py +0 -0
  270. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/core/platform/dbt/test_utils.py +0 -0
  271. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/catalog_v1.json +0 -0
  272. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/catalog_v12.json +0 -0
  273. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/config.yml +0 -0
  274. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifest_v10.json +0 -0
  275. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifest_v10macroargs.json +0 -0
  276. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifest_v11.json +0 -0
  277. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifest_v11macroargs.json +0 -0
  278. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifest_v12.json +0 -0
  279. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_js.json +0 -0
  280. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_js2.json +0 -0
  281. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_js3.json +0 -0
  282. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_tuva.json +0 -0
  283. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_tuva2.json +0 -0
  284. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/manifests/manifest_tuva3.json +0 -0
  285. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/run_results_v6.json +0 -0
  286. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/data/sources_v3.json +0 -0
  287. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/test_vendor/__init__.py +0 -0
  288. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/test_vendor/test_catalog_v1.py +0 -0
  289. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/test_vendor/test_run_results_pre_v6.py +0 -0
  290. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/test_vendor/test_run_results_v6.py +0 -0
  291. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/utils/__init__.py +0 -0
  292. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/utils/test_logging_utils.py +0 -0
  293. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tests/utils/test_utils.py +0 -0
  294. {altimate_datapilot_cli-0.3.5 → altimate_datapilot_cli-0.3.6}/tox.ini +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 0.3.5
2
+ current_version = 0.3.6
3
3
  commit = True
4
4
  tag = True
5
5
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: altimate-datapilot-cli
3
- Version: 0.3.5
3
+ Version: 0.3.6
4
4
  Summary: Assistant for Data Teams
5
5
  Home-page: https://github.com/AltimateAI/datapilot-cli
6
6
  Author: Altimate Inc
@@ -15,7 +15,7 @@ project = "datapilot-cli"
15
15
  year = "2024"
16
16
  author = "Altimate Inc."
17
17
  copyright = f"{year}, {author}"
18
- version = release = "0.3.5"
18
+ version = release = "0.3.6"
19
19
 
20
20
  pygments_style = "trac"
21
21
  templates_path = ["."]
@@ -13,7 +13,7 @@ def read(*names, **kwargs):
13
13
 
14
14
  setup(
15
15
  name="altimate-datapilot-cli",
16
- version="0.3.5",
16
+ version="0.3.6",
17
17
  license="MIT",
18
18
  description="Assistant for Data Teams",
19
19
  long_description="{}\n{}".format(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: altimate-datapilot-cli
3
- Version: 0.3.5
3
+ Version: 0.3.6
4
4
  Summary: Assistant for Data Teams
5
5
  Home-page: https://github.com/AltimateAI/datapilot-cli
6
6
  Author: Altimate Inc
@@ -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"