autodq 0.1.0__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 (238) hide show
  1. autodq-0.1.0/.github/workflows/publish-pypi.yml +71 -0
  2. autodq-0.1.0/.github/workflows/publish-testpypi.yml +59 -0
  3. autodq-0.1.0/.github/workflows/tests.yml +49 -0
  4. autodq-0.1.0/CHANGELOG.md +28 -0
  5. autodq-0.1.0/LICENSE +21 -0
  6. autodq-0.1.0/MANIFEST.in +16 -0
  7. autodq-0.1.0/PKG-INFO +267 -0
  8. autodq-0.1.0/README.md +224 -0
  9. autodq-0.1.0/docs/ADQL_SPEC.md +418 -0
  10. autodq-0.1.0/docs/API_REFERENCE.md +98 -0
  11. autodq-0.1.0/docs/ARCHITECTURE.md +23 -0
  12. autodq-0.1.0/docs/DECISION_LOG.md +14 -0
  13. autodq-0.1.0/docs/PLUGIN_GUIDE.md +0 -0
  14. autodq-0.1.0/docs/RELEASE_NOTES_0.1.0.md +39 -0
  15. autodq-0.1.0/docs/RELEASING.md +164 -0
  16. autodq-0.1.0/docs/RESEARCH_NOTES.md +23 -0
  17. autodq-0.1.0/docs/ROADMAP.md +45 -0
  18. autodq-0.1.0/examples/adql_demo.py +40 -0
  19. autodq-0.1.0/examples/dashboard_generator_demo.py +26 -0
  20. autodq-0.1.0/examples/interactive_cleaning_review_demo.py +80 -0
  21. autodq-0.1.0/examples/model_persistence_demo.py +69 -0
  22. autodq-0.1.0/examples/prediction_uncertainty_demo.py +52 -0
  23. autodq-0.1.0/examples/project_auto_demo.py +51 -0
  24. autodq-0.1.0/examples/rich_notebook_visualizations.py +70 -0
  25. autodq-0.1.0/examples/sales_analysis.adql +179 -0
  26. autodq-0.1.0/examples/sales_auto.adql +29 -0
  27. autodq-0.1.0/examples/shap_plots_demo.py +93 -0
  28. autodq-0.1.0/examples/workspace_demo.py +70 -0
  29. autodq-0.1.0/pyproject.toml +84 -0
  30. autodq-0.1.0/requirements-dev.txt +1 -0
  31. autodq-0.1.0/requirements.txt +1 -0
  32. autodq-0.1.0/scripts/check_distribution.py +203 -0
  33. autodq-0.1.0/setup.cfg +4 -0
  34. autodq-0.1.0/src/autodq/__init__.py +80 -0
  35. autodq-0.1.0/src/autodq/__main__.py +5 -0
  36. autodq-0.1.0/src/autodq/_version.py +3 -0
  37. autodq-0.1.0/src/autodq/analysis/topic_suggester.py +0 -0
  38. autodq-0.1.0/src/autodq/auto/__init__.py +15 -0
  39. autodq-0.1.0/src/autodq/auto/engine.py +628 -0
  40. autodq-0.1.0/src/autodq/auto/models.py +294 -0
  41. autodq-0.1.0/src/autodq/auto/notebook_renderer.py +90 -0
  42. autodq-0.1.0/src/autodq/blue/__init__.py +0 -0
  43. autodq-0.1.0/src/autodq/blue/engine.py +1307 -0
  44. autodq-0.1.0/src/autodq/blue/models.py +138 -0
  45. autodq-0.1.0/src/autodq/blue/prescriptions.py +262 -0
  46. autodq-0.1.0/src/autodq/blue/visual_interpreter.py +443 -0
  47. autodq-0.1.0/src/autodq/blue/visualizer.py +267 -0
  48. autodq-0.1.0/src/autodq/cleaning/__init__.py +0 -0
  49. autodq-0.1.0/src/autodq/cleaning/engine.py +117 -0
  50. autodq-0.1.0/src/autodq/cli.py +1575 -0
  51. autodq-0.1.0/src/autodq/commands/__init__.py +43 -0
  52. autodq-0.1.0/src/autodq/commands/cells.py +121 -0
  53. autodq-0.1.0/src/autodq/commands/errors.py +23 -0
  54. autodq-0.1.0/src/autodq/commands/executor.py +1061 -0
  55. autodq-0.1.0/src/autodq/commands/grammar.py +356 -0
  56. autodq-0.1.0/src/autodq/commands/models.py +421 -0
  57. autodq-0.1.0/src/autodq/commands/parser.py +1434 -0
  58. autodq-0.1.0/src/autodq/commands/runner.py +305 -0
  59. autodq-0.1.0/src/autodq/commands/validator.py +297 -0
  60. autodq-0.1.0/src/autodq/core/config.py +0 -0
  61. autodq-0.1.0/src/autodq/core/project.py +2781 -0
  62. autodq-0.1.0/src/autodq/core/session.py +126 -0
  63. autodq-0.1.0/src/autodq/core/state.py +79 -0
  64. autodq-0.1.0/src/autodq/core/types.py +0 -0
  65. autodq-0.1.0/src/autodq/correlation/__init__.py +0 -0
  66. autodq-0.1.0/src/autodq/correlation/engine.py +296 -0
  67. autodq-0.1.0/src/autodq/correlation/models.py +84 -0
  68. autodq-0.1.0/src/autodq/dashboard/__init__.py +6 -0
  69. autodq-0.1.0/src/autodq/dashboard/engine.py +457 -0
  70. autodq-0.1.0/src/autodq/dashboard/html_renderer.py +634 -0
  71. autodq-0.1.0/src/autodq/dashboard/models.py +242 -0
  72. autodq-0.1.0/src/autodq/datasets/__init__.py +0 -0
  73. autodq-0.1.0/src/autodq/datasets/manager.py +137 -0
  74. autodq-0.1.0/src/autodq/datasets/merger.py +363 -0
  75. autodq-0.1.0/src/autodq/datasets/models.py +99 -0
  76. autodq-0.1.0/src/autodq/decision/__init__.py +0 -0
  77. autodq-0.1.0/src/autodq/decision/engine.py +72 -0
  78. autodq-0.1.0/src/autodq/diagnosis/__init__.py +0 -0
  79. autodq-0.1.0/src/autodq/diagnosis/cardinality.py +0 -0
  80. autodq-0.1.0/src/autodq/diagnosis/constants.py +0 -0
  81. autodq-0.1.0/src/autodq/diagnosis/datatypes.py +0 -0
  82. autodq-0.1.0/src/autodq/diagnosis/duplicates.py +38 -0
  83. autodq-0.1.0/src/autodq/diagnosis/engine.py +160 -0
  84. autodq-0.1.0/src/autodq/diagnosis/leakage.py +0 -0
  85. autodq-0.1.0/src/autodq/diagnosis/missingness.py +51 -0
  86. autodq-0.1.0/src/autodq/diagnosis/outliers.py +67 -0
  87. autodq-0.1.0/src/autodq/diagnosis/quality_score.py +0 -0
  88. autodq-0.1.0/src/autodq/diagnosis/recommendations.py +0 -0
  89. autodq-0.1.0/src/autodq/diagnosis/skewness.py +0 -0
  90. autodq-0.1.0/src/autodq/explainability/__init__.py +0 -0
  91. autodq-0.1.0/src/autodq/explainability/engine.py +826 -0
  92. autodq-0.1.0/src/autodq/explainability/models.py +140 -0
  93. autodq-0.1.0/src/autodq/explainability/shap_visualizer.py +244 -0
  94. autodq-0.1.0/src/autodq/features/__init__.py +0 -0
  95. autodq-0.1.0/src/autodq/features/engine.py +584 -0
  96. autodq-0.1.0/src/autodq/features/models.py +46 -0
  97. autodq-0.1.0/src/autodq/interpretation/__init__.py +0 -0
  98. autodq-0.1.0/src/autodq/interpretation/engine.py +32 -0
  99. autodq-0.1.0/src/autodq/interpretation/models.py +41 -0
  100. autodq-0.1.0/src/autodq/interpretation/statistics.py +169 -0
  101. autodq-0.1.0/src/autodq/io/loaders.py +46 -0
  102. autodq-0.1.0/src/autodq/knowledge/__init__.py +0 -0
  103. autodq-0.1.0/src/autodq/knowledge/engine.py +29 -0
  104. autodq-0.1.0/src/autodq/knowledge/library.py +83 -0
  105. autodq-0.1.0/src/autodq/knowledge/rules.py +28 -0
  106. autodq-0.1.0/src/autodq/ml/__init__.py +0 -0
  107. autodq-0.1.0/src/autodq/ml/engine.py +361 -0
  108. autodq-0.1.0/src/autodq/ml/evaluator.py +147 -0
  109. autodq-0.1.0/src/autodq/ml/model_selector.py +62 -0
  110. autodq-0.1.0/src/autodq/ml/models.py +134 -0
  111. autodq-0.1.0/src/autodq/ml/preprocessing.py +58 -0
  112. autodq-0.1.0/src/autodq/ml/trainer.py +58 -0
  113. autodq-0.1.0/src/autodq/ml_readiness/__init__.py +0 -0
  114. autodq-0.1.0/src/autodq/ml_readiness/engine.py +274 -0
  115. autodq-0.1.0/src/autodq/ml_readiness/models.py +49 -0
  116. autodq-0.1.0/src/autodq/modeling/evaluator.py +0 -0
  117. autodq-0.1.0/src/autodq/modeling/task_detector.py +0 -0
  118. autodq-0.1.0/src/autodq/models/__init__.py +0 -0
  119. autodq-0.1.0/src/autodq/models/cleaning.py +48 -0
  120. autodq-0.1.0/src/autodq/models/issues.py +21 -0
  121. autodq-0.1.0/src/autodq/models/preview.py +33 -0
  122. autodq-0.1.0/src/autodq/models/recommendations.py +25 -0
  123. autodq-0.1.0/src/autodq/models/report.py +37 -0
  124. autodq-0.1.0/src/autodq/models/reports.py +58 -0
  125. autodq-0.1.0/src/autodq/models/validation.py +51 -0
  126. autodq-0.1.0/src/autodq/models/visuals.py +23 -0
  127. autodq-0.1.0/src/autodq/persistence/__init__.py +8 -0
  128. autodq-0.1.0/src/autodq/persistence/engine.py +400 -0
  129. autodq-0.1.0/src/autodq/persistence/models.py +101 -0
  130. autodq-0.1.0/src/autodq/plugins/__init__.py +0 -0
  131. autodq-0.1.0/src/autodq/plugins/manager.py +30 -0
  132. autodq-0.1.0/src/autodq/plugins/types.py +9 -0
  133. autodq-0.1.0/src/autodq/prediction/__init__.py +0 -0
  134. autodq-0.1.0/src/autodq/prediction/engine.py +552 -0
  135. autodq-0.1.0/src/autodq/prediction/models.py +105 -0
  136. autodq-0.1.0/src/autodq/preview/__init__.py +0 -0
  137. autodq-0.1.0/src/autodq/preview/engine.py +97 -0
  138. autodq-0.1.0/src/autodq/profiling/profiler.py +26 -0
  139. autodq-0.1.0/src/autodq/profiling/summaries.py +0 -0
  140. autodq-0.1.0/src/autodq/recommendations/__init__.py +0 -0
  141. autodq-0.1.0/src/autodq/recommendations/engine.py +282 -0
  142. autodq-0.1.0/src/autodq/recommendations/rules.py +0 -0
  143. autodq-0.1.0/src/autodq/renderers/__init__.py +0 -0
  144. autodq-0.1.0/src/autodq/renderers/console/__init__.py +0 -0
  145. autodq-0.1.0/src/autodq/renderers/console/blue.py +81 -0
  146. autodq-0.1.0/src/autodq/renderers/console/cleaning.py +21 -0
  147. autodq-0.1.0/src/autodq/renderers/console/correlation.py +36 -0
  148. autodq-0.1.0/src/autodq/renderers/console/datasets.py +66 -0
  149. autodq-0.1.0/src/autodq/renderers/console/diagnosis.py +27 -0
  150. autodq-0.1.0/src/autodq/renderers/console/features.py +20 -0
  151. autodq-0.1.0/src/autodq/renderers/console/interpretation.py +30 -0
  152. autodq-0.1.0/src/autodq/renderers/console/ml_readiness.py +30 -0
  153. autodq-0.1.0/src/autodq/renderers/console/model.py +64 -0
  154. autodq-0.1.0/src/autodq/renderers/console/prediction.py +190 -0
  155. autodq-0.1.0/src/autodq/renderers/console/preview.py +49 -0
  156. autodq-0.1.0/src/autodq/renderers/console/profile.py +25 -0
  157. autodq-0.1.0/src/autodq/renderers/console/recommendations.py +24 -0
  158. autodq-0.1.0/src/autodq/renderers/console/statistics.py +25 -0
  159. autodq-0.1.0/src/autodq/renderers/console/validation.py +23 -0
  160. autodq-0.1.0/src/autodq/renderers/console/visualization.py +21 -0
  161. autodq-0.1.0/src/autodq/reporting/__init__.py +0 -0
  162. autodq-0.1.0/src/autodq/reporting/engine.py +78 -0
  163. autodq-0.1.0/src/autodq/reporting/html_exporter.py +2374 -0
  164. autodq-0.1.0/src/autodq/reporting/html_report.py +0 -0
  165. autodq-0.1.0/src/autodq/reporting/json_exporter.py +103 -0
  166. autodq-0.1.0/src/autodq/reporting/markdown_report.py +0 -0
  167. autodq-0.1.0/src/autodq/review/__init__.py +25 -0
  168. autodq-0.1.0/src/autodq/review/engine.py +1014 -0
  169. autodq-0.1.0/src/autodq/review/models.py +456 -0
  170. autodq-0.1.0/src/autodq/review/notebook_renderer.py +239 -0
  171. autodq-0.1.0/src/autodq/semantics/__init__.py +0 -0
  172. autodq-0.1.0/src/autodq/semantics/base.py +17 -0
  173. autodq-0.1.0/src/autodq/semantics/detectors/__init__.py +0 -0
  174. autodq-0.1.0/src/autodq/semantics/detectors/categorical.py +42 -0
  175. autodq-0.1.0/src/autodq/semantics/detectors/datetime.py +46 -0
  176. autodq-0.1.0/src/autodq/semantics/detectors/identifier.py +33 -0
  177. autodq-0.1.0/src/autodq/semantics/detectors/numeric.py +60 -0
  178. autodq-0.1.0/src/autodq/semantics/engine.py +70 -0
  179. autodq-0.1.0/src/autodq/semantics/inference.py +3 -0
  180. autodq-0.1.0/src/autodq/semantics/prediction.py +17 -0
  181. autodq-0.1.0/src/autodq/semantics/registry.py +29 -0
  182. autodq-0.1.0/src/autodq/statistics/__init__.py +0 -0
  183. autodq-0.1.0/src/autodq/statistics/assumptions.py +0 -0
  184. autodq-0.1.0/src/autodq/statistics/correlation.py +0 -0
  185. autodq-0.1.0/src/autodq/statistics/descriptive.py +78 -0
  186. autodq-0.1.0/src/autodq/statistics/distribution.py +120 -0
  187. autodq-0.1.0/src/autodq/statistics/engine.py +34 -0
  188. autodq-0.1.0/src/autodq/statistics/models.py +122 -0
  189. autodq-0.1.0/src/autodq/statistics/report.py +0 -0
  190. autodq-0.1.0/src/autodq/statistics/summary.py +0 -0
  191. autodq-0.1.0/src/autodq/uncertainty/__init__.py +4 -0
  192. autodq-0.1.0/src/autodq/uncertainty/engine.py +244 -0
  193. autodq-0.1.0/src/autodq/uncertainty/models.py +67 -0
  194. autodq-0.1.0/src/autodq/utils/__init__.py +0 -0
  195. autodq-0.1.0/src/autodq/utils/helpers.py +21 -0
  196. autodq-0.1.0/src/autodq/utils/ml_formatting.py +36 -0
  197. autodq-0.1.0/src/autodq/validation/__init__.py +0 -0
  198. autodq-0.1.0/src/autodq/validation/engine.py +43 -0
  199. autodq-0.1.0/src/autodq/visualization/__init__.py +13 -0
  200. autodq-0.1.0/src/autodq/visualization/charts.py +0 -0
  201. autodq-0.1.0/src/autodq/visualization/engine.py +458 -0
  202. autodq-0.1.0/src/autodq/visualization/gallery.py +132 -0
  203. autodq-0.1.0/src/autodq/visualization/models.py +345 -0
  204. autodq-0.1.0/src/autodq/visualization/notebook_renderer.py +232 -0
  205. autodq-0.1.0/src/autodq/visualization/recommender.py +0 -0
  206. autodq-0.1.0/src/autodq/visualization/renderers/__init__.py +5 -0
  207. autodq-0.1.0/src/autodq/visualization/renderers/matplotlib_renderer.py +723 -0
  208. autodq-0.1.0/src/autodq/visualization/tweaks.py +0 -0
  209. autodq-0.1.0/src/autodq/vscode/__init__.py +45 -0
  210. autodq-0.1.0/src/autodq/vscode/extension/README.md +33 -0
  211. autodq-0.1.0/src/autodq/vscode/extension/extension.js +373 -0
  212. autodq-0.1.0/src/autodq/vscode/extension/icons/adql-dark.svg +4 -0
  213. autodq-0.1.0/src/autodq/vscode/extension/icons/adql-light.svg +4 -0
  214. autodq-0.1.0/src/autodq/vscode/extension/language-configuration.json +27 -0
  215. autodq-0.1.0/src/autodq/vscode/extension/package.json +108 -0
  216. autodq-0.1.0/src/autodq/vscode/extension/syntaxes/adql.tmLanguage.json +59 -0
  217. autodq-0.1.0/src/autodq/workspaces/__init__.py +15 -0
  218. autodq-0.1.0/src/autodq/workspaces/manager.py +497 -0
  219. autodq-0.1.0/src/autodq/workspaces/models.py +265 -0
  220. autodq-0.1.0/src/autodq.egg-info/PKG-INFO +267 -0
  221. autodq-0.1.0/src/autodq.egg-info/SOURCES.txt +236 -0
  222. autodq-0.1.0/src/autodq.egg-info/dependency_links.txt +1 -0
  223. autodq-0.1.0/src/autodq.egg-info/entry_points.txt +2 -0
  224. autodq-0.1.0/src/autodq.egg-info/requires.txt +17 -0
  225. autodq-0.1.0/src/autodq.egg-info/top_level.txt +1 -0
  226. autodq-0.1.0/tests/test_adql_files_cli.py +656 -0
  227. autodq-0.1.0/tests/test_cleaning_review.py +353 -0
  228. autodq-0.1.0/tests/test_commands.py +584 -0
  229. autodq-0.1.0/tests/test_dashboard_generator.py +358 -0
  230. autodq-0.1.0/tests/test_loader.py +0 -0
  231. autodq-0.1.0/tests/test_model_persistence.py +232 -0
  232. autodq-0.1.0/tests/test_packaging.py +174 -0
  233. autodq-0.1.0/tests/test_prediction_uncertainty.py +265 -0
  234. autodq-0.1.0/tests/test_profiler.py +0 -0
  235. autodq-0.1.0/tests/test_project_auto.py +313 -0
  236. autodq-0.1.0/tests/test_rich_visualizations.py +265 -0
  237. autodq-0.1.0/tests/test_shap_plots.py +287 -0
  238. autodq-0.1.0/tests/test_workspaces.py +234 -0
