katabatic 0.2.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 (87) hide show
  1. katabatic-0.2.0/CHANGELOG.md +87 -0
  2. katabatic-0.2.0/LICENSE +21 -0
  3. katabatic-0.2.0/PKG-INFO +730 -0
  4. katabatic-0.2.0/README.md +649 -0
  5. katabatic-0.2.0/katabatic/__init__.py +15 -0
  6. katabatic-0.2.0/katabatic/artifacts/__init__.py +27 -0
  7. katabatic-0.2.0/katabatic/artifacts/base.py +21 -0
  8. katabatic-0.2.0/katabatic/artifacts/dataset_split.py +138 -0
  9. katabatic-0.2.0/katabatic/artifacts/ids.py +19 -0
  10. katabatic-0.2.0/katabatic/artifacts/local.py +33 -0
  11. katabatic-0.2.0/katabatic/artifacts/refs.py +88 -0
  12. katabatic-0.2.0/katabatic/cli/__init__.py +3 -0
  13. katabatic-0.2.0/katabatic/cli/commands/__init__.py +3 -0
  14. katabatic-0.2.0/katabatic/cli/commands/model_init.py +201 -0
  15. katabatic-0.2.0/katabatic/cli/commands/pin_notebook_kernel.py +101 -0
  16. katabatic-0.2.0/katabatic/cli/commands/register_dataset.py +34 -0
  17. katabatic-0.2.0/katabatic/cli/main.py +101 -0
  18. katabatic-0.2.0/katabatic/datasets/__init__.py +9 -0
  19. katabatic-0.2.0/katabatic/datasets/adult.csv +32562 -0
  20. katabatic-0.2.0/katabatic/datasets/car.csv +1729 -0
  21. katabatic-0.2.0/katabatic/datasets/car1.csv +10 -0
  22. katabatic-0.2.0/katabatic/datasets/compatibility.py +45 -0
  23. katabatic-0.2.0/katabatic/datasets/magic.csv +19021 -0
  24. katabatic-0.2.0/katabatic/datasets/nursery.csv +12961 -0
  25. katabatic-0.2.0/katabatic/datasets/profile.py +85 -0
  26. katabatic-0.2.0/katabatic/datasets/registry.py +109 -0
  27. katabatic-0.2.0/katabatic/datasets/shuttle.csv +58001 -0
  28. katabatic-0.2.0/katabatic/evaluate/base_evaluation.py +24 -0
  29. katabatic-0.2.0/katabatic/evaluate/consistency/__init__.py +3 -0
  30. katabatic-0.2.0/katabatic/evaluate/consistency/evaluation.py +255 -0
  31. katabatic-0.2.0/katabatic/evaluate/diversity/__init__.py +3 -0
  32. katabatic-0.2.0/katabatic/evaluate/diversity/evaluation.py +256 -0
  33. katabatic-0.2.0/katabatic/evaluate/fidelity/__init__.py +3 -0
  34. katabatic-0.2.0/katabatic/evaluate/fidelity/evaluation.py +212 -0
  35. katabatic-0.2.0/katabatic/evaluate/privacy/__init__.py +3 -0
  36. katabatic-0.2.0/katabatic/evaluate/privacy/evaluation.py +259 -0
  37. katabatic-0.2.0/katabatic/evaluate/report/__init__.py +3 -0
  38. katabatic-0.2.0/katabatic/evaluate/report/composite.py +156 -0
  39. katabatic-0.2.0/katabatic/evaluate/stability/__init__.py +3 -0
  40. katabatic-0.2.0/katabatic/evaluate/stability/evaluation.py +191 -0
  41. katabatic-0.2.0/katabatic/evaluate/tstr/evaluation.py +204 -0
  42. katabatic-0.2.0/katabatic/evaluate/utility/__init__.py +3 -0
  43. katabatic-0.2.0/katabatic/evaluate/utility/evaluation.py +268 -0
  44. katabatic-0.2.0/katabatic/models/__init__.py +9 -0
  45. katabatic-0.2.0/katabatic/models/base_model.py +67 -0
  46. katabatic-0.2.0/katabatic/models/codi/README.md +67 -0
  47. katabatic-0.2.0/katabatic/models/codi/__init__.py +12 -0
  48. katabatic-0.2.0/katabatic/models/codi/image.png +0 -0
  49. katabatic-0.2.0/katabatic/models/codi/models.py +685 -0
  50. katabatic-0.2.0/katabatic/models/codi/utils.py +549 -0
  51. katabatic-0.2.0/katabatic/models/ctgan/__init__.py +5 -0
  52. katabatic-0.2.0/katabatic/models/ctgan/models.py +596 -0
  53. katabatic-0.2.0/katabatic/models/ctgan/utils.py +194 -0
  54. katabatic-0.2.0/katabatic/models/ganblr/README.md +79 -0
  55. katabatic-0.2.0/katabatic/models/ganblr/__init__.py +14 -0
  56. katabatic-0.2.0/katabatic/models/ganblr/models.py +833 -0
  57. katabatic-0.2.0/katabatic/models/ganblr/utils.py +137 -0
  58. katabatic-0.2.0/katabatic/models/great/great_dataset.py +97 -0
  59. katabatic-0.2.0/katabatic/models/great/great_start.py +167 -0
  60. katabatic-0.2.0/katabatic/models/great/great_trainer.py +46 -0
  61. katabatic-0.2.0/katabatic/models/great/great_utils.py +185 -0
  62. katabatic-0.2.0/katabatic/models/great/models.py +919 -0
  63. katabatic-0.2.0/katabatic/models/medgan/README.md +73 -0
  64. katabatic-0.2.0/katabatic/models/medgan/__init__.py +11 -0
  65. katabatic-0.2.0/katabatic/models/medgan/models.py +384 -0
  66. katabatic-0.2.0/katabatic/models/medgan/utils.py +201 -0
  67. katabatic-0.2.0/katabatic/models/pategan/README.md +327 -0
  68. katabatic-0.2.0/katabatic/models/pategan/__init__.py +4 -0
  69. katabatic-0.2.0/katabatic/models/pategan/models.py +717 -0
  70. katabatic-0.2.0/katabatic/models/pategan/utils.py +320 -0
  71. katabatic-0.2.0/katabatic/models/registry.py +150 -0
  72. katabatic-0.2.0/katabatic/models/tabddpm/__init__.py +5 -0
  73. katabatic-0.2.0/katabatic/models/tabddpm/models.py +680 -0
  74. katabatic-0.2.0/katabatic/models/tabddpm/utils.py +225 -0
  75. katabatic-0.2.0/katabatic/models/tabsyn/__init__.py +5 -0
  76. katabatic-0.2.0/katabatic/models/tabsyn/models.py +185 -0
  77. katabatic-0.2.0/katabatic/models/tabsyn/utils.py +859 -0
  78. katabatic-0.2.0/katabatic/pipeline/base_pipeline.py +19 -0
  79. katabatic-0.2.0/katabatic/pipeline/cross_validation/pipeline.py +24 -0
  80. katabatic-0.2.0/katabatic/pipeline/evaluation_pipeline.py +278 -0
  81. katabatic-0.2.0/katabatic/pipeline/train_test_split/pipeline.py +370 -0
  82. katabatic-0.2.0/katabatic/utils/__init__.py +1 -0
  83. katabatic-0.2.0/katabatic/utils/column_types.py +43 -0
  84. katabatic-0.2.0/katabatic/utils/preprocess.py +94 -0
  85. katabatic-0.2.0/katabatic/utils/split_dataset.py +133 -0
  86. katabatic-0.2.0/katabatic/utils/train_test_consistency.py +50 -0
  87. katabatic-0.2.0/pyproject.toml +144 -0
