altimate-datapilot-cli 0.0.8__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.8/.bumpversion.cfg +16 -0
- altimate-datapilot-cli-0.0.8/.cookiecutterrc +61 -0
- altimate-datapilot-cli-0.0.8/.coveragerc +14 -0
- altimate-datapilot-cli-0.0.8/.editorconfig +20 -0
- altimate-datapilot-cli-0.0.8/.github/workflows/github-actions.yml +329 -0
- altimate-datapilot-cli-0.0.8/.pre-commit-config.yaml +22 -0
- altimate-datapilot-cli-0.0.8/.pre-commit-hooks.yaml +7 -0
- altimate-datapilot-cli-0.0.8/.readthedocs.yml +14 -0
- altimate-datapilot-cli-0.0.8/AUTHORS.rst +5 -0
- altimate-datapilot-cli-0.0.8/CHANGELOG.rst +8 -0
- altimate-datapilot-cli-0.0.8/CONTRIBUTING.rst +85 -0
- altimate-datapilot-cli-0.0.8/LICENSE +9 -0
- altimate-datapilot-cli-0.0.8/MANIFEST.in +25 -0
- altimate-datapilot-cli-0.0.8/PKG-INFO +96 -0
- altimate-datapilot-cli-0.0.8/README.md +140 -0
- altimate-datapilot-cli-0.0.8/README.rst +81 -0
- altimate-datapilot-cli-0.0.8/ci/bootstrap.py +83 -0
- altimate-datapilot-cli-0.0.8/ci/requirements.txt +6 -0
- altimate-datapilot-cli-0.0.8/ci/templates/.github/workflows/github-actions.yml +65 -0
- altimate-datapilot-cli-0.0.8/docs/authors.rst +1 -0
- altimate-datapilot-cli-0.0.8/docs/changelog.rst +1 -0
- altimate-datapilot-cli-0.0.8/docs/conf.py +42 -0
- altimate-datapilot-cli-0.0.8/docs/configuration.rst +72 -0
- altimate-datapilot-cli-0.0.8/docs/contributing.rst +1 -0
- altimate-datapilot-cli-0.0.8/docs/features.rst +47 -0
- altimate-datapilot-cli-0.0.8/docs/hooks.rst +51 -0
- altimate-datapilot-cli-0.0.8/docs/index.rst +19 -0
- altimate-datapilot-cli-0.0.8/docs/insights.rst +280 -0
- altimate-datapilot-cli-0.0.8/docs/installation.rst +36 -0
- altimate-datapilot-cli-0.0.8/docs/introduction.rst +32 -0
- altimate-datapilot-cli-0.0.8/docs/performance.rst +47 -0
- altimate-datapilot-cli-0.0.8/docs/readme.rst +1 -0
- altimate-datapilot-cli-0.0.8/docs/reference/datapilot.rst +9 -0
- altimate-datapilot-cli-0.0.8/docs/reference/index.rst +7 -0
- altimate-datapilot-cli-0.0.8/docs/requirements.txt +2 -0
- altimate-datapilot-cli-0.0.8/docs/spelling_wordlist.txt +11 -0
- altimate-datapilot-cli-0.0.8/docs/usage.rst +7 -0
- altimate-datapilot-cli-0.0.8/pyproject.toml +52 -0
- altimate-datapilot-cli-0.0.8/pytest.ini +37 -0
- altimate-datapilot-cli-0.0.8/setup.cfg +4 -0
- altimate-datapilot-cli-0.0.8/setup.py +83 -0
- altimate-datapilot-cli-0.0.8/src/altimate_datapilot_cli.egg-info/PKG-INFO +96 -0
- altimate-datapilot-cli-0.0.8/src/altimate_datapilot_cli.egg-info/SOURCES.txt +195 -0
- altimate-datapilot-cli-0.0.8/src/altimate_datapilot_cli.egg-info/dependency_links.txt +1 -0
- altimate-datapilot-cli-0.0.8/src/altimate_datapilot_cli.egg-info/entry_points.txt +4 -0
- altimate-datapilot-cli-0.0.8/src/altimate_datapilot_cli.egg-info/not-zip-safe +1 -0
- altimate-datapilot-cli-0.0.8/src/altimate_datapilot_cli.egg-info/requires.txt +6 -0
- altimate-datapilot-cli-0.0.8/src/altimate_datapilot_cli.egg-info/top_level.txt +1 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/__init__.py +1 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/__main__.py +14 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/cli/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/cli/main.py +11 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/clients/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/clients/altimate/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/clients/altimate/client.py +85 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/clients/altimate/utils.py +75 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/config/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/config/config.py +16 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/config/utils.py +32 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/__init__.py +2 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/base/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/base/insight.py +34 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/report.py +16 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/schema.py +24 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/sql/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/sql/base/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/sql/base/insight.py +18 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/sql/runtime/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/sql/static/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/insights/utils.py +20 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/cli/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/cli/cli.py +112 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/constants.py +34 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/exceptions.py +6 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/executor.py +157 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/factory.py +22 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/formatting.py +45 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/hooks/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/hooks/executor_hook.py +86 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/__init__.py +115 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/base.py +133 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/base.py +26 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_column_desc_are_same.py +105 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_column_name_contract.py +154 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_macro_args_have_desc.py +75 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_macro_has_desc.py +63 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_all_columns.py +96 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_labels_keys.py +112 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_meta_keys.py +108 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_properties_file.py +64 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_group.py +118 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_name.py +114 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_has_tests_by_type.py +119 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_materialization_by_childs.py +129 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_name_contract.py +132 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_and_childs.py +135 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_database.py +109 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_parents_schema.py +109 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_model_tags.py +87 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_childs.py +97 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_columns_have_desc.py +96 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_all_columns.py +103 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_freshness.py +94 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_labels_keys.py +110 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_loader.py +62 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_meta_keys.py +117 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests.py +82 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_group.py +117 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_name.py +113 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_has_tests_by_type.py +119 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_table_has_description.py +62 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/checks/check_source_tags.py +76 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/dbt_test/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/dbt_test/base.py +23 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/dbt_test/missing_primary_key_tests.py +130 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/dbt_test/test_coverage.py +118 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/governance/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/governance/base.py +23 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/governance/documentation_on_stale_columns.py +130 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/governance/exposures_dependent_on_private_models.py +90 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/governance/public_models_without_contracts.py +89 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/governance/undocumented_columns.py +148 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/governance/undocumented_public_models.py +110 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/README.md +15 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/base.py +31 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/direct_join_to_source.py +125 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/downstream_models_dependent_on_source.py +113 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/duplicate_sources.py +85 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/hard_coded_references.py +80 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/joining_of_upstream_concepts.py +79 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/model_fanout.py +126 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/multiple_sources_joined.py +83 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/root_model.py +82 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/source_fanout.py +102 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/staging_model_dependent_on_downstream_models.py +103 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/staging_model_dependent_on_staging_models.py +89 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/modelling/unused_sources.py +59 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/performance/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/performance/base.py +26 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/performance/chain_view_linking.py +92 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/performance/exposure_parent_materializations.py +104 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/schema.py +72 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/structure/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/structure/base.py +33 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/structure/model_directories_structure.py +92 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/structure/model_naming_conventions.py +97 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/structure/source_directories_structure.py +80 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/structure/test_directory_structure.py +74 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/insights/utils.py +9 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/schemas/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/schemas/catalog.py +73 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/schemas/manifest.py +462 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/utils.py +525 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/catalog/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/catalog/v1/wrapper.py +18 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/catalog/wrapper.py +9 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/manifest/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/schemas.py +47 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/manifest/v11/wrapper.py +396 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/manifest/wrapper.py +35 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/run_results/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/core/platforms/dbt/wrappers/run_results/run_results.py +39 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/exceptions/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/exceptions/exceptions.py +10 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/schemas/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/schemas/constants.py +5 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/schemas/nodes.py +19 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/schemas/sql.py +10 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/utils/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/utils/formatting/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/utils/formatting/utils.py +59 -0
- altimate-datapilot-cli-0.0.8/src/datapilot/utils/utils.py +317 -0
- altimate-datapilot-cli-0.0.8/tests/core/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/tests/core/platform/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/tests/core/platform/dbt/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/tests/core/platform/dbt/test_cli.py +37 -0
- altimate-datapilot-cli-0.0.8/tests/core/platform/dbt/test_utils.py +139 -0
- altimate-datapilot-cli-0.0.8/tests/data/catalog_v1.json +5233 -0
- altimate-datapilot-cli-0.0.8/tests/data/config.yml +20 -0
- altimate-datapilot-cli-0.0.8/tests/data/manifest_v11.json +38002 -0
- altimate-datapilot-cli-0.0.8/tests/data/manifests/manifest_js.json +1 -0
- altimate-datapilot-cli-0.0.8/tests/data/manifests/manifest_js2.json +1 -0
- altimate-datapilot-cli-0.0.8/tests/data/manifests/manifest_js3.json +1 -0
- altimate-datapilot-cli-0.0.8/tests/data/manifests/manifest_tuva.json +1 -0
- altimate-datapilot-cli-0.0.8/tests/data/manifests/manifest_tuva2.json +1 -0
- altimate-datapilot-cli-0.0.8/tests/data/manifests/manifest_tuva3.json +1 -0
- altimate-datapilot-cli-0.0.8/tests/utils/__init__.py +0 -0
- altimate-datapilot-cli-0.0.8/tests/utils/test_utils.py +70 -0
- altimate-datapilot-cli-0.0.8/tox.ini +81 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
[bumpversion]
|
2
|
+
current_version = 0.0.8
|
3
|
+
commit = True
|
4
|
+
tag = True
|
5
|
+
|
6
|
+
[bumpversion:file:setup.py]
|
7
|
+
search = version="{current_version}"
|
8
|
+
replace = version="{new_version}"
|
9
|
+
|
10
|
+
[bumpversion:file:docs/conf.py]
|
11
|
+
search = version = release = "{current_version}"
|
12
|
+
replace = version = release = "{new_version}"
|
13
|
+
|
14
|
+
[bumpversion:file:src/datapilot/__init__.py]
|
15
|
+
search = __version__ = "{current_version}"
|
16
|
+
replace = __version__ = "{new_version}"
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# This file exists so you can easily regenerate your project.
|
2
|
+
#
|
3
|
+
# `cookiepatcher` is a convenient shim around `cookiecutter`
|
4
|
+
# for regenerating projects (it will generate a .cookiecutterrc
|
5
|
+
# automatically for any template). To use it:
|
6
|
+
#
|
7
|
+
# pip install cookiepatcher
|
8
|
+
# cookiepatcher gh:ionelmc/cookiecutter-pylibrary datapilot
|
9
|
+
#
|
10
|
+
# See:
|
11
|
+
# https://pypi.org/project/cookiepatcher
|
12
|
+
#
|
13
|
+
# Alternatively, you can run:
|
14
|
+
#
|
15
|
+
# cookiecutter --overwrite-if-exists --config-file=datapilot/.cookiecutterrc gh:ionelmc/cookiecutter-pylibrary
|
16
|
+
|
17
|
+
default_context:
|
18
|
+
allow_tests_inside_package: "no"
|
19
|
+
c_extension_function: "longest"
|
20
|
+
c_extension_module: "_datapilot"
|
21
|
+
c_extension_optional: "yes"
|
22
|
+
c_extension_support: "no"
|
23
|
+
codacy: "no"
|
24
|
+
codacy_projectid: "[Get ID from https://app.codacy.com/gh/anandgupta42/datapilot/settings]"
|
25
|
+
codeclimate: "no"
|
26
|
+
codecov: "yes"
|
27
|
+
command_line_interface: "click"
|
28
|
+
command_line_interface_bin_name: "datapilot"
|
29
|
+
coveralls: "no"
|
30
|
+
distribution_name: "altimate-datapilot-cli"
|
31
|
+
email: "info@altimate.ai"
|
32
|
+
formatter_quote_style: "double"
|
33
|
+
full_name: "Anand Gupta"
|
34
|
+
github_actions: "yes"
|
35
|
+
github_actions_osx: "yes"
|
36
|
+
github_actions_windows: "yes"
|
37
|
+
license: "MIT license"
|
38
|
+
package_name: "datapilot"
|
39
|
+
pre_commit: "yes"
|
40
|
+
project_name: "altimate-datapilot"
|
41
|
+
project_short_description: "Assistant for Data Teams"
|
42
|
+
pypi_badge: "yes"
|
43
|
+
pypi_disable_upload: "no"
|
44
|
+
release_date: "today"
|
45
|
+
repo_hosting: "github.com"
|
46
|
+
repo_hosting_domain: "github.com"
|
47
|
+
repo_main_branch: "main"
|
48
|
+
repo_name: "datapilot"
|
49
|
+
repo_username: "AltimateAI"
|
50
|
+
scrutinizer: "yes"
|
51
|
+
setup_py_uses_setuptools_scm: "no"
|
52
|
+
sphinx_docs: "yes"
|
53
|
+
sphinx_docs_hosting: "https://datapilot.readthedocs.io/"
|
54
|
+
sphinx_doctest: "no"
|
55
|
+
sphinx_theme: "furo"
|
56
|
+
test_matrix_separate_coverage: "yes"
|
57
|
+
version: "0.0.0"
|
58
|
+
version_manager: "bump2version"
|
59
|
+
website: "www.altimate.ai"
|
60
|
+
year_from: "2024"
|
61
|
+
year_to: "2024"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# see https://editorconfig.org/
|
2
|
+
root = true
|
3
|
+
|
4
|
+
[*]
|
5
|
+
# Use Unix-style newlines for most files (except Windows files, see below).
|
6
|
+
end_of_line = lf
|
7
|
+
trim_trailing_whitespace = true
|
8
|
+
indent_style = space
|
9
|
+
insert_final_newline = true
|
10
|
+
indent_size = 4
|
11
|
+
charset = utf-8
|
12
|
+
|
13
|
+
[*.{bat,cmd,ps1}]
|
14
|
+
end_of_line = crlf
|
15
|
+
|
16
|
+
[*.{yml,yaml}]
|
17
|
+
indent_size = 2
|
18
|
+
|
19
|
+
[*.tsv]
|
20
|
+
indent_style = tab
|
@@ -0,0 +1,329 @@
|
|
1
|
+
name: build
|
2
|
+
on: [push, pull_request]
|
3
|
+
jobs:
|
4
|
+
test:
|
5
|
+
name: ${{ matrix.name }}
|
6
|
+
runs-on: ${{ matrix.os }}
|
7
|
+
timeout-minutes: 30
|
8
|
+
strategy:
|
9
|
+
fail-fast: false
|
10
|
+
matrix:
|
11
|
+
include:
|
12
|
+
- name: 'check'
|
13
|
+
python: '3.11'
|
14
|
+
toxpython: 'python3.11'
|
15
|
+
tox_env: 'check'
|
16
|
+
os: 'ubuntu-latest'
|
17
|
+
- name: 'docs'
|
18
|
+
python: '3.11'
|
19
|
+
toxpython: 'python3.11'
|
20
|
+
tox_env: 'docs'
|
21
|
+
os: 'ubuntu-latest'
|
22
|
+
- name: 'py38-cover (ubuntu)'
|
23
|
+
python: '3.8'
|
24
|
+
toxpython: 'python3.8'
|
25
|
+
python_arch: 'x64'
|
26
|
+
tox_env: 'py38-cover'
|
27
|
+
os: 'ubuntu-latest'
|
28
|
+
- name: 'py38-cover (windows)'
|
29
|
+
python: '3.8'
|
30
|
+
toxpython: 'python3.8'
|
31
|
+
python_arch: 'x64'
|
32
|
+
tox_env: 'py38-cover'
|
33
|
+
os: 'windows-latest'
|
34
|
+
- name: 'py38-cover (macos)'
|
35
|
+
python: '3.8'
|
36
|
+
toxpython: 'python3.8'
|
37
|
+
python_arch: 'x64'
|
38
|
+
tox_env: 'py38-cover'
|
39
|
+
os: 'macos-latest'
|
40
|
+
- name: 'py38-nocov (ubuntu)'
|
41
|
+
python: '3.8'
|
42
|
+
toxpython: 'python3.8'
|
43
|
+
python_arch: 'x64'
|
44
|
+
tox_env: 'py38-nocov'
|
45
|
+
os: 'ubuntu-latest'
|
46
|
+
- name: 'py38-nocov (windows)'
|
47
|
+
python: '3.8'
|
48
|
+
toxpython: 'python3.8'
|
49
|
+
python_arch: 'x64'
|
50
|
+
tox_env: 'py38-nocov'
|
51
|
+
os: 'windows-latest'
|
52
|
+
- name: 'py38-nocov (macos)'
|
53
|
+
python: '3.8'
|
54
|
+
toxpython: 'python3.8'
|
55
|
+
python_arch: 'x64'
|
56
|
+
tox_env: 'py38-nocov'
|
57
|
+
os: 'macos-latest'
|
58
|
+
- name: 'py39-cover (ubuntu)'
|
59
|
+
python: '3.9'
|
60
|
+
toxpython: 'python3.9'
|
61
|
+
python_arch: 'x64'
|
62
|
+
tox_env: 'py39-cover'
|
63
|
+
os: 'ubuntu-latest'
|
64
|
+
- name: 'py39-cover (windows)'
|
65
|
+
python: '3.9'
|
66
|
+
toxpython: 'python3.9'
|
67
|
+
python_arch: 'x64'
|
68
|
+
tox_env: 'py39-cover'
|
69
|
+
os: 'windows-latest'
|
70
|
+
- name: 'py39-cover (macos)'
|
71
|
+
python: '3.9'
|
72
|
+
toxpython: 'python3.9'
|
73
|
+
python_arch: 'x64'
|
74
|
+
tox_env: 'py39-cover'
|
75
|
+
os: 'macos-latest'
|
76
|
+
- name: 'py39-nocov (ubuntu)'
|
77
|
+
python: '3.9'
|
78
|
+
toxpython: 'python3.9'
|
79
|
+
python_arch: 'x64'
|
80
|
+
tox_env: 'py39-nocov'
|
81
|
+
os: 'ubuntu-latest'
|
82
|
+
- name: 'py39-nocov (windows)'
|
83
|
+
python: '3.9'
|
84
|
+
toxpython: 'python3.9'
|
85
|
+
python_arch: 'x64'
|
86
|
+
tox_env: 'py39-nocov'
|
87
|
+
os: 'windows-latest'
|
88
|
+
- name: 'py39-nocov (macos)'
|
89
|
+
python: '3.9'
|
90
|
+
toxpython: 'python3.9'
|
91
|
+
python_arch: 'x64'
|
92
|
+
tox_env: 'py39-nocov'
|
93
|
+
os: 'macos-latest'
|
94
|
+
- name: 'py310-cover (ubuntu)'
|
95
|
+
python: '3.10'
|
96
|
+
toxpython: 'python3.10'
|
97
|
+
python_arch: 'x64'
|
98
|
+
tox_env: 'py310-cover'
|
99
|
+
os: 'ubuntu-latest'
|
100
|
+
- name: 'py310-cover (windows)'
|
101
|
+
python: '3.10'
|
102
|
+
toxpython: 'python3.10'
|
103
|
+
python_arch: 'x64'
|
104
|
+
tox_env: 'py310-cover'
|
105
|
+
os: 'windows-latest'
|
106
|
+
- name: 'py310-cover (macos)'
|
107
|
+
python: '3.10'
|
108
|
+
toxpython: 'python3.10'
|
109
|
+
python_arch: 'x64'
|
110
|
+
tox_env: 'py310-cover'
|
111
|
+
os: 'macos-latest'
|
112
|
+
- name: 'py310-nocov (ubuntu)'
|
113
|
+
python: '3.10'
|
114
|
+
toxpython: 'python3.10'
|
115
|
+
python_arch: 'x64'
|
116
|
+
tox_env: 'py310-nocov'
|
117
|
+
os: 'ubuntu-latest'
|
118
|
+
- name: 'py310-nocov (windows)'
|
119
|
+
python: '3.10'
|
120
|
+
toxpython: 'python3.10'
|
121
|
+
python_arch: 'x64'
|
122
|
+
tox_env: 'py310-nocov'
|
123
|
+
os: 'windows-latest'
|
124
|
+
- name: 'py310-nocov (macos)'
|
125
|
+
python: '3.10'
|
126
|
+
toxpython: 'python3.10'
|
127
|
+
python_arch: 'x64'
|
128
|
+
tox_env: 'py310-nocov'
|
129
|
+
os: 'macos-latest'
|
130
|
+
- name: 'py311-cover (ubuntu)'
|
131
|
+
python: '3.11'
|
132
|
+
toxpython: 'python3.11'
|
133
|
+
python_arch: 'x64'
|
134
|
+
tox_env: 'py311-cover'
|
135
|
+
os: 'ubuntu-latest'
|
136
|
+
- name: 'py311-cover (windows)'
|
137
|
+
python: '3.11'
|
138
|
+
toxpython: 'python3.11'
|
139
|
+
python_arch: 'x64'
|
140
|
+
tox_env: 'py311-cover'
|
141
|
+
os: 'windows-latest'
|
142
|
+
- name: 'py311-cover (macos)'
|
143
|
+
python: '3.11'
|
144
|
+
toxpython: 'python3.11'
|
145
|
+
python_arch: 'x64'
|
146
|
+
tox_env: 'py311-cover'
|
147
|
+
os: 'macos-latest'
|
148
|
+
- name: 'py311-nocov (ubuntu)'
|
149
|
+
python: '3.11'
|
150
|
+
toxpython: 'python3.11'
|
151
|
+
python_arch: 'x64'
|
152
|
+
tox_env: 'py311-nocov'
|
153
|
+
os: 'ubuntu-latest'
|
154
|
+
- name: 'py311-nocov (windows)'
|
155
|
+
python: '3.11'
|
156
|
+
toxpython: 'python3.11'
|
157
|
+
python_arch: 'x64'
|
158
|
+
tox_env: 'py311-nocov'
|
159
|
+
os: 'windows-latest'
|
160
|
+
- name: 'py311-nocov (macos)'
|
161
|
+
python: '3.11'
|
162
|
+
toxpython: 'python3.11'
|
163
|
+
python_arch: 'x64'
|
164
|
+
tox_env: 'py311-nocov'
|
165
|
+
os: 'macos-latest'
|
166
|
+
- name: 'py312-cover (ubuntu)'
|
167
|
+
python: '3.12'
|
168
|
+
toxpython: 'python3.12'
|
169
|
+
python_arch: 'x64'
|
170
|
+
tox_env: 'py312-cover'
|
171
|
+
os: 'ubuntu-latest'
|
172
|
+
- name: 'py312-cover (windows)'
|
173
|
+
python: '3.12'
|
174
|
+
toxpython: 'python3.12'
|
175
|
+
python_arch: 'x64'
|
176
|
+
tox_env: 'py312-cover'
|
177
|
+
os: 'windows-latest'
|
178
|
+
- name: 'py312-cover (macos)'
|
179
|
+
python: '3.12'
|
180
|
+
toxpython: 'python3.12'
|
181
|
+
python_arch: 'x64'
|
182
|
+
tox_env: 'py312-cover'
|
183
|
+
os: 'macos-latest'
|
184
|
+
- name: 'py312-nocov (ubuntu)'
|
185
|
+
python: '3.12'
|
186
|
+
toxpython: 'python3.12'
|
187
|
+
python_arch: 'x64'
|
188
|
+
tox_env: 'py312-nocov'
|
189
|
+
os: 'ubuntu-latest'
|
190
|
+
- name: 'py312-nocov (windows)'
|
191
|
+
python: '3.12'
|
192
|
+
toxpython: 'python3.12'
|
193
|
+
python_arch: 'x64'
|
194
|
+
tox_env: 'py312-nocov'
|
195
|
+
os: 'windows-latest'
|
196
|
+
- name: 'py312-nocov (macos)'
|
197
|
+
python: '3.12'
|
198
|
+
toxpython: 'python3.12'
|
199
|
+
python_arch: 'x64'
|
200
|
+
tox_env: 'py312-nocov'
|
201
|
+
os: 'macos-latest'
|
202
|
+
- name: 'pypy38-cover (ubuntu)'
|
203
|
+
python: 'pypy-3.8'
|
204
|
+
toxpython: 'pypy3.8'
|
205
|
+
python_arch: 'x64'
|
206
|
+
tox_env: 'pypy38-cover'
|
207
|
+
os: 'ubuntu-latest'
|
208
|
+
- name: 'pypy38-cover (windows)'
|
209
|
+
python: 'pypy-3.8'
|
210
|
+
toxpython: 'pypy3.8'
|
211
|
+
python_arch: 'x64'
|
212
|
+
tox_env: 'pypy38-cover'
|
213
|
+
os: 'windows-latest'
|
214
|
+
- name: 'pypy38-cover (macos)'
|
215
|
+
python: 'pypy-3.8'
|
216
|
+
toxpython: 'pypy3.8'
|
217
|
+
python_arch: 'x64'
|
218
|
+
tox_env: 'pypy38-cover'
|
219
|
+
os: 'macos-latest'
|
220
|
+
- name: 'pypy38-nocov (ubuntu)'
|
221
|
+
python: 'pypy-3.8'
|
222
|
+
toxpython: 'pypy3.8'
|
223
|
+
python_arch: 'x64'
|
224
|
+
tox_env: 'pypy38-nocov'
|
225
|
+
os: 'ubuntu-latest'
|
226
|
+
- name: 'pypy38-nocov (windows)'
|
227
|
+
python: 'pypy-3.8'
|
228
|
+
toxpython: 'pypy3.8'
|
229
|
+
python_arch: 'x64'
|
230
|
+
tox_env: 'pypy38-nocov'
|
231
|
+
os: 'windows-latest'
|
232
|
+
- name: 'pypy38-nocov (macos)'
|
233
|
+
python: 'pypy-3.8'
|
234
|
+
toxpython: 'pypy3.8'
|
235
|
+
python_arch: 'x64'
|
236
|
+
tox_env: 'pypy38-nocov'
|
237
|
+
os: 'macos-latest'
|
238
|
+
- name: 'pypy39-cover (ubuntu)'
|
239
|
+
python: 'pypy-3.9'
|
240
|
+
toxpython: 'pypy3.9'
|
241
|
+
python_arch: 'x64'
|
242
|
+
tox_env: 'pypy39-cover'
|
243
|
+
os: 'ubuntu-latest'
|
244
|
+
- name: 'pypy39-cover (windows)'
|
245
|
+
python: 'pypy-3.9'
|
246
|
+
toxpython: 'pypy3.9'
|
247
|
+
python_arch: 'x64'
|
248
|
+
tox_env: 'pypy39-cover'
|
249
|
+
os: 'windows-latest'
|
250
|
+
- name: 'pypy39-cover (macos)'
|
251
|
+
python: 'pypy-3.9'
|
252
|
+
toxpython: 'pypy3.9'
|
253
|
+
python_arch: 'x64'
|
254
|
+
tox_env: 'pypy39-cover'
|
255
|
+
os: 'macos-latest'
|
256
|
+
- name: 'pypy39-nocov (ubuntu)'
|
257
|
+
python: 'pypy-3.9'
|
258
|
+
toxpython: 'pypy3.9'
|
259
|
+
python_arch: 'x64'
|
260
|
+
tox_env: 'pypy39-nocov'
|
261
|
+
os: 'ubuntu-latest'
|
262
|
+
- name: 'pypy39-nocov (windows)'
|
263
|
+
python: 'pypy-3.9'
|
264
|
+
toxpython: 'pypy3.9'
|
265
|
+
python_arch: 'x64'
|
266
|
+
tox_env: 'pypy39-nocov'
|
267
|
+
os: 'windows-latest'
|
268
|
+
- name: 'pypy39-nocov (macos)'
|
269
|
+
python: 'pypy-3.9'
|
270
|
+
toxpython: 'pypy3.9'
|
271
|
+
python_arch: 'x64'
|
272
|
+
tox_env: 'pypy39-nocov'
|
273
|
+
os: 'macos-latest'
|
274
|
+
- name: 'pypy310-cover (ubuntu)'
|
275
|
+
python: 'pypy-3.10'
|
276
|
+
toxpython: 'pypy3.10'
|
277
|
+
python_arch: 'x64'
|
278
|
+
tox_env: 'pypy310-cover'
|
279
|
+
os: 'ubuntu-latest'
|
280
|
+
- name: 'pypy310-cover (windows)'
|
281
|
+
python: 'pypy-3.10'
|
282
|
+
toxpython: 'pypy3.10'
|
283
|
+
python_arch: 'x64'
|
284
|
+
tox_env: 'pypy310-cover'
|
285
|
+
os: 'windows-latest'
|
286
|
+
- name: 'pypy310-cover (macos)'
|
287
|
+
python: 'pypy-3.10'
|
288
|
+
toxpython: 'pypy3.10'
|
289
|
+
python_arch: 'x64'
|
290
|
+
tox_env: 'pypy310-cover'
|
291
|
+
os: 'macos-latest'
|
292
|
+
- name: 'pypy310-nocov (ubuntu)'
|
293
|
+
python: 'pypy-3.10'
|
294
|
+
toxpython: 'pypy3.10'
|
295
|
+
python_arch: 'x64'
|
296
|
+
tox_env: 'pypy310-nocov'
|
297
|
+
os: 'ubuntu-latest'
|
298
|
+
- name: 'pypy310-nocov (windows)'
|
299
|
+
python: 'pypy-3.10'
|
300
|
+
toxpython: 'pypy3.10'
|
301
|
+
python_arch: 'x64'
|
302
|
+
tox_env: 'pypy310-nocov'
|
303
|
+
os: 'windows-latest'
|
304
|
+
- name: 'pypy310-nocov (macos)'
|
305
|
+
python: 'pypy-3.10'
|
306
|
+
toxpython: 'pypy3.10'
|
307
|
+
python_arch: 'x64'
|
308
|
+
tox_env: 'pypy310-nocov'
|
309
|
+
os: 'macos-latest'
|
310
|
+
steps:
|
311
|
+
- uses: actions/checkout@v4
|
312
|
+
with:
|
313
|
+
fetch-depth: 0
|
314
|
+
- uses: actions/setup-python@v5
|
315
|
+
with:
|
316
|
+
python-version: ${{ matrix.python }}
|
317
|
+
architecture: ${{ matrix.python_arch }}
|
318
|
+
- name: install dependencies
|
319
|
+
run: |
|
320
|
+
python -mpip install --progress-bar=off -r ci/requirements.txt
|
321
|
+
virtualenv --version
|
322
|
+
pip --version
|
323
|
+
tox --version
|
324
|
+
pip list --format=freeze
|
325
|
+
- name: test
|
326
|
+
env:
|
327
|
+
TOXPYTHON: '${{ matrix.toxpython }}'
|
328
|
+
run: >
|
329
|
+
tox -e ${{ matrix.tox_env }} -v
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# To install the git pre-commit hooks run:
|
2
|
+
# pre-commit install --install-hooks
|
3
|
+
# To update the versions:
|
4
|
+
# pre-commit autoupdate
|
5
|
+
exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg)(/|$)'
|
6
|
+
# Note the order is intentional to avoid multiple passes of the hooks
|
7
|
+
repos:
|
8
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
9
|
+
rev: v0.1.14
|
10
|
+
hooks:
|
11
|
+
- id: ruff
|
12
|
+
args: [--fix, --exit-non-zero-on-fix, --show-fixes]
|
13
|
+
- repo: https://github.com/psf/black
|
14
|
+
rev: 23.12.1
|
15
|
+
hooks:
|
16
|
+
- id: black
|
17
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
18
|
+
rev: v4.5.0
|
19
|
+
hooks:
|
20
|
+
- id: trailing-whitespace
|
21
|
+
- id: end-of-file-fixer
|
22
|
+
- id: debug-statements
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
2
|
+
version: 2
|
3
|
+
sphinx:
|
4
|
+
configuration: docs/conf.py
|
5
|
+
formats: all
|
6
|
+
build:
|
7
|
+
os: ubuntu-22.04
|
8
|
+
tools:
|
9
|
+
python: "3"
|
10
|
+
python:
|
11
|
+
install:
|
12
|
+
- requirements: docs/requirements.txt
|
13
|
+
- method: pip
|
14
|
+
path: .
|
@@ -0,0 +1,85 @@
|
|
1
|
+
============
|
2
|
+
Contributing
|
3
|
+
============
|
4
|
+
|
5
|
+
Contributions are welcome, and they are greatly appreciated! Every
|
6
|
+
little bit helps, and credit will always be given.
|
7
|
+
|
8
|
+
Bug reports
|
9
|
+
===========
|
10
|
+
|
11
|
+
When `reporting a bug <https://github.com/AltimateAI/datapilot/issues>`_ please include:
|
12
|
+
|
13
|
+
* Your operating system name and version.
|
14
|
+
* Any details about your local setup that might be helpful in troubleshooting.
|
15
|
+
* Detailed steps to reproduce the bug.
|
16
|
+
|
17
|
+
Documentation improvements
|
18
|
+
==========================
|
19
|
+
|
20
|
+
datapilot could always use more documentation, whether as part of the
|
21
|
+
official datapilot docs, in docstrings, or even on the web in blog posts,
|
22
|
+
articles, and such.
|
23
|
+
|
24
|
+
Feature requests and feedback
|
25
|
+
=============================
|
26
|
+
|
27
|
+
The best way to send feedback is to file an issue at https://github.com/AltimateAI/datapilot/issues.
|
28
|
+
|
29
|
+
If you are proposing a feature:
|
30
|
+
|
31
|
+
* Explain in detail how it would work.
|
32
|
+
* Keep the scope as narrow as possible, to make it easier to implement.
|
33
|
+
* Remember that this is a volunteer-driven project, and that code contributions are welcome :)
|
34
|
+
|
35
|
+
Development
|
36
|
+
===========
|
37
|
+
|
38
|
+
To set up `datapilot` for local development:
|
39
|
+
|
40
|
+
1. Fork `datapilot <https://github.com/AltimateAI/datapilot>`_
|
41
|
+
(look for the "Fork" button).
|
42
|
+
2. Clone your fork locally::
|
43
|
+
|
44
|
+
git clone git@github.com:YOURGITHUBNAME/datapilot.git
|
45
|
+
|
46
|
+
3. Create a branch for local development::
|
47
|
+
|
48
|
+
git checkout -b name-of-your-bugfix-or-feature
|
49
|
+
|
50
|
+
Now you can make your changes locally.
|
51
|
+
|
52
|
+
4. When you're done making changes run all the checks and docs builder with one command::
|
53
|
+
|
54
|
+
tox
|
55
|
+
|
56
|
+
5. Commit your changes and push your branch to GitHub::
|
57
|
+
|
58
|
+
git add .
|
59
|
+
git commit -m "Your detailed description of your changes."
|
60
|
+
git push origin name-of-your-bugfix-or-feature
|
61
|
+
|
62
|
+
6. Submit a pull request through the GitHub website.
|
63
|
+
|
64
|
+
Pull Request Guidelines
|
65
|
+
-----------------------
|
66
|
+
|
67
|
+
If you need some code review or feedback while you're developing the code just make the pull request.
|
68
|
+
|
69
|
+
For merging, you should:
|
70
|
+
|
71
|
+
1. Include passing tests (run ``tox``).
|
72
|
+
2. Update documentation when there's new API, functionality etc.
|
73
|
+
3. Add a note to ``CHANGELOG.rst`` about the changes.
|
74
|
+
4. Add yourself to ``AUTHORS.rst``.
|
75
|
+
|
76
|
+
Tips
|
77
|
+
----
|
78
|
+
|
79
|
+
To run a subset of tests::
|
80
|
+
|
81
|
+
tox -e envname -- pytest -k test_myfeature
|
82
|
+
|
83
|
+
To run all the test environments in *parallel*::
|
84
|
+
|
85
|
+
tox -p auto
|
@@ -0,0 +1,9 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2024, Anand Gupta
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
6
|
+
|
7
|
+
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
|
8
|
+
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,25 @@
|
|
1
|
+
graft docs
|
2
|
+
graft src
|
3
|
+
graft ci
|
4
|
+
graft tests
|
5
|
+
|
6
|
+
include .bumpversion.cfg
|
7
|
+
include .cookiecutterrc
|
8
|
+
include .coveragerc
|
9
|
+
include .editorconfig
|
10
|
+
include .github/workflows/github-actions.yml
|
11
|
+
include .pre-commit-config.yaml
|
12
|
+
include .pre-commit-hooks.yaml
|
13
|
+
include .readthedocs.yml
|
14
|
+
include pytest.ini
|
15
|
+
include tox.ini
|
16
|
+
|
17
|
+
include AUTHORS.rst
|
18
|
+
include CHANGELOG.rst
|
19
|
+
include CONTRIBUTING.rst
|
20
|
+
include LICENSE
|
21
|
+
include README.rst
|
22
|
+
include README.md
|
23
|
+
exclude release.sh
|
24
|
+
|
25
|
+
global-exclude *.py[cod] __pycache__/* *.so *.dylib
|