altimate-datapilot-cli 0.0.18__tar.gz → 0.0.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/.bumpversion.cfg +1 -1
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/.github/workflows/github-actions.yml +0 -60
- {altimate-datapilot-cli-0.0.18/src/altimate_datapilot_cli.egg-info → altimate-datapilot-cli-0.0.19}/PKG-INFO +1 -1
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/conf.py +1 -1
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/setup.py +3 -2
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19/src/altimate_datapilot_cli.egg-info}/PKG-INFO +1 -1
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/altimate_datapilot_cli.egg-info/SOURCES.txt +2 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/altimate_datapilot_cli.egg-info/requires.txt +2 -0
- altimate-datapilot-cli-0.0.19/src/datapilot/__init__.py +1 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/cli/main.py +2 -0
- altimate-datapilot-cli-0.0.19/src/datapilot/core/mcp_utils/__init__.py +2 -0
- altimate-datapilot-cli-0.0.19/src/datapilot/core/mcp_utils/mcp.py +176 -0
- altimate-datapilot-cli-0.0.18/src/datapilot/__init__.py +0 -1
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/.cookiecutterrc +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/.coveragerc +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/.editorconfig +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/.pre-commit-config.yaml +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/.pre-commit-hooks.yaml +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/.readthedocs.yml +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/AUTHORS.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/CHANGELOG.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/CONTRIBUTING.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/LICENSE +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/MANIFEST.in +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/README.md +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/README.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/ci/bootstrap.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/ci/requirements.txt +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/ci/templates/.github/workflows/github-actions.yml +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/authors.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/changelog.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/configuration.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/contributing.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/features.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/hooks.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/index.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/insights.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/installation.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/introduction.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/performance.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/readme.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/reference/datapilot.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/reference/index.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/requirements.txt +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/spelling_wordlist.txt +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/docs/usage.rst +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/pyproject.toml +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/pytest.ini +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/setup.cfg +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/altimate_datapilot_cli.egg-info/dependency_links.txt +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/altimate_datapilot_cli.egg-info/entry_points.txt +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/altimate_datapilot_cli.egg-info/not-zip-safe +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/altimate_datapilot_cli.egg-info/top_level.txt +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/__main__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/cli/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/clients/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/clients/altimate/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/clients/altimate/client.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/clients/altimate/utils.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/config/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/config/config.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/config/utils.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/base/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/base/insight.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/report.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/schema.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/sql/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/sql/base/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/sql/base/insight.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/sql/runtime/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/sql/static/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/utils.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/cli/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/cli/cli.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/constants.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/exceptions.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/executor.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/factory.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/formatting.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/hooks/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/hooks/executor_hook.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/base.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/base.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_column_desc_are_same.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_column_name_contract.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_macro_args_have_desc.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_macro_has_desc.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_all_columns.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_labels_keys.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_meta_keys.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_properties_file.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_group.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_name.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_type.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_materialization_by_childs.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_name_contract.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_and_childs.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_database.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_schema.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_model_tags.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_childs.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_columns_have_desc.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_all_columns.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_freshness.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_labels_keys.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_loader.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_meta_keys.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_group.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_name.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_type.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_table_has_description.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/checks/check_source_tags.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/dbt_test/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/dbt_test/base.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/dbt_test/missing_primary_key_tests.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/dbt_test/test_coverage.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/governance/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/governance/base.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/governance/documentation_on_stale_columns.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/governance/exposures_dependent_on_private_models.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/governance/public_models_without_contracts.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/governance/undocumented_columns.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/governance/undocumented_public_models.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/README.md +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/base.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/direct_join_to_source.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/downstream_models_dependent_on_source.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/duplicate_sources.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/hard_coded_references.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/joining_of_upstream_concepts.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/model_fanout.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/multiple_sources_joined.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/root_model.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/source_fanout.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/staging_model_dependent_on_downstream_models.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/staging_model_dependent_on_staging_models.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/modelling/unused_sources.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/performance/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/performance/base.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/performance/chain_view_linking.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/performance/exposure_parent_materializations.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/schema.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/sql/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/sql/base.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/sql/sql_check.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/structure/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/structure/base.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/structure/model_directories_structure.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/structure/model_naming_conventions.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/structure/source_directories_structure.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/structure/test_directory_structure.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/insights/utils.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/schemas/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/schemas/catalog.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/schemas/manifest.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/utils.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/catalog/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/catalog/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/schemas.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/v10/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/schemas.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/schemas.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/v12/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/manifest/wrapper.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/run_results/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/platforms/dbt/wrappers/run_results/run_results.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/exceptions/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/exceptions/exceptions.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/schemas/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/schemas/constants.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/schemas/nodes.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/schemas/sql.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/utils/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/utils/formatting/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/utils/formatting/utils.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/utils/utils.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/core/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/core/platform/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/core/platform/dbt/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/core/platform/dbt/test_cli.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/core/platform/dbt/test_utils.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/catalog_v1.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/catalog_v12.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/config.yml +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifest_v10.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifest_v10macroargs.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifest_v11.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifest_v11macroargs.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifest_v12.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifests/manifest_js.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifests/manifest_js2.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifests/manifest_js3.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifests/manifest_tuva.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifests/manifest_tuva2.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/data/manifests/manifest_tuva3.json +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/utils/__init__.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tests/utils/test_utils.py +0 -0
- {altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/tox.ini +0 -0
{altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/.github/workflows/github-actions.yml
RENAMED
@@ -19,42 +19,6 @@ jobs:
|
|
19
19
|
toxpython: 'python3.11'
|
20
20
|
tox_env: 'docs'
|
21
21
|
os: 'ubuntu-latest'
|
22
|
-
- name: 'py39-pydantic28-cover (ubuntu)'
|
23
|
-
python: '3.9'
|
24
|
-
toxpython: 'python3.9'
|
25
|
-
python_arch: 'x64'
|
26
|
-
tox_env: 'py39-pydantic28-cover'
|
27
|
-
os: 'ubuntu-latest'
|
28
|
-
- name: 'py39-pydantic28-cover (windows)'
|
29
|
-
python: '3.9'
|
30
|
-
toxpython: 'python3.9'
|
31
|
-
python_arch: 'x64'
|
32
|
-
tox_env: 'py39-pydantic28-cover'
|
33
|
-
os: 'windows-latest'
|
34
|
-
- name: 'py39-pydantic28-cover (macos)'
|
35
|
-
python: '3.9'
|
36
|
-
toxpython: 'python3.9'
|
37
|
-
python_arch: 'x64'
|
38
|
-
tox_env: 'py39-pydantic28-cover'
|
39
|
-
os: 'macos-13'
|
40
|
-
- name: 'py39-pydantic210-cover'
|
41
|
-
python: '3.9'
|
42
|
-
toxpython: 'python3.9'
|
43
|
-
python_arch: 'x64'
|
44
|
-
tox_env: 'py39-pydantic210-cover'
|
45
|
-
os: 'ubuntu-latest'
|
46
|
-
- name: 'py39-pydantic28-nocov'
|
47
|
-
python: '3.9'
|
48
|
-
toxpython: 'python3.9'
|
49
|
-
python_arch: 'x64'
|
50
|
-
tox_env: 'py39-pydantic28-nocov'
|
51
|
-
os: 'ubuntu-latest'
|
52
|
-
- name: 'py39-pydantic210-nocov'
|
53
|
-
python: '3.9'
|
54
|
-
toxpython: 'python3.9'
|
55
|
-
python_arch: 'x64'
|
56
|
-
tox_env: 'py39-pydantic210-nocov'
|
57
|
-
os: 'ubuntu-latest'
|
58
22
|
- name: 'py310-pydantic28-cover'
|
59
23
|
python: '3.10'
|
60
24
|
toxpython: 'python3.10'
|
@@ -127,30 +91,6 @@ jobs:
|
|
127
91
|
python_arch: 'x64'
|
128
92
|
tox_env: 'py312-pydantic210-nocov'
|
129
93
|
os: 'ubuntu-latest'
|
130
|
-
- name: 'pypy39-pydantic28-cover'
|
131
|
-
python: 'pypy-3.9'
|
132
|
-
toxpython: 'pypy3.9'
|
133
|
-
python_arch: 'x64'
|
134
|
-
tox_env: 'pypy39-pydantic28-cover'
|
135
|
-
os: 'ubuntu-latest'
|
136
|
-
- name: 'pypy39-pydantic210-cover'
|
137
|
-
python: 'pypy-3.9'
|
138
|
-
toxpython: 'pypy3.9'
|
139
|
-
python_arch: 'x64'
|
140
|
-
tox_env: 'pypy39-pydantic210-cover'
|
141
|
-
os: 'ubuntu-latest'
|
142
|
-
- name: 'pypy39-pydantic28-nocov'
|
143
|
-
python: 'pypy-3.9'
|
144
|
-
toxpython: 'pypy3.9'
|
145
|
-
python_arch: 'x64'
|
146
|
-
tox_env: 'pypy39-pydantic28-nocov'
|
147
|
-
os: 'ubuntu-latest'
|
148
|
-
- name: 'pypy39-pydantic210-nocov'
|
149
|
-
python: 'pypy-3.9'
|
150
|
-
toxpython: 'pypy3.9'
|
151
|
-
python_arch: 'x64'
|
152
|
-
tox_env: 'pypy39-pydantic210-nocov'
|
153
|
-
os: 'ubuntu-latest'
|
154
94
|
- name: 'pypy310-pydantic28-cover'
|
155
95
|
python: 'pypy-3.10'
|
156
96
|
toxpython: 'pypy3.10'
|
@@ -1,4 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
1
|
import re
|
3
2
|
from pathlib import Path
|
4
3
|
|
@@ -13,7 +12,7 @@ def read(*names, **kwargs):
|
|
13
12
|
|
14
13
|
setup(
|
15
14
|
name="altimate-datapilot-cli",
|
16
|
-
version="0.0.
|
15
|
+
version="0.0.19",
|
17
16
|
license="MIT",
|
18
17
|
description="Assistant for Data Teams",
|
19
18
|
long_description="{}\n{}".format(
|
@@ -68,6 +67,8 @@ setup(
|
|
68
67
|
"tabulate~=0.9.0",
|
69
68
|
"requests>=2.31",
|
70
69
|
"sqlglot~=25.30.0",
|
70
|
+
"mcp~=1.9.0",
|
71
|
+
"pyperclip~=1.8.2",
|
71
72
|
],
|
72
73
|
extras_require={
|
73
74
|
# eg:
|
@@ -68,6 +68,8 @@ src/datapilot/core/insights/sql/base/__init__.py
|
|
68
68
|
src/datapilot/core/insights/sql/base/insight.py
|
69
69
|
src/datapilot/core/insights/sql/runtime/__init__.py
|
70
70
|
src/datapilot/core/insights/sql/static/__init__.py
|
71
|
+
src/datapilot/core/mcp_utils/__init__.py
|
72
|
+
src/datapilot/core/mcp_utils/mcp.py
|
71
73
|
src/datapilot/core/platforms/__init__.py
|
72
74
|
src/datapilot/core/platforms/dbt/__init__.py
|
73
75
|
src/datapilot/core/platforms/dbt/constants.py
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.0.19"
|
@@ -0,0 +1,176 @@
|
|
1
|
+
import asyncio
|
2
|
+
import json
|
3
|
+
import logging
|
4
|
+
import shutil
|
5
|
+
from dataclasses import dataclass
|
6
|
+
|
7
|
+
import click
|
8
|
+
import pyperclip
|
9
|
+
from mcp import ClientSession
|
10
|
+
from mcp import StdioServerParameters
|
11
|
+
from mcp.client.stdio import stdio_client
|
12
|
+
|
13
|
+
logging.basicConfig(level=logging.INFO)
|
14
|
+
|
15
|
+
|
16
|
+
@dataclass
|
17
|
+
class InputParameter:
|
18
|
+
name: str
|
19
|
+
type: str
|
20
|
+
required: bool
|
21
|
+
key: str
|
22
|
+
description: str
|
23
|
+
|
24
|
+
|
25
|
+
def find_input_tokens(data):
|
26
|
+
tokens = set()
|
27
|
+
if isinstance(data, list):
|
28
|
+
for item in data:
|
29
|
+
tokens.update(find_input_tokens(item))
|
30
|
+
elif isinstance(data, dict):
|
31
|
+
for value in data.values():
|
32
|
+
tokens.update(find_input_tokens(value))
|
33
|
+
elif isinstance(data, str) and data.startswith("${input:"):
|
34
|
+
tokens.add(data[8:-1].strip())
|
35
|
+
return tokens
|
36
|
+
|
37
|
+
|
38
|
+
# New mcp group
|
39
|
+
@click.group()
|
40
|
+
def mcp():
|
41
|
+
"""mcp specific commands."""
|
42
|
+
|
43
|
+
|
44
|
+
@mcp.command("inspect-mcp-server")
|
45
|
+
def create_mcp_proxy():
|
46
|
+
content = click.edit()
|
47
|
+
if content is None:
|
48
|
+
click.echo("No input provided.")
|
49
|
+
return
|
50
|
+
|
51
|
+
try:
|
52
|
+
config = json.loads(content)
|
53
|
+
except json.JSONDecodeError:
|
54
|
+
click.echo("Invalid JSON content.")
|
55
|
+
return
|
56
|
+
|
57
|
+
inputs = {}
|
58
|
+
mcp_config = config.get("mcp", {})
|
59
|
+
|
60
|
+
# Select server
|
61
|
+
# Support both "servers" and "mcpServers" naming conventions
|
62
|
+
servers = mcp_config.get("mcpServers", mcp_config.get("servers", {}))
|
63
|
+
server_names = list(servers.keys())
|
64
|
+
|
65
|
+
if not server_names:
|
66
|
+
ctx = click.get_current_context()
|
67
|
+
click.secho("Error: No servers configured in mcp config (tried keys: 'mcpServers' and 'servers')", fg="red")
|
68
|
+
ctx.exit(1)
|
69
|
+
|
70
|
+
if len(server_names) > 1:
|
71
|
+
server_name = click.prompt("Choose a server", type=click.Choice(server_names), show_choices=True)
|
72
|
+
else:
|
73
|
+
server_name = server_names[0]
|
74
|
+
|
75
|
+
if server_name in servers:
|
76
|
+
server_config = servers[server_name]
|
77
|
+
|
78
|
+
# Collect input tokens ONLY from this server's config
|
79
|
+
input_ids = find_input_tokens(server_config.get("args", []))
|
80
|
+
input_ids.update(find_input_tokens(server_config.get("env", {})))
|
81
|
+
|
82
|
+
# Create prompt definitions using BOTH discovered tokens AND configured inputs
|
83
|
+
existing_input_ids = {i["id"] for i in mcp_config.get("inputs", [])}
|
84
|
+
inputs_to_prompt = input_ids.intersection(existing_input_ids)
|
85
|
+
inputs_to_prompt.update(input_ids) # Add any undiscovered-by-config inputs
|
86
|
+
|
87
|
+
input_configs = []
|
88
|
+
for input_id in inputs_to_prompt:
|
89
|
+
input_def = next((d for d in mcp_config.get("inputs", []) if d["id"] == input_id), {})
|
90
|
+
inputs[input_id] = click.prompt(
|
91
|
+
input_def.get("description", input_id),
|
92
|
+
hide_input=True,
|
93
|
+
)
|
94
|
+
# Create InputParameters config entry
|
95
|
+
input_configs.append(
|
96
|
+
InputParameter(
|
97
|
+
name=input_def.get("name", input_id),
|
98
|
+
type="password",
|
99
|
+
required=True,
|
100
|
+
key=input_id,
|
101
|
+
description=input_def.get("description", ""),
|
102
|
+
).__dict__
|
103
|
+
)
|
104
|
+
|
105
|
+
# Replace input tokens in args
|
106
|
+
processed_args = [
|
107
|
+
inputs.get(arg[8:-1], arg) if isinstance(arg, str) and arg.startswith("${input:") else arg
|
108
|
+
for arg in server_config.get("args", [])
|
109
|
+
]
|
110
|
+
|
111
|
+
# Replace input tokens in environment variables
|
112
|
+
processed_env = {
|
113
|
+
k: inputs.get(v[8:-1], v) if isinstance(v, str) and v.startswith("${input:") else v
|
114
|
+
for k, v in server_config.get("env", {}).items()
|
115
|
+
}
|
116
|
+
|
117
|
+
# Execute with processed parameters
|
118
|
+
output = asyncio.run(
|
119
|
+
list_tools(server_config=server_config, command=server_config["command"], args=processed_args, env=processed_env)
|
120
|
+
)
|
121
|
+
# Add processed parameters to output
|
122
|
+
output_with_name = {
|
123
|
+
"name": server_name,
|
124
|
+
"config": input_configs,
|
125
|
+
"command": server_config["command"],
|
126
|
+
"args": [arg.replace("${input:", "${") if isinstance(arg, str) else arg for arg in server_config.get("args", [])],
|
127
|
+
"env": [
|
128
|
+
{"key": k, "value": v.replace("${input:", "${") if isinstance(v, str) else v}
|
129
|
+
for k, v in server_config.get("env", {}).items()
|
130
|
+
],
|
131
|
+
**output,
|
132
|
+
}
|
133
|
+
output_json = json.dumps(output_with_name, indent=2)
|
134
|
+
click.echo(output_json)
|
135
|
+
try:
|
136
|
+
pyperclip.copy(output_json)
|
137
|
+
click.secho("\nOutput copied to clipboard!", fg="green")
|
138
|
+
except pyperclip.PyperclipException as e:
|
139
|
+
click.secho(f"\nFailed to copy to clipboard: {e!s}", fg="yellow")
|
140
|
+
|
141
|
+
|
142
|
+
async def list_tools(server_config: dict, command: str, args: list[str], env: dict[str, str]):
|
143
|
+
command_path = shutil.which(command)
|
144
|
+
if not command_path:
|
145
|
+
raise click.UsageError(f"Command not found: {command}")
|
146
|
+
|
147
|
+
try:
|
148
|
+
# Only support stdio server type
|
149
|
+
server_type = server_config.get("type", "stdio")
|
150
|
+
if server_type != "stdio":
|
151
|
+
raise click.UsageError(f"Only stdio MCP servers are supported. Found type: {server_type}")
|
152
|
+
|
153
|
+
server_params = StdioServerParameters(
|
154
|
+
command=command_path,
|
155
|
+
args=args,
|
156
|
+
env=env,
|
157
|
+
)
|
158
|
+
|
159
|
+
async with stdio_client(server_params) as (read, write):
|
160
|
+
async with ClientSession(read, write) as session:
|
161
|
+
await session.initialize()
|
162
|
+
tools = await session.list_tools()
|
163
|
+
mcp_tools = [
|
164
|
+
{
|
165
|
+
"name": tool.name,
|
166
|
+
"description": tool.description,
|
167
|
+
"inputSchema": tool.inputSchema,
|
168
|
+
}
|
169
|
+
for tool in tools.tools
|
170
|
+
]
|
171
|
+
|
172
|
+
return {
|
173
|
+
"tools": mcp_tools,
|
174
|
+
}
|
175
|
+
except Exception as e:
|
176
|
+
raise click.UsageError("Could not connect to MCP server: " + str(e)) from e
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = "0.0.18"
|
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.0.18 → altimate-datapilot-cli-0.0.19}/docs/reference/datapilot.rst
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
|
{altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/cli/__init__.py
RENAMED
File without changes
|
{altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/clients/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/config/__init__.py
RENAMED
File without changes
|
{altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/config/config.py
RENAMED
File without changes
|
{altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/config/utils.py
RENAMED
File without changes
|
{altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/__init__.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
|
{altimate-datapilot-cli-0.0.18 → altimate-datapilot-cli-0.0.19}/src/datapilot/core/insights/utils.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
|