@@ -0,0 +1,71 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: Version to verify and publish
8
+ required: true
9
+ default: "0.1.0"
10
+ type: string
11
+
12
+ jobs:
13
+ build:
14
+ name: Verify and build AutoDQ ${{ inputs.version }}
15
+ runs-on: ubuntu-latest
16
+ permissions:
17
+ contents: read
18
+ env:
19
+ EXPECTED_VERSION: ${{ inputs.version }}
20
+
21
+ steps:
22
+ - uses: actions/checkout@v6
23
+ - uses: actions/setup-python@v6
24
+ with:
25
+ python-version: "3.13"
26
+ cache: pip
27
+ - name: Install AutoDQ and release tools
28
+ run: python -m pip install -e ".[dev]"
29
+ - name: Verify requested version
30
+ run: >-
31
+ python -c "import os; from autodq import __version__;
32
+ expected = os.environ['EXPECTED_VERSION'];
33
+ assert __version__ == expected,
34
+ f'Expected {expected}, found {__version__}'"
35
+ - name: Run acceptance suite
36
+ run: |
37
+ python -m unittest discover -s tests
38
+ autodq --version
39
+ autodq validate examples/sales_analysis.adql
40
+ autodq validate examples/sales_auto.adql
41
+ - name: Build distributions
42
+ run: python -m build
43
+ - name: Inspect distributions
44
+ run: |
45
+ python -m twine check dist/*
46
+ python scripts/check_distribution.py dist
47
+ - name: Store verified distributions
48
+ uses: actions/upload-artifact@v7
49
+ with:
50
+ name: autodq-${{ inputs.version }}-distributions
51
+ path: dist/
52
+ if-no-files-found: error
53
+
54
+ publish:
55
+ name: Publish AutoDQ ${{ inputs.version }} to PyPI
56
+ needs: build
57
+ runs-on: ubuntu-latest
58
+ environment:
59
+ name: pypi
60
+ url: https://pypi.org/p/autodq
61
+ permissions:
62
+ id-token: write
63
+
64
+ steps:
65
+ - name: Download verified distributions
66
+ uses: actions/download-artifact@v8
67
+ with:
68
+ name: autodq-${{ inputs.version }}-distributions
69
+ path: dist/
70
+ - name: Publish distributions to PyPI
71
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,59 @@
1
+ name: Publish to TestPyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ build:
8
+ name: Build and verify distributions
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ contents: read
12
+
13
+ steps:
14
+ - uses: actions/checkout@v6
15
+ - uses: actions/setup-python@v6
16
+ with:
17
+ python-version: "3.13"
18
+ cache: pip
19
+ - name: Install AutoDQ and release tools
20
+ run: python -m pip install -e ".[dev]"
21
+ - name: Run acceptance suite
22
+ run: |
23
+ python -m unittest discover -s tests
24
+ autodq --version
25
+ autodq validate examples/sales_analysis.adql
26
+ autodq validate examples/sales_auto.adql
27
+ - name: Build distributions
28
+ run: python -m build
29
+ - name: Inspect distributions
30
+ run: |
31
+ python -m twine check dist/*
32
+ python scripts/check_distribution.py dist
33
+ - name: Store distributions
34
+ uses: actions/upload-artifact@v7
35
+ with:
36
+ name: python-package-distributions
37
+ path: dist/
38
+ if-no-files-found: error
39
+
40
+ publish:
41
+ name: Publish AutoDQ 0.1.0 to TestPyPI
42
+ needs: build
43
+ runs-on: ubuntu-latest
44
+ environment:
45
+ name: testpypi
46
+ url: https://test.pypi.org/p/autodq
47
+ permissions:
48
+ id-token: write
49
+
50
+ steps:
51
+ - name: Download distributions
52
+ uses: actions/download-artifact@v8
53
+ with:
54
+ name: python-package-distributions
55
+ path: dist/
56
+ - name: Publish distributions to TestPyPI
57
+ uses: pypa/gh-action-pypi-publish@release/v1
58
+ with:
59
+ repository-url: https://test.pypi.org/legacy/
@@ -0,0 +1,49 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ compatibility:
10
+ runs-on: ${{ matrix.os }}
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest, windows-latest]
15
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v6
19
+ - uses: actions/setup-python@v6
20
+ with:
21
+ python-version: ${{ matrix.python-version }}
22
+ cache: pip
23
+ - name: Install AutoDQ and release tools
24
+ run: python -m pip install -e ".[dev]"
25
+ - name: Run test suite
26
+ run: python -m unittest discover -s tests
27
+ - name: Verify command line and ADQL
28
+ run: |
29
+ autodq --version
30
+ autodq validate examples/sales_analysis.adql
31
+ autodq validate examples/sales_auto.adql
32
+
33
+ distribution:
34
+ runs-on: ubuntu-latest
35
+ needs: compatibility
36
+ steps:
37
+ - uses: actions/checkout@v6
38
+ - uses: actions/setup-python@v6
39
+ with:
40
+ python-version: "3.13"
41
+ cache: pip
42
+ - name: Install release tools
43
+ run: python -m pip install -e ".[dev]"
44
+ - name: Build distributions
45
+ run: python -m build
46
+ - name: Inspect distributions
47
+ run: |
48
+ python -m twine check dist/*
49
+ python scripts/check_distribution.py dist
@@ -0,0 +1,28 @@
1
+ # Changelog
2
+
3
+ All notable AutoDQ changes are recorded here. Versions follow semantic
4
+ versioning and Python package releases follow PEP 440.
5
+
6
+ ## 0.1.0 - 2026-07-22
7
+
8
+ Initial alpha release candidate.
9
+
10
+ ### Added
11
+
12
+ - End-to-end profiling, diagnosis, recommendations, interactive cleaning, and validation.
13
+ - Feature engineering, regression and classification, prediction uncertainty, SHAP explanations, and BLUE diagnostics.
14
+ - Reusable visualizations, galleries, reports, and standalone HTML dashboards.
15
+ - Multi-workspace projects, multi-dataset operations, and model persistence.
16
+ - `project.auto()` review, clean, and full workflow presets.
17
+ - ADQL as a standalone cell-based language with rich VS Code notebook output.
18
+ - ADQL `AUTO` support with full public workflow options and rich stage summaries.
19
+ - Command-line tools, bundled VS Code extension and `.adql` icons, wheel and source distributions.
20
+ - Automated compatibility matrix configured for Python 3.10–3.13 on Linux,
21
+ macOS, and Windows.
22
+ - Tokenless TestPyPI publishing workflow using GitHub Trusted Publishing.
23
+ - Protected, version-gated production PyPI Trusted Publishing workflow.
24
+
25
+ ### Release status
26
+
27
+ - Local wheel and source-distribution checks pass.
28
+ - TestPyPI and PyPI publication remain deliberate external release steps.
autodq-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Joseph Ubani
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,16 @@
1
+ include LICENSE
2
+ include CHANGELOG.md
3
+ include README.md
4
+ include pyproject.toml
5
+ include requirements.txt
6
+ include requirements-dev.txt
7
+
8
+ recursive-include docs *.md
9
+ recursive-include examples *.adql *.py
10
+ recursive-include .github *.yml
11
+ recursive-include scripts *.py
12
+ recursive-include tests *.py
13
+
14
+ global-exclude *.py[cod]
15
+ global-exclude __pycache__
16
+ global-exclude .DS_Store
autodq-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,267 @@
1
+ Metadata-Version: 2.4
2
+ Name: autodq
3
+ Version: 0.1.0
4
+ Summary: AutoDQ Analytics: Automated Data Quality, Cleaning, Visualization, and Reporting Framework
5
+ Author: Joseph Ubani
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/josephubani/autodq-analytics
8
+ Project-URL: Issues, https://github.com/josephubani/autodq-analytics/issues
9
+ Project-URL: Repository, https://github.com/josephubani/autodq-analytics.git
10
+ Keywords: analytics,data-cleaning,data-quality,data-science,machine-learning
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Education
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
24
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
+ Requires-Python: >=3.10
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: joblib>=1.3
29
+ Requires-Dist: matplotlib>=3.7
30
+ Requires-Dist: numpy>=1.24
31
+ Requires-Dist: openpyxl>=3.1
32
+ Requires-Dist: pandas>=2.0
33
+ Requires-Dist: scikit-learn>=1.3
34
+ Requires-Dist: scipy>=1.10
35
+ Requires-Dist: shap>=0.44
36
+ Requires-Dist: statsmodels>=0.14
37
+ Requires-Dist: xlrd>=2.0.1
38
+ Provides-Extra: dev
39
+ Requires-Dist: build>=1.2; extra == "dev"
40
+ Requires-Dist: tomli>=2.0; python_version < "3.11" and extra == "dev"
41
+ Requires-Dist: twine>=6.0; extra == "dev"
42
+ Dynamic: license-file
43
+
44
+ # AutoDQ Analytics
45
+
46
+ AutoDQ is an end-to-end analytics workflow framework for tabular data. It
47
+ profiles datasets, diagnoses quality problems, recommends and reviews cleaning
48
+ actions, engineers features, trains explainable models, generates
49
+ visualizations and dashboards, and runs complete workflows from Python,
50
+ Jupyter, the command line, or standalone `.adql` notebooks.
51
+
52
+ ## Highlights
53
+
54
+ - CSV, XLSX, and XLS dataset loading
55
+ - Dataset profiling, semantic inference, and quality scoring
56
+ - Missing-value, duplicate, outlier, datatype, and leakage diagnosis
57
+ - Knowledge-aware cleaning recommendations and approval workflows
58
+ - Manual row editing, domain validation, outlier treatment, and audit trails
59
+ - Descriptive statistics, distribution analysis, and correlations
60
+ - Feature engineering and ML-readiness analysis
61
+ - Regression and classification with prediction uncertainty
62
+ - SHAP explanations and publication-ready SHAP plots
63
+ - BLUE regression diagnostics, visual interpretation, and prescriptions
64
+ - Reusable visualization objects, galleries, HTML reports, and dashboards
65
+ - Multi-workspace project isolation and model persistence
66
+ - `project.auto()` for an automated workflow
67
+ - ADQL files with executable notebook cells and rich VS Code output
68
+
69
+ ## Requirements
70
+
71
+ - Python 3.10 or newer
72
+ - macOS, Linux, or Windows
73
+
74
+ ## Installation
75
+
76
+ Install the released package from PyPI:
77
+
78
+ ```bash
79
+ python -m pip install autodq
80
+ ```
81
+
82
+ Until the first PyPI release, install directly from the project source:
83
+
84
+ ```bash
85
+ git clone https://github.com/josephubani/autodq-analytics.git
86
+ cd autodq-analytics
87
+ python -m venv .venv
88
+ source .venv/bin/activate
89
+ python -m pip install .
90
+ ```
91
+
92
+ On Windows PowerShell, activate the environment with:
93
+
94
+ ```powershell
95
+ .venv\Scripts\Activate.ps1
96
+ ```
97
+
98
+ For editable development and release tools:
99
+
100
+ ```bash
101
+ python -m pip install -e ".[dev]"
102
+ ```
103
+
104
+ ## Python quick start
105
+
106
+ ```python
107
+ from autodq import AutoDQ
108
+
109
+ project = AutoDQ("datasets/sample/sales.csv", target="Revenue")
110
+
111
+ profile = project.profile()
112
+ diagnosis = project.diagnose()
113
+ recommendations = project.recommend()
114
+ review = project.review_cleaning()
115
+
116
+ review.approve_all()
117
+ project.clean()
118
+ validation = project.validate_cleaning()
119
+
120
+ chart = project.visualize(
121
+ chart="bar",
122
+ x="Region",
123
+ y="Revenue",
124
+ title="Revenue by Region",
125
+ x_label="Region",
126
+ y_label="Average revenue",
127
+ theme="journal",
128
+ )
129
+ chart.show()
130
+ ```
131
+
132
+ ## ADQL notebooks
133
+
134
+ ADQL is AutoDQ's standalone analytics language. A `.adql` file can contain
135
+ named executable cells and markdown cells, while retaining project state
136
+ between executions.
137
+
138
+ ```adql
139
+ # %% [Dataset]
140
+ DATASET "sales.csv" TARGET Revenue;
141
+
142
+ # %% [Data quality]
143
+ PROFILE;
144
+ DIAGNOSE;
145
+ RECOMMEND;
146
+
147
+ # %% [Regional analysis]
148
+ SELECT Region,
149
+ SUM(Revenue) AS total_revenue,
150
+ COUNT(*) AS transactions
151
+ FROM CURRENT
152
+ GROUP BY Region
153
+ ORDER BY total_revenue DESC;
154
+
155
+ # %% [Visualization]
156
+ VISUALIZE bar X Region Y Revenue
157
+ TITLE "Revenue by Region"
158
+ THEME journal;
159
+ ```
160
+
161
+ Run the same automatic workflow available as `project.auto()` directly from
162
+ an ADQL cell:
163
+
164
+ ```adql
165
+ # %% [Automatic workflow]
166
+ AUTO MODE full
167
+ VISUALIZE true
168
+ APPLY_FEATURES true
169
+ ALGORITHM random_forest_regressor
170
+ REPORT "reports/auto-report.html"
171
+ CONTINUE_ON_ERROR true;
172
+ ```
173
+
174
+ `review` mode analyzes data and prepares cleaning actions without applying
175
+ them. `clean` applies approved cleaning actions. `full` continues through
176
+ modeling, prediction, and explainability when a target is available. The ADQL
177
+ notebook renders the automatic stages, status, timing, and next actions as a
178
+ collapsible rich result.
179
+
180
+ Run the file from a terminal:
181
+
182
+ ```bash
183
+ autodq run analysis.adql
184
+ ```
185
+
186
+ Inspect or validate cells without executing the workflow:
187
+
188
+ ```bash
189
+ autodq cells analysis.adql
190
+ autodq validate analysis.adql
191
+ ```
192
+
193
+ Run through a particular cell:
194
+
195
+ ```bash
196
+ autodq run analysis.adql --through-cell 3
197
+ ```
198
+
199
+ ## VS Code support
200
+
201
+ The Python distribution bundles the AutoDQ ADQL extension. Install it with:
202
+
203
+ ```bash
204
+ autodq vscode install
205
+ ```
206
+
207
+ Reload VS Code after installation. `.adql` files then receive syntax
208
+ highlighting, named notebook cells, rich tables and charts, cell-by-cell
209
+ execution, and an AutoDQ file icon.
210
+
211
+ ## Command-line interface
212
+
213
+ ```text
214
+ autodq --version
215
+ autodq run workflow.adql
216
+ autodq validate workflow.adql
217
+ autodq cells workflow.adql
218
+ autodq vscode path
219
+ autodq vscode install
220
+ ```
221
+
222
+ The package can also be executed as a Python module:
223
+
224
+ ```bash
225
+ python -m autodq --version
226
+ ```
227
+
228
+ ## Development
229
+
230
+ Run the test suite:
231
+
232
+ ```bash
233
+ python -m unittest discover -s tests
234
+ ```
235
+
236
+ References: [Python API](docs/API_REFERENCE.md),
237
+ [ADQL language](docs/ADQL_SPEC.md), [release guide](docs/RELEASING.md), and
238
+ [changelog](CHANGELOG.md).
239
+
240
+ Build and verify release artifacts:
241
+
242
+ ```bash
243
+ python -m build
244
+ python -m twine check dist/*
245
+ python scripts/check_distribution.py dist
246
+ ```
247
+
248
+ For the complete release process, see the
249
+ [AutoDQ release guide](https://github.com/josephubani/autodq-analytics/blob/main/docs/RELEASING.md).
250
+
251
+ ## Documentation
252
+
253
+ - [ADQL language reference](https://github.com/josephubani/autodq-analytics/blob/main/docs/ADQL_SPEC.md)
254
+ - [System architecture](https://github.com/josephubani/autodq-analytics/blob/main/docs/ARCHITECTURE.md)
255
+ - [Plugin development](https://github.com/josephubani/autodq-analytics/blob/main/docs/PLUGIN_GUIDE.md)
256
+ - [Project roadmap](https://github.com/josephubani/autodq-analytics/blob/main/docs/ROADMAP.md)
257
+ - [Package and release procedure](https://github.com/josephubani/autodq-analytics/blob/main/docs/RELEASING.md)
258
+
259
+ ## License
260
+
261
+ AutoDQ is released under the
262
+ [MIT License](https://github.com/josephubani/autodq-analytics/blob/main/LICENSE).
263
+
264
+ ## Author
265
+
266
+ Joseph Ubani
267
+ Master of Data Analytics, University of Niagara Falls Canada