@@ -0,0 +1,87 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.2.0] - 2026-08-28
9
+
10
+ ### Added
11
+
12
+ - Six-dimension evaluation pipeline: fidelity, utility, diversity, privacy, consistency, and stability (`katabatic.pipeline.evaluation_pipeline`).
13
+ - Six additional models registered as experimental: `codi`, `ctgan`, `medgan`, `pategan`, `tabddpm`, `tabsyn`.
14
+ - Model promotion contract, enforced automatically by the `model-contract` CI job: registry entry with matching extra, importable module and class, pipeline interface (`train`, `sample`, `load_from_ref`), non-empty `ARTIFACT_STATE_FILES`, and an integration test.
15
+ - Parameterised contract test harness (`tests/test_model_registry.py`) covering every model marked supported.
16
+ - CTGAN integration test with a full artifact round-trip: state persistence, reload via `load_from_ref`, and sampling with column-order verification.
17
+ - CI jobs: pre-commit, bandit and pip-audit security scanning, coverage gating, per-model integration matrix with path filtering, Docker build and smoke test, and combined coverage reporting across jobs.
18
+ - Dockerfile with build-time extras selection (`MODEL_EXTRA`), CPU-only PyTorch, layer-split dependency install, and a non-root runtime user.
19
+ - Developer tooling: pre-commit hooks, Makefile targets mirroring CI (`make ci`, `make contract`, `make hooks`), and a generic `make install-model MODEL=x`.
20
+ - Repository governance: branch protection on `main` and `development`, CODEOWNERS restricting merges on protected branches, and Dependabot configuration.
21
+ - `ModelRegistry.get_model_config()` public accessor.
22
+
23
+ ### Changed
24
+
25
+ - Migrated packaging to the PEP 621 `[project]` standard; model dependencies moved from core into extras.
26
+ - Poetry 1.x -> 2.x.
27
+ - GANBLR promoted to supported: declares `ARTIFACT_STATE_FILES`, persists state to the artifact store, and honours the `train_epochs` keyword.
28
+ - CTGAN promoted to supported.
29
+ - GReaT reverted to experimental pending modernisation to the current model contract (no state persistence).
30
+ - GReaT removed from the CI integration matrix while unsupported; its tests remain skipped pending modernisation to the current model contract.
31
+
32
+ ### Fixed
33
+
34
+ - CTGAN column-type inference treated low-cardinality integer columns as continuous on small datasets, producing continuous synthetic targets that broke TSTR evaluation.
35
+ - GANBLR did not persist model state, so trained models could not be reloaded from an artifact reference.
36
+ - `katabatic.__version__` is now read from installed package metadata, making `pyproject.toml` the single source of truth.
37
+ - Constrained `huggingface-hub` to `<1.0` and `fsspec` to `<=2026.2.0` in the `great` and `all` extras, resolving incompatibilities with `transformers` 4.57 and `datasets` 4.x.
38
+ - Removed `tabpfn` from the `all` extra: it requires `huggingface-hub>=1.0`, which `transformers` 4.x rejects. The standalone `tabpfgen` extra is unaffected.
39
+
40
+ ### Security
41
+
42
+ - `torch` 2.9.0 -> 2.13.0, resolving CVE-2025-2999, CVE-2025-3001, PYSEC-2026-139, PYSEC-2026-2286, and PYSEC-2025-194.
43
+ - `transformers` 4.53.2 -> 4.57.0, resolving PYSEC-2025-211 through -216 and -218. Remaining advisories require the v5 major upgrade and are deferred pending GReaT's modernisation.
44
+ - `tensorflow` 2.19 -> 2.21.
45
+ - Docker container hardened to run as a non-root user.
46
+ - Dependency vulnerability scanning (`pip-audit`) and static analysis (`bandit`) added to CI.
47
+
48
+ ### Removed
49
+
50
+ - Stale per-model `pyproject.toml` and `poetry.lock` files.
51
+ - `dev_deps.py`, repo-root `main.py` and `utils.py`, and `katabatic/models/ganblr/kdb.py`.
52
+
53
+
54
+ ## [0.1.0a1] - 2026-05-22
55
+
56
+ First public **alpha** release on TestPyPI / PyPI.
57
+
58
+ ## [0.1.0] - 2026-05-22
59
+
60
+ ### Added
61
+
62
+ - PyPI packaging with lean core install (`pandas`, `numpy`, `scikit-learn`) and optional extras (`ganblr`, `great`, `eval`, and experimental model extras).
63
+ - `katabatic` CLI: `init-model`, `register-dataset`, `pin-notebook-kernel`.
64
+ - Packaged preprocessing API at `katabatic.utils.preprocess` (`preprocess_tabular`, `encode_preprocess`).
65
+ - GitHub Actions CI: `poetry check`, `ruff`, fast `pytest`, wheel build, optional integration job for GANBLR.
66
+ - Documentation: install matrix, artifact-first quick start, `docs/EXPERIMENTAL_MODELS.md`.
67
+ - Integration smoke tests for GANBLR (artifact pipeline) and GReaT (import/registry wiring).
68
+ - `ModelRegistry` `supported` flag for officially supported models (`ganblr`, `great`).
69
+
70
+ ### Changed
71
+
72
+ - Heavy dependencies (TensorFlow, PyTorch, Jupyter, etc.) moved out of the default install into extras or dev dependencies.
73
+ - Root `utils.py` is a deprecation shim; import from `katabatic.utils.preprocess` instead.
74
+ - README and CONTRIBUTING updated for `datascience-works/Katabatic` URLs and current dev tooling (`ruff`, `poetry install --with dev`).
75
+
76
+ ### Fixed
77
+
78
+ - Removed invalid `libzero` extra reference that broke `poetry check`.
79
+ - Removed `sys.path` hack from GANBLR model module for installed-package compatibility.
80
+
81
+ ### Deprecated
82
+
83
+ - Repo-root `utils` module (use `katabatic.utils.preprocess`).
84
+ - `python main.py` entry point (use `katabatic` CLI).
85
+
86
+ [0.1.0a1]: https://github.com/datascience-works/Katabatic/releases/tag/v0.1.0a1
87
+ [0.1.0]: https://github.com/datascience-works/Katabatic/releases/tag/v0.1.0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Katabatic Team
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
13
+ all 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
20
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21
+ DEALINGS IN THE SOFTWARE.