pycatalyst 0.0.9.dev0__tar.gz → 0.0.12__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 (837) hide show
  1. pycatalyst-0.0.12/.github/workflows/publish.yml +99 -0
  2. pycatalyst-0.0.12/.gitignore +280 -0
  3. pycatalyst-0.0.12/PKG-INFO +212 -0
  4. pycatalyst-0.0.12/README.md +102 -0
  5. pycatalyst-0.0.12/docs/PUBLISHING.md +90 -0
  6. pycatalyst-0.0.12/docs/getting-started/api-auth.md +71 -0
  7. pycatalyst-0.0.12/docs/getting-started/generate-data.md +53 -0
  8. pycatalyst-0.0.12/docs/getting-started/infer-schema.md +53 -0
  9. pycatalyst-0.0.12/docs/getting-started/quickstart.md +98 -0
  10. pycatalyst-0.0.12/docs/getting-started/recipes.md +75 -0
  11. pycatalyst-0.0.12/docs/getting-started/workbench.md +51 -0
  12. pycatalyst-0.0.12/docs/index.md +42 -0
  13. pycatalyst-0.0.12/docs/reference/generation-engine.md +3 -0
  14. pycatalyst-0.0.12/docs/reference/python-api.md +27 -0
  15. pycatalyst-0.0.12/docs/reference/recipe-loader.md +3 -0
  16. pycatalyst-0.0.12/docs/reference/recipe-runner.md +3 -0
  17. pycatalyst-0.0.12/docs/reference/rest-api.md +71 -0
  18. pycatalyst-0.0.12/docs/reference/schema-inference.md +5 -0
  19. pycatalyst-0.0.12/mkdocs.yml +88 -0
  20. pycatalyst-0.0.12/pycatalyst.cfg +98 -0
  21. pycatalyst-0.0.12/pycatalyst.cfg.example +105 -0
  22. pycatalyst-0.0.12/pycatalyst.db +0 -0
  23. pycatalyst-0.0.12/pyproject.toml +297 -0
  24. pycatalyst-0.0.12/runs/experiment/history.json +62 -0
  25. pycatalyst-0.0.12/runs/experiment/metrics.json +4 -0
  26. pycatalyst-0.0.12/runs/experiment/model.pt +0 -0
  27. pycatalyst-0.0.12/runs/experiment/model_config.json +9 -0
  28. pycatalyst-0.0.12/runs/experiment/plots/predicted_vs_actual.png +0 -0
  29. pycatalyst-0.0.12/runs/experiment/scaler.json +21 -0
  30. pycatalyst-0.0.12/setup.sh +169 -0
  31. pycatalyst-0.0.12/src/pycatalyst/__init__.py +111 -0
  32. pycatalyst-0.0.12/src/pycatalyst/_types.py +418 -0
  33. pycatalyst-0.0.12/src/pycatalyst/api/dependencies/__init__.py +9 -0
  34. pycatalyst-0.0.12/src/pycatalyst/api/dependencies/auth.py +203 -0
  35. pycatalyst-0.0.12/src/pycatalyst/api/dependencies/catalyst_store.py +93 -0
  36. pycatalyst-0.0.12/src/pycatalyst/api/main.py +206 -0
  37. pycatalyst-0.0.12/src/pycatalyst/api/models/responses.py +21 -0
  38. pycatalyst-0.0.12/src/pycatalyst/api/routes/v1/auth.py +85 -0
  39. pycatalyst-0.0.12/src/pycatalyst/api/routes/v1/generate.py +74 -0
  40. pycatalyst-0.0.12/src/pycatalyst/api/routes/v1/ml.py +399 -0
  41. pycatalyst-0.0.12/src/pycatalyst/api/routes/v1/services.py +184 -0
  42. pycatalyst-0.0.12/src/pycatalyst/api/routes/v1/settings.py +130 -0
  43. pycatalyst-0.0.12/src/pycatalyst/api/routes/v1/stream.py +131 -0
  44. pycatalyst-0.0.12/src/pycatalyst/api/routes/v1/workbench.py +663 -0
  45. pycatalyst-0.0.12/src/pycatalyst/api/schemas/__init__.py +1 -0
  46. pycatalyst-0.0.12/src/pycatalyst/api/schemas/generate_common.py +46 -0
  47. pycatalyst-0.0.12/src/pycatalyst/catalyst_store/__init__.py +49 -0
  48. pycatalyst-0.0.12/src/pycatalyst/catalyst_store/_artifact_protocol.py +69 -0
  49. pycatalyst-0.0.12/src/pycatalyst/catalyst_store/_sqlalchemy_base.py +457 -0
  50. pycatalyst-0.0.12/src/pycatalyst/catalyst_store/client.py +448 -0
  51. pycatalyst-0.0.12/src/pycatalyst/catalyst_store/in_memory.py +198 -0
  52. pycatalyst-0.0.12/src/pycatalyst/catalyst_store/mongodb.py +385 -0
  53. pycatalyst-0.0.12/src/pycatalyst/catalyst_store/postgres.py +74 -0
  54. pycatalyst-0.0.12/src/pycatalyst/catalyst_store/s3.py +171 -0
  55. pycatalyst-0.0.12/src/pycatalyst/catalyst_store/sqlite.py +73 -0
  56. pycatalyst-0.0.12/src/pycatalyst/cli.py +590 -0
  57. pycatalyst-0.0.12/src/pycatalyst/config/__init__.py +59 -0
  58. pycatalyst-0.0.12/src/pycatalyst/config/artifact.py +72 -0
  59. pycatalyst-0.0.12/src/pycatalyst/config/auth.py +107 -0
  60. pycatalyst-0.0.12/src/pycatalyst/config/aws.py +83 -0
  61. pycatalyst-0.0.12/src/pycatalyst/config/workbench.py +214 -0
  62. pycatalyst-0.0.12/src/pycatalyst/data/profiles/pycharter_dev.yaml +8 -0
  63. pycatalyst-0.0.12/src/pycatalyst/data/profiles/pystator_dev.yaml +9 -0
  64. pycatalyst-0.0.12/src/pycatalyst/data/seed/README.md +78 -0
  65. pycatalyst-0.0.12/src/pycatalyst/data/seed/market_experiment_panel.yaml +67 -0
  66. pycatalyst-0.0.12/src/pycatalyst/data/seed/market_experiment_pytorch.yaml +39 -0
  67. pycatalyst-0.0.12/src/pycatalyst/data/seed/market_experiment_sklearn.yaml +33 -0
  68. pycatalyst-0.0.12/src/pycatalyst/data/seed/market_train.csv +601 -0
  69. pycatalyst-0.0.12/src/pycatalyst/db/migrations/env.py +69 -0
  70. pycatalyst-0.0.12/src/pycatalyst/db/migrations/versions/20260309_add_catalyst_store_tables.py +144 -0
  71. pycatalyst-0.0.12/src/pycatalyst/db/migrations/versions/20260310_add_artifacts_table.py +63 -0
  72. pycatalyst-0.0.12/src/pycatalyst/db/models/__init__.py +19 -0
  73. pycatalyst-0.0.12/src/pycatalyst/db/models/artifact.py +56 -0
  74. pycatalyst-0.0.12/src/pycatalyst/db/models/experiment.py +51 -0
  75. pycatalyst-0.0.12/src/pycatalyst/db/models/generation_run.py +45 -0
  76. pycatalyst-0.0.12/src/pycatalyst/db/models/recipe.py +42 -0
  77. pycatalyst-0.0.12/src/pycatalyst/db/models/schema_spec.py +39 -0
  78. pycatalyst-0.0.12/src/pycatalyst/docs/__init__.py +5 -0
  79. pycatalyst-0.0.12/src/pycatalyst/docs/cli.py +106 -0
  80. pycatalyst-0.0.12/src/pycatalyst/errors.py +373 -0
  81. pycatalyst-0.0.12/src/pycatalyst/generators/engine.py +154 -0
  82. pycatalyst-0.0.12/src/pycatalyst/generators/scalar.py +250 -0
  83. pycatalyst-0.0.12/src/pycatalyst/ml/__init__.py +92 -0
  84. pycatalyst-0.0.12/src/pycatalyst/ml/_protocols.py +113 -0
  85. pycatalyst-0.0.12/src/pycatalyst/ml/_types.py +53 -0
  86. pycatalyst-0.0.12/src/pycatalyst/ml/data.py +314 -0
  87. pycatalyst-0.0.12/src/pycatalyst/ml/huggingface/__init__.py +21 -0
  88. pycatalyst-0.0.12/src/pycatalyst/ml/huggingface/config.py +68 -0
  89. pycatalyst-0.0.12/src/pycatalyst/ml/huggingface/data.py +112 -0
  90. pycatalyst-0.0.12/src/pycatalyst/ml/huggingface/engine.py +240 -0
  91. pycatalyst-0.0.12/src/pycatalyst/ml/io.py +71 -0
  92. pycatalyst-0.0.12/src/pycatalyst/ml/preview.py +192 -0
  93. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/__init__.py +24 -0
  94. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/config.py +207 -0
  95. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/data/__init__.py +15 -0
  96. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/data/panel.py +250 -0
  97. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/data/panel_dataset.py +74 -0
  98. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/data/scaling.py +224 -0
  99. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/data/tabular.py +105 -0
  100. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/data/temporal.py +152 -0
  101. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/device.py +46 -0
  102. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/evaluation.py +222 -0
  103. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/models/__init__.py +3 -0
  104. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/models/base.py +81 -0
  105. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/models/gru.py +43 -0
  106. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/models/lstm.py +44 -0
  107. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/models/mlp.py +73 -0
  108. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/models/registry.py +52 -0
  109. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/models/tcn.py +96 -0
  110. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/models/transformer.py +79 -0
  111. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/serving.py +144 -0
  112. pycatalyst-0.0.12/src/pycatalyst/ml/pytorch/trainer.py +568 -0
  113. pycatalyst-0.0.12/src/pycatalyst/ml/registry.py +109 -0
  114. pycatalyst-0.0.12/src/pycatalyst/ml/results.py +259 -0
  115. pycatalyst-0.0.12/src/pycatalyst/ml/run.py +235 -0
  116. pycatalyst-0.0.12/src/pycatalyst/ml/sklearn/__init__.py +21 -0
  117. pycatalyst-0.0.12/src/pycatalyst/ml/sklearn/_helpers.py +454 -0
  118. pycatalyst-0.0.12/src/pycatalyst/ml/sklearn/config.py +83 -0
  119. pycatalyst-0.0.12/src/pycatalyst/ml/sklearn/engine.py +392 -0
  120. pycatalyst-0.0.12/src/pycatalyst/ml/trainers/__init__.py +42 -0
  121. pycatalyst-0.0.12/src/pycatalyst/ml/trainers/base.py +341 -0
  122. pycatalyst-0.0.12/src/pycatalyst/ml/trainers/huggingface.py +159 -0
  123. pycatalyst-0.0.12/src/pycatalyst/ml/trainers/pytorch.py +567 -0
  124. pycatalyst-0.0.12/src/pycatalyst/ml/trainers/sklearn.py +329 -0
  125. pycatalyst-0.0.12/src/pycatalyst/schema/inferrer.py +253 -0
  126. pycatalyst-0.0.12/src/pycatalyst/services/backends/base.py +179 -0
  127. pycatalyst-0.0.12/src/pycatalyst/services/backends/docker_backend.py +399 -0
  128. pycatalyst-0.0.12/src/pycatalyst/services/backends/venv_backend.py +392 -0
  129. pycatalyst-0.0.12/src/pycatalyst/services/profiles.py +126 -0
  130. pycatalyst-0.0.12/src/pycatalyst/services/service_containers.py +760 -0
  131. pycatalyst-0.0.12/src/pycatalyst/services/workbench_manager.py +636 -0
  132. pycatalyst-0.0.12/src/pycatalyst/streaming/__init__.py +42 -0
  133. pycatalyst-0.0.12/src/pycatalyst/streaming/formats.py +17 -0
  134. pycatalyst-0.0.12/src/pycatalyst/streaming/limits.py +44 -0
  135. pycatalyst-0.0.12/src/pycatalyst/ui/dev.py +40 -0
  136. pycatalyst-0.0.12/src/pycatalyst/ui/out/404/index.html +1 -0
  137. pycatalyst-0.0.12/src/pycatalyst/ui/out/404.html +1 -0
  138. pycatalyst-0.0.12/src/pycatalyst/ui/out/__next.__PAGE__.txt +9 -0
  139. pycatalyst-0.0.12/src/pycatalyst/ui/out/__next._full.txt +22 -0
  140. pycatalyst-0.0.12/src/pycatalyst/ui/out/__next._head.txt +5 -0
  141. pycatalyst-0.0.12/src/pycatalyst/ui/out/__next._index.txt +10 -0
  142. pycatalyst-0.0.12/src/pycatalyst/ui/out/__next._tree.txt +2 -0
  143. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/0df6765465daf613.js +34 -0
  144. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/273748ce4060ff69.js +1 -0
  145. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/33edfc06290ba0dd.css +2 -0
  146. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/346ae210088a3b1c.js +340 -0
  147. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/3f4c3f4b40a44532.js +21 -0
  148. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/67019a27b3bb9d9f.js +1 -0
  149. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/85eb695ade2f6f87.js +2 -0
  150. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/8cd23ba7216fa8d5.js +1 -0
  151. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/98a0eebf60225743.js +1 -0
  152. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/9c8720a2ee1466bb.js +1 -0
  153. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/9d08a936417aa94f.js +73 -0
  154. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/9f474537016520b1.js +5 -0
  155. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/a2dfb6fc5208ab9b.js +1 -0
  156. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/d59f830a2b8e768c.js +1 -0
  157. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/e7df66aecef6f4c4.js +1 -0
  158. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/f55dfa8de6208e52.js +25 -0
  159. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/f9798ded6b53bb5a.js +1 -0
  160. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/fc8b4c86c7b238eb.js +1 -0
  161. pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/chunks/turbopack-26fb8c0624bfe5ae.js +4 -0
  162. pycatalyst-0.0.12/src/pycatalyst/ui/out/_not-found/__next._full.txt +19 -0
  163. pycatalyst-0.0.12/src/pycatalyst/ui/out/_not-found/__next._head.txt +5 -0
  164. pycatalyst-0.0.12/src/pycatalyst/ui/out/_not-found/__next._index.txt +10 -0
  165. pycatalyst-0.0.12/src/pycatalyst/ui/out/_not-found/__next._not-found.__PAGE__.txt +5 -0
  166. pycatalyst-0.0.12/src/pycatalyst/ui/out/_not-found/__next._not-found.txt +4 -0
  167. pycatalyst-0.0.12/src/pycatalyst/ui/out/_not-found/__next._tree.txt +2 -0
  168. pycatalyst-0.0.12/src/pycatalyst/ui/out/_not-found/index.html +1 -0
  169. pycatalyst-0.0.12/src/pycatalyst/ui/out/_not-found/index.txt +19 -0
  170. pycatalyst-0.0.12/src/pycatalyst/ui/out/documentation/__next._full.txt +22 -0
  171. pycatalyst-0.0.12/src/pycatalyst/ui/out/documentation/__next._head.txt +5 -0
  172. pycatalyst-0.0.12/src/pycatalyst/ui/out/documentation/__next._index.txt +10 -0
  173. pycatalyst-0.0.12/src/pycatalyst/ui/out/documentation/__next._tree.txt +2 -0
  174. pycatalyst-0.0.12/src/pycatalyst/ui/out/documentation/__next.documentation.__PAGE__.txt +9 -0
  175. pycatalyst-0.0.12/src/pycatalyst/ui/out/documentation/__next.documentation.txt +4 -0
  176. pycatalyst-0.0.12/src/pycatalyst/ui/out/documentation/index.html +1 -0
  177. pycatalyst-0.0.12/src/pycatalyst/ui/out/documentation/index.txt +22 -0
  178. pycatalyst-0.0.12/src/pycatalyst/ui/out/generate/__next._full.txt +22 -0
  179. pycatalyst-0.0.12/src/pycatalyst/ui/out/generate/__next._head.txt +5 -0
  180. pycatalyst-0.0.12/src/pycatalyst/ui/out/generate/__next._index.txt +10 -0
  181. pycatalyst-0.0.12/src/pycatalyst/ui/out/generate/__next._tree.txt +2 -0
  182. pycatalyst-0.0.12/src/pycatalyst/ui/out/generate/__next.generate.__PAGE__.txt +9 -0
  183. pycatalyst-0.0.12/src/pycatalyst/ui/out/generate/__next.generate.txt +4 -0
  184. pycatalyst-0.0.12/src/pycatalyst/ui/out/generate/index.html +1 -0
  185. pycatalyst-0.0.12/src/pycatalyst/ui/out/generate/index.txt +22 -0
  186. pycatalyst-0.0.12/src/pycatalyst/ui/out/index.html +1 -0
  187. pycatalyst-0.0.12/src/pycatalyst/ui/out/index.txt +22 -0
  188. pycatalyst-0.0.12/src/pycatalyst/ui/out/login/__next._full.txt +22 -0
  189. pycatalyst-0.0.12/src/pycatalyst/ui/out/login/__next._head.txt +5 -0
  190. pycatalyst-0.0.12/src/pycatalyst/ui/out/login/__next._index.txt +10 -0
  191. pycatalyst-0.0.12/src/pycatalyst/ui/out/login/__next._tree.txt +2 -0
  192. pycatalyst-0.0.12/src/pycatalyst/ui/out/login/__next.login.__PAGE__.txt +9 -0
  193. pycatalyst-0.0.12/src/pycatalyst/ui/out/login/__next.login.txt +4 -0
  194. pycatalyst-0.0.12/src/pycatalyst/ui/out/login/index.html +1 -0
  195. pycatalyst-0.0.12/src/pycatalyst/ui/out/login/index.txt +22 -0
  196. pycatalyst-0.0.12/src/pycatalyst/ui/out/model-training/__next._full.txt +22 -0
  197. pycatalyst-0.0.12/src/pycatalyst/ui/out/model-training/__next._head.txt +5 -0
  198. pycatalyst-0.0.12/src/pycatalyst/ui/out/model-training/__next._index.txt +10 -0
  199. pycatalyst-0.0.12/src/pycatalyst/ui/out/model-training/__next._tree.txt +2 -0
  200. pycatalyst-0.0.12/src/pycatalyst/ui/out/model-training/__next.model-training.__PAGE__.txt +9 -0
  201. pycatalyst-0.0.12/src/pycatalyst/ui/out/model-training/__next.model-training.txt +4 -0
  202. pycatalyst-0.0.12/src/pycatalyst/ui/out/model-training/index.html +1 -0
  203. pycatalyst-0.0.12/src/pycatalyst/ui/out/model-training/index.txt +22 -0
  204. pycatalyst-0.0.12/src/pycatalyst/ui/out/recipes/__next._full.txt +22 -0
  205. pycatalyst-0.0.12/src/pycatalyst/ui/out/recipes/__next._head.txt +5 -0
  206. pycatalyst-0.0.12/src/pycatalyst/ui/out/recipes/__next._index.txt +10 -0
  207. pycatalyst-0.0.12/src/pycatalyst/ui/out/recipes/__next._tree.txt +2 -0
  208. pycatalyst-0.0.12/src/pycatalyst/ui/out/recipes/__next.recipes.__PAGE__.txt +9 -0
  209. pycatalyst-0.0.12/src/pycatalyst/ui/out/recipes/__next.recipes.txt +4 -0
  210. pycatalyst-0.0.12/src/pycatalyst/ui/out/recipes/index.html +1 -0
  211. pycatalyst-0.0.12/src/pycatalyst/ui/out/recipes/index.txt +22 -0
  212. pycatalyst-0.0.12/src/pycatalyst/ui/out/schemas/__next._full.txt +22 -0
  213. pycatalyst-0.0.12/src/pycatalyst/ui/out/schemas/__next._head.txt +5 -0
  214. pycatalyst-0.0.12/src/pycatalyst/ui/out/schemas/__next._index.txt +10 -0
  215. pycatalyst-0.0.12/src/pycatalyst/ui/out/schemas/__next._tree.txt +2 -0
  216. pycatalyst-0.0.12/src/pycatalyst/ui/out/schemas/__next.schemas.__PAGE__.txt +9 -0
  217. pycatalyst-0.0.12/src/pycatalyst/ui/out/schemas/__next.schemas.txt +4 -0
  218. pycatalyst-0.0.12/src/pycatalyst/ui/out/schemas/index.html +1 -0
  219. pycatalyst-0.0.12/src/pycatalyst/ui/out/schemas/index.txt +22 -0
  220. pycatalyst-0.0.12/src/pycatalyst/ui/out/settings/__next._full.txt +22 -0
  221. pycatalyst-0.0.12/src/pycatalyst/ui/out/settings/__next._head.txt +5 -0
  222. pycatalyst-0.0.12/src/pycatalyst/ui/out/settings/__next._index.txt +10 -0
  223. pycatalyst-0.0.12/src/pycatalyst/ui/out/settings/__next._tree.txt +2 -0
  224. pycatalyst-0.0.12/src/pycatalyst/ui/out/settings/__next.settings.__PAGE__.txt +9 -0
  225. pycatalyst-0.0.12/src/pycatalyst/ui/out/settings/__next.settings.txt +4 -0
  226. pycatalyst-0.0.12/src/pycatalyst/ui/out/settings/index.html +1 -0
  227. pycatalyst-0.0.12/src/pycatalyst/ui/out/settings/index.txt +22 -0
  228. pycatalyst-0.0.12/src/pycatalyst/ui/out/sinks/__next._full.txt +22 -0
  229. pycatalyst-0.0.12/src/pycatalyst/ui/out/sinks/__next._head.txt +5 -0
  230. pycatalyst-0.0.12/src/pycatalyst/ui/out/sinks/__next._index.txt +10 -0
  231. pycatalyst-0.0.12/src/pycatalyst/ui/out/sinks/__next._tree.txt +2 -0
  232. pycatalyst-0.0.12/src/pycatalyst/ui/out/sinks/__next.sinks.__PAGE__.txt +9 -0
  233. pycatalyst-0.0.12/src/pycatalyst/ui/out/sinks/__next.sinks.txt +4 -0
  234. pycatalyst-0.0.12/src/pycatalyst/ui/out/sinks/index.html +1 -0
  235. pycatalyst-0.0.12/src/pycatalyst/ui/out/sinks/index.txt +22 -0
  236. pycatalyst-0.0.12/src/pycatalyst/ui/out/workbench/__next._full.txt +23 -0
  237. pycatalyst-0.0.12/src/pycatalyst/ui/out/workbench/__next._head.txt +5 -0
  238. pycatalyst-0.0.12/src/pycatalyst/ui/out/workbench/__next._index.txt +10 -0
  239. pycatalyst-0.0.12/src/pycatalyst/ui/out/workbench/__next._tree.txt +3 -0
  240. pycatalyst-0.0.12/src/pycatalyst/ui/out/workbench/__next.workbench.__PAGE__.txt +10 -0
  241. pycatalyst-0.0.12/src/pycatalyst/ui/out/workbench/__next.workbench.txt +4 -0
  242. pycatalyst-0.0.12/src/pycatalyst/ui/out/workbench/index.html +1 -0
  243. pycatalyst-0.0.12/src/pycatalyst/ui/out/workbench/index.txt +23 -0
  244. pycatalyst-0.0.12/src/pycatalyst/ui/package-lock.json +8066 -0
  245. pycatalyst-0.0.12/src/pycatalyst/ui/package.json +47 -0
  246. pycatalyst-0.0.12/src/pycatalyst/ui/src/app/documentation/page.tsx +264 -0
  247. pycatalyst-0.0.12/src/pycatalyst/ui/src/app/generate/page.tsx +1132 -0
  248. pycatalyst-0.0.12/src/pycatalyst/ui/src/app/model-training/page.tsx +211 -0
  249. pycatalyst-0.0.12/src/pycatalyst/ui/src/app/page.tsx +80 -0
  250. pycatalyst-0.0.12/src/pycatalyst/ui/src/app/recipes/page.tsx +18 -0
  251. pycatalyst-0.0.12/src/pycatalyst/ui/src/app/schemas/page.tsx +18 -0
  252. pycatalyst-0.0.12/src/pycatalyst/ui/src/app/settings/page.tsx +265 -0
  253. pycatalyst-0.0.12/src/pycatalyst/ui/src/app/workbench/page.tsx +797 -0
  254. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/layout/Navigation.tsx +186 -0
  255. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/BackendSelector.tsx +44 -0
  256. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/DataSection.tsx +368 -0
  257. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/EvaluationSection.tsx +142 -0
  258. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/ExperimentSection.tsx +64 -0
  259. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/HelpTip.tsx +21 -0
  260. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/ModelRegistryPanel.tsx +511 -0
  261. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/ModelSection.tsx +394 -0
  262. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/ResultsPanel.tsx +183 -0
  263. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/RunPanel.tsx +157 -0
  264. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/TrainingSection.tsx +320 -0
  265. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/YamlPreview.tsx +99 -0
  266. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/constants.ts +273 -0
  267. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/index.ts +18 -0
  268. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/templates.ts +389 -0
  269. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/types.ts +181 -0
  270. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/model-training/useExperimentForm.ts +261 -0
  271. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/sidebar/CollapsibleSidebar.tsx +188 -0
  272. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/sidebar/index.ts +2 -0
  273. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/ui/accordion.tsx +58 -0
  274. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/ui/collapsible.tsx +11 -0
  275. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/ui/select.tsx +160 -0
  276. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/ui/separator.tsx +31 -0
  277. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/ui/slider.tsx +28 -0
  278. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/ui/tooltip.tsx +30 -0
  279. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/workbench/CreateEnvDialog.tsx +157 -0
  280. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/workbench/DatabaseDialog.tsx +131 -0
  281. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/workbench/InstallPackageDialog.tsx +154 -0
  282. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/workbench/PackagePanel.tsx +173 -0
  283. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/workbench/SendDataDialog.tsx +190 -0
  284. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/workbench/ServiceStatusBar.tsx +106 -0
  285. pycatalyst-0.0.12/src/pycatalyst/ui/src/components/workbench/WorkbenchToolbar.tsx +267 -0
  286. pycatalyst-0.0.12/src/pycatalyst/ui/src/lib/api.ts +255 -0
  287. pycatalyst-0.0.12/src/pycatalyst/ui/src/lib/constants.ts +43 -0
  288. pycatalyst-0.0.12/src/pycatalyst/ui/src/lib/types/index.ts +117 -0
  289. pycatalyst-0.0.12/src/pycatalyst/ui/src/lib/workbench.ts +385 -0
  290. pycatalyst-0.0.12/src/pycatalyst/ui/src/lib/yaml-builder.ts +416 -0
  291. pycatalyst-0.0.12/src/pycatalyst/ui/static/404/index.html +1 -0
  292. pycatalyst-0.0.12/src/pycatalyst/ui/static/404.html +1 -0
  293. pycatalyst-0.0.12/src/pycatalyst/ui/static/__next.__PAGE__.txt +9 -0
  294. pycatalyst-0.0.12/src/pycatalyst/ui/static/__next._full.txt +22 -0
  295. pycatalyst-0.0.12/src/pycatalyst/ui/static/__next._head.txt +5 -0
  296. pycatalyst-0.0.12/src/pycatalyst/ui/static/__next._index.txt +10 -0
  297. pycatalyst-0.0.12/src/pycatalyst/ui/static/__next._tree.txt +2 -0
  298. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/0df6765465daf613.js +34 -0
  299. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/273748ce4060ff69.js +1 -0
  300. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/33edfc06290ba0dd.css +2 -0
  301. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/346ae210088a3b1c.js +340 -0
  302. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/3f4c3f4b40a44532.js +21 -0
  303. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/67019a27b3bb9d9f.js +1 -0
  304. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/85eb695ade2f6f87.js +2 -0
  305. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/8cd23ba7216fa8d5.js +1 -0
  306. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/98a0eebf60225743.js +1 -0
  307. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/9c8720a2ee1466bb.js +1 -0
  308. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/9d08a936417aa94f.js +73 -0
  309. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/9f474537016520b1.js +5 -0
  310. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/a2dfb6fc5208ab9b.js +1 -0
  311. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/d59f830a2b8e768c.js +1 -0
  312. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/e7df66aecef6f4c4.js +1 -0
  313. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/f55dfa8de6208e52.js +25 -0
  314. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/f9798ded6b53bb5a.js +1 -0
  315. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/fc8b4c86c7b238eb.js +1 -0
  316. pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/chunks/turbopack-26fb8c0624bfe5ae.js +4 -0
  317. pycatalyst-0.0.12/src/pycatalyst/ui/static/_not-found/__next._full.txt +19 -0
  318. pycatalyst-0.0.12/src/pycatalyst/ui/static/_not-found/__next._head.txt +5 -0
  319. pycatalyst-0.0.12/src/pycatalyst/ui/static/_not-found/__next._index.txt +10 -0
  320. pycatalyst-0.0.12/src/pycatalyst/ui/static/_not-found/__next._not-found.__PAGE__.txt +5 -0
  321. pycatalyst-0.0.12/src/pycatalyst/ui/static/_not-found/__next._not-found.txt +4 -0
  322. pycatalyst-0.0.12/src/pycatalyst/ui/static/_not-found/__next._tree.txt +2 -0
  323. pycatalyst-0.0.12/src/pycatalyst/ui/static/_not-found/index.html +1 -0
  324. pycatalyst-0.0.12/src/pycatalyst/ui/static/_not-found/index.txt +19 -0
  325. pycatalyst-0.0.12/src/pycatalyst/ui/static/documentation/__next._full.txt +22 -0
  326. pycatalyst-0.0.12/src/pycatalyst/ui/static/documentation/__next._head.txt +5 -0
  327. pycatalyst-0.0.12/src/pycatalyst/ui/static/documentation/__next._index.txt +10 -0
  328. pycatalyst-0.0.12/src/pycatalyst/ui/static/documentation/__next._tree.txt +2 -0
  329. pycatalyst-0.0.12/src/pycatalyst/ui/static/documentation/__next.documentation.__PAGE__.txt +9 -0
  330. pycatalyst-0.0.12/src/pycatalyst/ui/static/documentation/__next.documentation.txt +4 -0
  331. pycatalyst-0.0.12/src/pycatalyst/ui/static/documentation/index.html +1 -0
  332. pycatalyst-0.0.12/src/pycatalyst/ui/static/documentation/index.txt +22 -0
  333. pycatalyst-0.0.12/src/pycatalyst/ui/static/generate/__next._full.txt +22 -0
  334. pycatalyst-0.0.12/src/pycatalyst/ui/static/generate/__next._head.txt +5 -0
  335. pycatalyst-0.0.12/src/pycatalyst/ui/static/generate/__next._index.txt +10 -0
  336. pycatalyst-0.0.12/src/pycatalyst/ui/static/generate/__next._tree.txt +2 -0
  337. pycatalyst-0.0.12/src/pycatalyst/ui/static/generate/__next.generate.__PAGE__.txt +9 -0
  338. pycatalyst-0.0.12/src/pycatalyst/ui/static/generate/__next.generate.txt +4 -0
  339. pycatalyst-0.0.12/src/pycatalyst/ui/static/generate/index.html +1 -0
  340. pycatalyst-0.0.12/src/pycatalyst/ui/static/generate/index.txt +22 -0
  341. pycatalyst-0.0.12/src/pycatalyst/ui/static/index.html +1 -0
  342. pycatalyst-0.0.12/src/pycatalyst/ui/static/index.txt +22 -0
  343. pycatalyst-0.0.12/src/pycatalyst/ui/static/login/__next._full.txt +22 -0
  344. pycatalyst-0.0.12/src/pycatalyst/ui/static/login/__next._head.txt +5 -0
  345. pycatalyst-0.0.12/src/pycatalyst/ui/static/login/__next._index.txt +10 -0
  346. pycatalyst-0.0.12/src/pycatalyst/ui/static/login/__next._tree.txt +2 -0
  347. pycatalyst-0.0.12/src/pycatalyst/ui/static/login/__next.login.__PAGE__.txt +9 -0
  348. pycatalyst-0.0.12/src/pycatalyst/ui/static/login/__next.login.txt +4 -0
  349. pycatalyst-0.0.12/src/pycatalyst/ui/static/login/index.html +1 -0
  350. pycatalyst-0.0.12/src/pycatalyst/ui/static/login/index.txt +22 -0
  351. pycatalyst-0.0.12/src/pycatalyst/ui/static/model-training/__next._full.txt +22 -0
  352. pycatalyst-0.0.12/src/pycatalyst/ui/static/model-training/__next._head.txt +5 -0
  353. pycatalyst-0.0.12/src/pycatalyst/ui/static/model-training/__next._index.txt +10 -0
  354. pycatalyst-0.0.12/src/pycatalyst/ui/static/model-training/__next._tree.txt +2 -0
  355. pycatalyst-0.0.12/src/pycatalyst/ui/static/model-training/__next.model-training.__PAGE__.txt +9 -0
  356. pycatalyst-0.0.12/src/pycatalyst/ui/static/model-training/__next.model-training.txt +4 -0
  357. pycatalyst-0.0.12/src/pycatalyst/ui/static/model-training/index.html +1 -0
  358. pycatalyst-0.0.12/src/pycatalyst/ui/static/model-training/index.txt +22 -0
  359. pycatalyst-0.0.12/src/pycatalyst/ui/static/recipes/__next._full.txt +22 -0
  360. pycatalyst-0.0.12/src/pycatalyst/ui/static/recipes/__next._head.txt +5 -0
  361. pycatalyst-0.0.12/src/pycatalyst/ui/static/recipes/__next._index.txt +10 -0
  362. pycatalyst-0.0.12/src/pycatalyst/ui/static/recipes/__next._tree.txt +2 -0
  363. pycatalyst-0.0.12/src/pycatalyst/ui/static/recipes/__next.recipes.__PAGE__.txt +9 -0
  364. pycatalyst-0.0.12/src/pycatalyst/ui/static/recipes/__next.recipes.txt +4 -0
  365. pycatalyst-0.0.12/src/pycatalyst/ui/static/recipes/index.html +1 -0
  366. pycatalyst-0.0.12/src/pycatalyst/ui/static/recipes/index.txt +22 -0
  367. pycatalyst-0.0.12/src/pycatalyst/ui/static/schemas/__next._full.txt +22 -0
  368. pycatalyst-0.0.12/src/pycatalyst/ui/static/schemas/__next._head.txt +5 -0
  369. pycatalyst-0.0.12/src/pycatalyst/ui/static/schemas/__next._index.txt +10 -0
  370. pycatalyst-0.0.12/src/pycatalyst/ui/static/schemas/__next._tree.txt +2 -0
  371. pycatalyst-0.0.12/src/pycatalyst/ui/static/schemas/__next.schemas.__PAGE__.txt +9 -0
  372. pycatalyst-0.0.12/src/pycatalyst/ui/static/schemas/__next.schemas.txt +4 -0
  373. pycatalyst-0.0.12/src/pycatalyst/ui/static/schemas/index.html +1 -0
  374. pycatalyst-0.0.12/src/pycatalyst/ui/static/schemas/index.txt +22 -0
  375. pycatalyst-0.0.12/src/pycatalyst/ui/static/settings/__next._full.txt +22 -0
  376. pycatalyst-0.0.12/src/pycatalyst/ui/static/settings/__next._head.txt +5 -0
  377. pycatalyst-0.0.12/src/pycatalyst/ui/static/settings/__next._index.txt +10 -0
  378. pycatalyst-0.0.12/src/pycatalyst/ui/static/settings/__next._tree.txt +2 -0
  379. pycatalyst-0.0.12/src/pycatalyst/ui/static/settings/__next.settings.__PAGE__.txt +9 -0
  380. pycatalyst-0.0.12/src/pycatalyst/ui/static/settings/__next.settings.txt +4 -0
  381. pycatalyst-0.0.12/src/pycatalyst/ui/static/settings/index.html +1 -0
  382. pycatalyst-0.0.12/src/pycatalyst/ui/static/settings/index.txt +22 -0
  383. pycatalyst-0.0.12/src/pycatalyst/ui/static/sinks/__next._full.txt +22 -0
  384. pycatalyst-0.0.12/src/pycatalyst/ui/static/sinks/__next._head.txt +5 -0
  385. pycatalyst-0.0.12/src/pycatalyst/ui/static/sinks/__next._index.txt +10 -0
  386. pycatalyst-0.0.12/src/pycatalyst/ui/static/sinks/__next._tree.txt +2 -0
  387. pycatalyst-0.0.12/src/pycatalyst/ui/static/sinks/__next.sinks.__PAGE__.txt +9 -0
  388. pycatalyst-0.0.12/src/pycatalyst/ui/static/sinks/__next.sinks.txt +4 -0
  389. pycatalyst-0.0.12/src/pycatalyst/ui/static/sinks/index.html +1 -0
  390. pycatalyst-0.0.12/src/pycatalyst/ui/static/sinks/index.txt +22 -0
  391. pycatalyst-0.0.12/src/pycatalyst/ui/static/workbench/__next._full.txt +23 -0
  392. pycatalyst-0.0.12/src/pycatalyst/ui/static/workbench/__next._head.txt +5 -0
  393. pycatalyst-0.0.12/src/pycatalyst/ui/static/workbench/__next._index.txt +10 -0
  394. pycatalyst-0.0.12/src/pycatalyst/ui/static/workbench/__next._tree.txt +3 -0
  395. pycatalyst-0.0.12/src/pycatalyst/ui/static/workbench/__next.workbench.__PAGE__.txt +10 -0
  396. pycatalyst-0.0.12/src/pycatalyst/ui/static/workbench/__next.workbench.txt +4 -0
  397. pycatalyst-0.0.12/src/pycatalyst/ui/static/workbench/index.html +1 -0
  398. pycatalyst-0.0.12/src/pycatalyst/ui/static/workbench/index.txt +23 -0
  399. pycatalyst-0.0.12/src/pycatalyst/ui/tailwind.config.js +100 -0
  400. pycatalyst-0.0.12/src/pycatalyst/ui/tsconfig.tsbuildinfo +1 -0
  401. pycatalyst-0.0.12/src/pycatalyst.egg-info/PKG-INFO +212 -0
  402. pycatalyst-0.0.12/src/pycatalyst.egg-info/SOURCES.txt +578 -0
  403. pycatalyst-0.0.12/src/pycatalyst.egg-info/requires.txt +105 -0
  404. pycatalyst-0.0.12/tests/integration/test_catalyst_store_sqlite.py +221 -0
  405. pycatalyst-0.0.12/tests/unit/__init__.py +0 -0
  406. pycatalyst-0.0.12/tests/unit/test_api.py +309 -0
  407. pycatalyst-0.0.12/tests/unit/test_artifact_store.py +220 -0
  408. pycatalyst-0.0.12/tests/unit/test_auth.py +181 -0
  409. pycatalyst-0.0.12/tests/unit/test_base_trainer.py +245 -0
  410. pycatalyst-0.0.12/tests/unit/test_catalyst_store.py +394 -0
  411. pycatalyst-0.0.12/tests/unit/test_generators.py +458 -0
  412. pycatalyst-0.0.12/tests/unit/test_ml_protocols.py +109 -0
  413. pycatalyst-0.0.12/tests/unit/test_ml_registry.py +54 -0
  414. pycatalyst-0.0.12/tests/unit/test_ml_results.py +223 -0
  415. pycatalyst-0.0.12/tests/unit/test_ml_types.py +71 -0
  416. pycatalyst-0.0.12/tests/unit/test_panel_data.py +162 -0
  417. pycatalyst-0.0.12/tests/unit/test_panel_dataset.py +79 -0
  418. pycatalyst-0.0.12/tests/unit/test_panel_pipeline.py +109 -0
  419. pycatalyst-0.0.12/tests/unit/test_panel_scaler.py +116 -0
  420. pycatalyst-0.0.12/tests/unit/test_profiles.py +95 -0
  421. pycatalyst-0.0.12/tests/unit/test_pytorch_trainer.py +156 -0
  422. pycatalyst-0.0.12/tests/unit/test_pytorch_trainer_fit_predict.py +143 -0
  423. pycatalyst-0.0.12/tests/unit/test_service_containers.py +663 -0
  424. pycatalyst-0.0.12/tests/unit/test_service_routes.py +276 -0
  425. pycatalyst-0.0.12/tests/unit/test_sklearn_trainer.py +209 -0
  426. pycatalyst-0.0.12/tests/unit/test_streaming_core.py +76 -0
  427. pycatalyst-0.0.12/tests/unit/test_types.py +348 -0
  428. pycatalyst-0.0.12/tests/unit/test_venv_backend.py +262 -0
  429. pycatalyst-0.0.12/tests/unit/test_workbench_manager.py +373 -0
  430. pycatalyst-0.0.12/tests/unit/test_workbench_routes.py +492 -0
  431. pycatalyst-0.0.9.dev0/.github/workflows/publish.yml +0 -94
  432. pycatalyst-0.0.9.dev0/.gitignore +0 -50
  433. pycatalyst-0.0.9.dev0/PKG-INFO +0 -129
  434. pycatalyst-0.0.9.dev0/README.md +0 -42
  435. pycatalyst-0.0.9.dev0/docs/PUBLISHING.md +0 -90
  436. pycatalyst-0.0.9.dev0/pycatalyst.cfg +0 -67
  437. pycatalyst-0.0.9.dev0/pycatalyst.cfg.example +0 -67
  438. pycatalyst-0.0.9.dev0/pyproject.toml +0 -261
  439. pycatalyst-0.0.9.dev0/setup.sh +0 -160
  440. pycatalyst-0.0.9.dev0/src/pycatalyst/__init__.py +0 -100
  441. pycatalyst-0.0.9.dev0/src/pycatalyst/_types.py +0 -401
  442. pycatalyst-0.0.9.dev0/src/pycatalyst/api/dependencies/__init__.py +0 -8
  443. pycatalyst-0.0.9.dev0/src/pycatalyst/api/dependencies/auth.py +0 -143
  444. pycatalyst-0.0.9.dev0/src/pycatalyst/api/main.py +0 -176
  445. pycatalyst-0.0.9.dev0/src/pycatalyst/api/models/responses.py +0 -20
  446. pycatalyst-0.0.9.dev0/src/pycatalyst/api/routes/v1/auth.py +0 -85
  447. pycatalyst-0.0.9.dev0/src/pycatalyst/api/routes/v1/generate.py +0 -100
  448. pycatalyst-0.0.9.dev0/src/pycatalyst/api/routes/v1/settings.py +0 -27
  449. pycatalyst-0.0.9.dev0/src/pycatalyst/api/routes/v1/workbench.py +0 -528
  450. pycatalyst-0.0.9.dev0/src/pycatalyst/cli.py +0 -309
  451. pycatalyst-0.0.9.dev0/src/pycatalyst/config/__init__.py +0 -37
  452. pycatalyst-0.0.9.dev0/src/pycatalyst/config/auth.py +0 -68
  453. pycatalyst-0.0.9.dev0/src/pycatalyst/config/workbench.py +0 -147
  454. pycatalyst-0.0.9.dev0/src/pycatalyst/db/migrations/env.py +0 -62
  455. pycatalyst-0.0.9.dev0/src/pycatalyst/db/models/__init__.py +0 -7
  456. pycatalyst-0.0.9.dev0/src/pycatalyst/errors.py +0 -243
  457. pycatalyst-0.0.9.dev0/src/pycatalyst/generators/engine.py +0 -110
  458. pycatalyst-0.0.9.dev0/src/pycatalyst/generators/scalar.py +0 -206
  459. pycatalyst-0.0.9.dev0/src/pycatalyst/py.typed +0 -1
  460. pycatalyst-0.0.9.dev0/src/pycatalyst/schema/inferrer.py +0 -253
  461. pycatalyst-0.0.9.dev0/src/pycatalyst/services/backends/base.py +0 -152
  462. pycatalyst-0.0.9.dev0/src/pycatalyst/services/backends/docker_backend.py +0 -283
  463. pycatalyst-0.0.9.dev0/src/pycatalyst/services/backends/venv_backend.py +0 -305
  464. pycatalyst-0.0.9.dev0/src/pycatalyst/services/workbench_manager.py +0 -400
  465. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/dev.py +0 -40
  466. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/404/index.html +0 -1
  467. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/404.html +0 -1
  468. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/__next.__PAGE__.txt +0 -9
  469. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/__next._full.txt +0 -22
  470. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/__next._head.txt +0 -5
  471. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/__next._index.txt +0 -10
  472. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/__next._tree.txt +0 -2
  473. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/0664a23cd6a5f7ba.js +0 -34
  474. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/31674d9a34dac40b.js +0 -2
  475. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/33dc0ae90f863979.js +0 -1
  476. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/3db2622c9e17684f.js +0 -1
  477. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/48f408d5c9d2a0ba.js +0 -1
  478. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/4a93e9c0c43d24a7.css +0 -2
  479. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/826946f349a354cd.js +0 -24
  480. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/88a6dfcd964f4302.js +0 -73
  481. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/ab52a6590efbe138.js +0 -1
  482. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/ace5f280042c2f7a.js +0 -1
  483. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/b82d3555a0c5ad54.js +0 -1
  484. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/c0645d6fea057384.js +0 -1
  485. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/c6ac0e3a3d0e355f.js +0 -5
  486. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/cd046009fa99a225.js +0 -1
  487. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/d2be314c3ece3fbe.js +0 -1
  488. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/de634c2407095732.js +0 -5
  489. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/chunks/turbopack-dc3a2def751ab70b.js +0 -4
  490. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_not-found/__next._full.txt +0 -19
  491. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_not-found/__next._head.txt +0 -5
  492. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_not-found/__next._index.txt +0 -10
  493. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_not-found/__next._not-found.__PAGE__.txt +0 -5
  494. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_not-found/__next._not-found.txt +0 -4
  495. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_not-found/__next._tree.txt +0 -2
  496. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_not-found/index.html +0 -1
  497. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_not-found/index.txt +0 -19
  498. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/documentation/__next._full.txt +0 -22
  499. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/documentation/__next._head.txt +0 -5
  500. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/documentation/__next._index.txt +0 -10
  501. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/documentation/__next._tree.txt +0 -2
  502. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/documentation/__next.documentation.__PAGE__.txt +0 -9
  503. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/documentation/__next.documentation.txt +0 -4
  504. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/documentation/index.html +0 -1
  505. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/documentation/index.txt +0 -22
  506. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/generate/__next._full.txt +0 -22
  507. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/generate/__next._head.txt +0 -5
  508. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/generate/__next._index.txt +0 -10
  509. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/generate/__next._tree.txt +0 -2
  510. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/generate/__next.generate.__PAGE__.txt +0 -9
  511. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/generate/__next.generate.txt +0 -4
  512. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/generate/index.html +0 -1
  513. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/generate/index.txt +0 -22
  514. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/index.html +0 -1
  515. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/index.txt +0 -22
  516. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/login/__next._full.txt +0 -22
  517. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/login/__next._head.txt +0 -5
  518. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/login/__next._index.txt +0 -10
  519. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/login/__next._tree.txt +0 -2
  520. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/login/__next.login.__PAGE__.txt +0 -9
  521. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/login/__next.login.txt +0 -4
  522. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/login/index.html +0 -1
  523. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/login/index.txt +0 -22
  524. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/recipes/__next._full.txt +0 -22
  525. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/recipes/__next._head.txt +0 -5
  526. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/recipes/__next._index.txt +0 -10
  527. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/recipes/__next._tree.txt +0 -2
  528. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/recipes/__next.recipes.__PAGE__.txt +0 -9
  529. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/recipes/__next.recipes.txt +0 -4
  530. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/recipes/index.html +0 -1
  531. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/recipes/index.txt +0 -22
  532. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/schemas/__next._full.txt +0 -22
  533. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/schemas/__next._head.txt +0 -5
  534. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/schemas/__next._index.txt +0 -10
  535. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/schemas/__next._tree.txt +0 -2
  536. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/schemas/__next.schemas.__PAGE__.txt +0 -9
  537. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/schemas/__next.schemas.txt +0 -4
  538. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/schemas/index.html +0 -1
  539. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/schemas/index.txt +0 -22
  540. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/settings/__next._full.txt +0 -22
  541. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/settings/__next._head.txt +0 -5
  542. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/settings/__next._index.txt +0 -10
  543. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/settings/__next._tree.txt +0 -2
  544. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/settings/__next.settings.__PAGE__.txt +0 -9
  545. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/settings/__next.settings.txt +0 -4
  546. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/settings/index.html +0 -1
  547. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/settings/index.txt +0 -22
  548. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/sinks/__next._full.txt +0 -22
  549. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/sinks/__next._head.txt +0 -5
  550. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/sinks/__next._index.txt +0 -10
  551. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/sinks/__next._tree.txt +0 -2
  552. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/sinks/__next.sinks.__PAGE__.txt +0 -9
  553. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/sinks/__next.sinks.txt +0 -4
  554. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/sinks/index.html +0 -1
  555. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/sinks/index.txt +0 -22
  556. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/workbench/__next._full.txt +0 -23
  557. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/workbench/__next._head.txt +0 -5
  558. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/workbench/__next._index.txt +0 -10
  559. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/workbench/__next._tree.txt +0 -3
  560. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/workbench/__next.workbench.__PAGE__.txt +0 -10
  561. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/workbench/__next.workbench.txt +0 -4
  562. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/workbench/index.html +0 -1
  563. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/workbench/index.txt +0 -23
  564. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/package-lock.json +0 -6687
  565. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/package.json +0 -39
  566. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/app/documentation/page.tsx +0 -212
  567. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/app/generate/page.tsx +0 -303
  568. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/app/page.tsx +0 -93
  569. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/app/recipes/page.tsx +0 -220
  570. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/app/schemas/page.tsx +0 -210
  571. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/app/settings/page.tsx +0 -102
  572. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/app/workbench/page.tsx +0 -626
  573. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/components/layout/Navigation.tsx +0 -187
  574. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/components/workbench/WorkbenchToolbar.tsx +0 -219
  575. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/lib/api.ts +0 -155
  576. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/lib/constants.ts +0 -42
  577. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/lib/types/index.ts +0 -71
  578. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/src/lib/workbench.ts +0 -191
  579. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/404/index.html +0 -1
  580. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/404.html +0 -1
  581. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/__next.__PAGE__.txt +0 -9
  582. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/__next._full.txt +0 -22
  583. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/__next._head.txt +0 -5
  584. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/__next._index.txt +0 -10
  585. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/__next._tree.txt +0 -2
  586. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/0664a23cd6a5f7ba.js +0 -34
  587. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/31674d9a34dac40b.js +0 -2
  588. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/33dc0ae90f863979.js +0 -1
  589. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/3db2622c9e17684f.js +0 -1
  590. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/48f408d5c9d2a0ba.js +0 -1
  591. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/4a93e9c0c43d24a7.css +0 -2
  592. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/826946f349a354cd.js +0 -24
  593. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/88a6dfcd964f4302.js +0 -73
  594. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/ab52a6590efbe138.js +0 -1
  595. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/ace5f280042c2f7a.js +0 -1
  596. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/b82d3555a0c5ad54.js +0 -1
  597. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/c0645d6fea057384.js +0 -1
  598. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/c6ac0e3a3d0e355f.js +0 -5
  599. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/cd046009fa99a225.js +0 -1
  600. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/d2be314c3ece3fbe.js +0 -1
  601. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/de634c2407095732.js +0 -5
  602. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/chunks/turbopack-dc3a2def751ab70b.js +0 -4
  603. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_not-found/__next._full.txt +0 -19
  604. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_not-found/__next._head.txt +0 -5
  605. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_not-found/__next._index.txt +0 -10
  606. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_not-found/__next._not-found.__PAGE__.txt +0 -5
  607. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_not-found/__next._not-found.txt +0 -4
  608. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_not-found/__next._tree.txt +0 -2
  609. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_not-found/index.html +0 -1
  610. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_not-found/index.txt +0 -19
  611. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/documentation/__next._full.txt +0 -22
  612. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/documentation/__next._head.txt +0 -5
  613. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/documentation/__next._index.txt +0 -10
  614. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/documentation/__next._tree.txt +0 -2
  615. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/documentation/__next.documentation.__PAGE__.txt +0 -9
  616. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/documentation/__next.documentation.txt +0 -4
  617. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/documentation/index.html +0 -1
  618. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/documentation/index.txt +0 -22
  619. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/generate/__next._full.txt +0 -22
  620. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/generate/__next._head.txt +0 -5
  621. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/generate/__next._index.txt +0 -10
  622. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/generate/__next._tree.txt +0 -2
  623. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/generate/__next.generate.__PAGE__.txt +0 -9
  624. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/generate/__next.generate.txt +0 -4
  625. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/generate/index.html +0 -1
  626. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/generate/index.txt +0 -22
  627. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/index.html +0 -1
  628. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/index.txt +0 -22
  629. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/login/__next._full.txt +0 -22
  630. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/login/__next._head.txt +0 -5
  631. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/login/__next._index.txt +0 -10
  632. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/login/__next._tree.txt +0 -2
  633. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/login/__next.login.__PAGE__.txt +0 -9
  634. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/login/__next.login.txt +0 -4
  635. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/login/index.html +0 -1
  636. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/login/index.txt +0 -22
  637. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/recipes/__next._full.txt +0 -22
  638. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/recipes/__next._head.txt +0 -5
  639. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/recipes/__next._index.txt +0 -10
  640. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/recipes/__next._tree.txt +0 -2
  641. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/recipes/__next.recipes.__PAGE__.txt +0 -9
  642. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/recipes/__next.recipes.txt +0 -4
  643. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/recipes/index.html +0 -1
  644. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/recipes/index.txt +0 -22
  645. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/schemas/__next._full.txt +0 -22
  646. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/schemas/__next._head.txt +0 -5
  647. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/schemas/__next._index.txt +0 -10
  648. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/schemas/__next._tree.txt +0 -2
  649. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/schemas/__next.schemas.__PAGE__.txt +0 -9
  650. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/schemas/__next.schemas.txt +0 -4
  651. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/schemas/index.html +0 -1
  652. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/schemas/index.txt +0 -22
  653. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/settings/__next._full.txt +0 -22
  654. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/settings/__next._head.txt +0 -5
  655. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/settings/__next._index.txt +0 -10
  656. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/settings/__next._tree.txt +0 -2
  657. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/settings/__next.settings.__PAGE__.txt +0 -9
  658. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/settings/__next.settings.txt +0 -4
  659. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/settings/index.html +0 -1
  660. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/settings/index.txt +0 -22
  661. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/sinks/__next._full.txt +0 -22
  662. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/sinks/__next._head.txt +0 -5
  663. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/sinks/__next._index.txt +0 -10
  664. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/sinks/__next._tree.txt +0 -2
  665. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/sinks/__next.sinks.__PAGE__.txt +0 -9
  666. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/sinks/__next.sinks.txt +0 -4
  667. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/sinks/index.html +0 -1
  668. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/sinks/index.txt +0 -22
  669. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/workbench/__next._full.txt +0 -23
  670. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/workbench/__next._head.txt +0 -5
  671. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/workbench/__next._index.txt +0 -10
  672. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/workbench/__next._tree.txt +0 -3
  673. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/workbench/__next.workbench.__PAGE__.txt +0 -10
  674. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/workbench/__next.workbench.txt +0 -4
  675. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/workbench/index.html +0 -1
  676. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/workbench/index.txt +0 -23
  677. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/tailwind.config.js +0 -74
  678. pycatalyst-0.0.9.dev0/src/pycatalyst/ui/tsconfig.tsbuildinfo +0 -1
  679. pycatalyst-0.0.9.dev0/src/pycatalyst.egg-info/PKG-INFO +0 -129
  680. pycatalyst-0.0.9.dev0/src/pycatalyst.egg-info/SOURCES.txt +0 -405
  681. pycatalyst-0.0.9.dev0/src/pycatalyst.egg-info/requires.txt +0 -76
  682. pycatalyst-0.0.9.dev0/tests/unit/test_api.py +0 -272
  683. pycatalyst-0.0.9.dev0/tests/unit/test_generators.py +0 -392
  684. pycatalyst-0.0.9.dev0/tests/unit/test_types.py +0 -326
  685. pycatalyst-0.0.9.dev0/tests/unit/test_venv_backend.py +0 -223
  686. pycatalyst-0.0.9.dev0/tests/unit/test_workbench_manager.py +0 -319
  687. pycatalyst-0.0.9.dev0/tests/unit/test_workbench_routes.py +0 -378
  688. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/.github/workflows/README.md +0 -0
  689. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/.github/workflows/test.yml +0 -0
  690. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/.pre-commit-config.yaml +0 -0
  691. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/CHANGELOG.md +0 -0
  692. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/CONTRIBUTING.md +0 -0
  693. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/LICENSE +0 -0
  694. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/Makefile +0 -0
  695. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/scripts/publish-once.sh +0 -0
  696. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/setup.cfg +0 -0
  697. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/_protocols.py +0 -0
  698. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/api/__init__.py +0 -0
  699. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/api/dependencies/database.py +0 -0
  700. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/api/models/__init__.py +0 -0
  701. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/api/models/requests.py +0 -0
  702. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/api/routes/__init__.py +0 -0
  703. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/api/routes/v1/__init__.py +0 -0
  704. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/api/routes/v1/infer.py +0 -0
  705. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/api/routes/v1/recipes.py +0 -0
  706. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/config/database.py +0 -0
  707. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/config/paths.py +0 -0
  708. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/config/ui.py +0 -0
  709. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/data/seed/.gitkeep +0 -0
  710. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/data/templates/recipes/pycharter_contracts.yaml +0 -0
  711. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/data/templates/recipes/pyoptima_portfolio.yaml +0 -0
  712. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/data/templates/recipes/pystator_events.yaml +0 -0
  713. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/db/__init__.py +0 -0
  714. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/db/base.py +0 -0
  715. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/db/cli.py +0 -0
  716. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/db/config.py +0 -0
  717. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/db/migrations/__init__.py +0 -0
  718. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/db/migrations/versions/20260101000000_initial.py +0 -0
  719. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/db/migrations/versions/__init__.py +0 -0
  720. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/db/models/app_metadata.py +0 -0
  721. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/db/paths.py +0 -0
  722. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/generators/__init__.py +0 -0
  723. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/generators/compound.py +0 -0
  724. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/generators/registry.py +0 -0
  725. /pycatalyst-0.0.9.dev0/src/pycatalyst/recipes/__init__.py → /pycatalyst-0.0.12/src/pycatalyst/py.typed +0 -0
  726. {pycatalyst-0.0.9.dev0/src/pycatalyst/schema → pycatalyst-0.0.12/src/pycatalyst/recipes}/__init__.py +0 -0
  727. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/recipes/loader.py +0 -0
  728. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/recipes/models.py +0 -0
  729. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/recipes/runner.py +0 -0
  730. {pycatalyst-0.0.9.dev0/src/pycatalyst/sinks → pycatalyst-0.0.12/src/pycatalyst/schema}/__init__.py +0 -0
  731. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/schema/json_schema.py +0 -0
  732. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/schema/pydantic.py +0 -0
  733. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/schema/spec.py +0 -0
  734. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/services/__init__.py +0 -0
  735. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/services/backends/__init__.py +0 -0
  736. {pycatalyst-0.0.9.dev0/src/pycatalyst/worker → pycatalyst-0.0.12/src/pycatalyst/sinks}/__init__.py +0 -0
  737. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/sinks/database.py +0 -0
  738. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/sinks/file.py +0 -0
  739. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/sinks/http.py +0 -0
  740. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/sinks/kafka.py +0 -0
  741. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/sinks/memory.py +0 -0
  742. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/sinks/rabbitmq.py +0 -0
  743. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/.eslintrc.json +0 -0
  744. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/.npmrc +0 -0
  745. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/__init__.py +0 -0
  746. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/build.py +0 -0
  747. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/components.json +0 -0
  748. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/next-env.d.ts +0 -0
  749. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/next.config.js +0 -0
  750. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/node_modules/flatted/python/flatted.py +0 -0
  751. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/out/_next/static/chunks/0575f275776d153c.js +0 -0
  752. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/out/_next/static/chunks/612195d87a9f708e.js +0 -0
  753. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/out/_next/static/chunks/82abf2d65f5428ae.js +0 -0
  754. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/out/_next/static/chunks/a6dad97d9634a72d.js +0 -0
  755. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/out/_next/static/chunks/a6dad97d9634a72d.js.map +0 -0
  756. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/out/_next/static/chunks/b7b85a15f387ab7c.css +0 -0
  757. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/out/_next/static/chunks/cc784667b24a8c60.js +0 -0
  758. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/out/_next/static/chunks/f2f58a7e93290fbb.js +0 -0
  759. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/out/_next/static/chunks/ff1a16fafef87110.js +0 -0
  760. {pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/U_FdO2wSzlQs1kePdag6v → pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/wnhmrh4sg9FcLYFjS7Ozy}/_buildManifest.js +0 -0
  761. {pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/U_FdO2wSzlQs1kePdag6v → pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/wnhmrh4sg9FcLYFjS7Ozy}/_clientMiddlewareManifest.json +0 -0
  762. {pycatalyst-0.0.9.dev0/src/pycatalyst/ui/out/_next/static/U_FdO2wSzlQs1kePdag6v → pycatalyst-0.0.12/src/pycatalyst/ui/out/_next/static/wnhmrh4sg9FcLYFjS7Ozy}/_ssgManifest.js +0 -0
  763. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/postcss.config.js +0 -0
  764. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/server.py +0 -0
  765. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/app/error.tsx +0 -0
  766. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/app/globals.css +0 -0
  767. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/app/layout.tsx +0 -0
  768. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/app/loading.tsx +0 -0
  769. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/app/login/page.tsx +0 -0
  770. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/app/sinks/page.tsx +0 -0
  771. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/app/themes.css +0 -0
  772. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ThemeFromConfig.tsx +0 -0
  773. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ThemeSync.tsx +0 -0
  774. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/common/ErrorBoundary.tsx +0 -0
  775. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/common/ErrorDisplay.tsx +0 -0
  776. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/common/LoadingSpinner.tsx +0 -0
  777. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/common/index.ts +0 -0
  778. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/layout/ApiUnavailableBanner.tsx +0 -0
  779. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/layout/AppShell.tsx +0 -0
  780. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/layout/AuthGuard.tsx +0 -0
  781. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/layout/PageContainer.tsx +0 -0
  782. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/layout/PageHeader.tsx +0 -0
  783. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/layout/index.ts +0 -0
  784. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ui/alert.tsx +0 -0
  785. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ui/badge.tsx +0 -0
  786. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ui/button.tsx +0 -0
  787. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ui/card.tsx +0 -0
  788. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ui/input.tsx +0 -0
  789. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ui/label.tsx +0 -0
  790. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ui/skeleton.tsx +0 -0
  791. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ui/switch.tsx +0 -0
  792. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ui/tabs.tsx +0 -0
  793. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/ui/textarea.tsx +0 -0
  794. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/workbench/ContainerDialog.tsx +0 -0
  795. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/components/workbench/TerminalPanel.tsx +0 -0
  796. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/hooks/use-auth-init.ts +0 -0
  797. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/lib/auth-storage.ts +0 -0
  798. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/lib/settings.ts +0 -0
  799. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/lib/terminal-theme.ts +0 -0
  800. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/lib/utils.ts +0 -0
  801. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/lib/workbench-storage.ts +0 -0
  802. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/stores/app-config.ts +0 -0
  803. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/stores/auth.ts +0 -0
  804. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/stores/index.ts +0 -0
  805. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/src/types/global.d.ts +0 -0
  806. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/static/_next/static/chunks/0575f275776d153c.js +0 -0
  807. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/static/_next/static/chunks/612195d87a9f708e.js +0 -0
  808. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/static/_next/static/chunks/82abf2d65f5428ae.js +0 -0
  809. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/static/_next/static/chunks/a6dad97d9634a72d.js +0 -0
  810. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/static/_next/static/chunks/a6dad97d9634a72d.js.map +0 -0
  811. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/static/_next/static/chunks/b7b85a15f387ab7c.css +0 -0
  812. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/static/_next/static/chunks/cc784667b24a8c60.js +0 -0
  813. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/static/_next/static/chunks/f2f58a7e93290fbb.js +0 -0
  814. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/static/_next/static/chunks/ff1a16fafef87110.js +0 -0
  815. {pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/U_FdO2wSzlQs1kePdag6v → pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/wnhmrh4sg9FcLYFjS7Ozy}/_buildManifest.js +0 -0
  816. {pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/U_FdO2wSzlQs1kePdag6v → pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/wnhmrh4sg9FcLYFjS7Ozy}/_clientMiddlewareManifest.json +0 -0
  817. {pycatalyst-0.0.9.dev0/src/pycatalyst/ui/static/_next/static/U_FdO2wSzlQs1kePdag6v → pycatalyst-0.0.12/src/pycatalyst/ui/static/_next/static/wnhmrh4sg9FcLYFjS7Ozy}/_ssgManifest.js +0 -0
  818. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst/ui/tsconfig.json +0 -0
  819. {pycatalyst-0.0.9.dev0/tests/integration → pycatalyst-0.0.12/src/pycatalyst/worker}/__init__.py +0 -0
  820. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst.egg-info/dependency_links.txt +0 -0
  821. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst.egg-info/entry_points.txt +0 -0
  822. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/src/pycatalyst.egg-info/top_level.txt +0 -0
  823. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/__init__.py +0 -0
  824. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/conftest.py +0 -0
  825. {pycatalyst-0.0.9.dev0/tests/unit → pycatalyst-0.0.12/tests/integration}/__init__.py +0 -0
  826. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/test_version.py +0 -0
  827. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_database_sink.py +0 -0
  828. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_errors.py +0 -0
  829. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_file_sink.py +0 -0
  830. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_http_sink.py +0 -0
  831. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_kafka_sink.py +0 -0
  832. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_protocols.py +0 -0
  833. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_rabbitmq_sink.py +0 -0
  834. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_recipes.py +0 -0
  835. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_schema.py +0 -0
  836. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_scrollback_buffer.py +0 -0
  837. {pycatalyst-0.0.9.dev0 → pycatalyst-0.0.12}/tests/unit/test_sinks.py +0 -0
@@ -0,0 +1,99 @@
1
+ # Build and publish to PyPI when a version tag (v*) is pushed.
2
+ # Also supports manual run (workflow_dispatch).
3
+ # Version is derived from the git tag by setuptools-scm.
4
+
5
+ name: Build and Publish
6
+
7
+ on:
8
+ push:
9
+ tags: ['v*']
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ id-token: write
14
+ contents: write
15
+
16
+ jobs:
17
+ build-and-publish:
18
+ name: Build and Publish to PyPI
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - name: Checkout
22
+ uses: actions/checkout@v4
23
+ with:
24
+ fetch-depth: 0
25
+ # Build from the release tag so setuptools-scm produces a full release version (not .dev)
26
+ ref: ${{ github.event_name == 'release' && github.event.release.tag_name || github.ref }}
27
+
28
+ - name: Set version from tag
29
+ if: startsWith(github.ref, 'refs/tags/')
30
+ run: echo "SETUPTOOLS_SCM_PRETEND_VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
31
+
32
+ - name: Set up Python
33
+ uses: actions/setup-python@v5
34
+ with:
35
+ python-version: '3.12'
36
+ cache: 'pip'
37
+ cache-dependency-path: pyproject.toml
38
+
39
+ - name: Install dependencies and run tests
40
+ run: |
41
+ python -m pip install --upgrade pip
42
+ pip install -e ".[dev]"
43
+ pytest
44
+
45
+ - name: Set up Node.js
46
+ if: hashFiles('src/pycatalyst/ui/package.json') != ''
47
+ uses: actions/setup-node@v4
48
+ with:
49
+ node-version: '20'
50
+ cache: 'npm'
51
+ cache-dependency-path: src/pycatalyst/ui/package-lock.json
52
+
53
+ - name: Install UI dependencies
54
+ if: hashFiles('src/pycatalyst/ui/package.json') != ''
55
+ run: |
56
+ cd src/pycatalyst/ui
57
+ npm ci
58
+
59
+ - name: Build UI
60
+ if: hashFiles('src/pycatalyst/ui/package.json') != ''
61
+ run: |
62
+ cd src/pycatalyst/ui
63
+ npm run build
64
+
65
+ - name: Copy UI build to static
66
+ if: hashFiles('src/pycatalyst/ui/package.json') != ''
67
+ run: |
68
+ if [ -d src/pycatalyst/ui/out ] && [ -f src/pycatalyst/ui/out/index.html ]; then
69
+ rm -rf src/pycatalyst/ui/static
70
+ cp -r src/pycatalyst/ui/out src/pycatalyst/ui/static
71
+ fi
72
+
73
+ - name: Install build tools
74
+ run: pip install build
75
+
76
+ - name: Build package
77
+ run: python -m build
78
+
79
+ - name: Verify package
80
+ run: |
81
+ python -m zipfile -l dist/pycatalyst-*.whl | head -30
82
+ echo "Package built successfully"
83
+
84
+ # Only publish to PyPI when building from a tag (official release). Skip for workflow_dispatch so we don't publish dev versions as pre-release.
85
+ - name: Publish to PyPI
86
+ if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'release'
87
+ uses: pypa/gh-action-pypi-publish@release/v1
88
+ with:
89
+ packages-dir: dist/
90
+
91
+ - name: Create GitHub Release
92
+ if: startsWith(github.ref, 'refs/tags/') && github.event_name != 'release'
93
+ uses: softprops/action-gh-release@v2.4.2
94
+ with:
95
+ tag_name: ${{ github.ref_name }}
96
+ name: ${{ github.ref_name }}
97
+ generate_release_notes: true
98
+ env:
99
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,280 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Python (GitHub gitignore template)
3
+ # https://github.com/github/gitignore/blob/main/Python.gitignore
4
+ # -----------------------------------------------------------------------------
5
+ # Byte-compiled / optimized / DLL files
6
+ __pycache__/
7
+ *.py[cod]
8
+ *$py.class
9
+
10
+ # C extensions
11
+ *.so
12
+
13
+ # Distribution / packaging
14
+ .Python
15
+ /build/
16
+ /develop-eggs/
17
+ /dist/
18
+ /downloads/
19
+ /eggs/
20
+ /.eggs/
21
+ /lib/
22
+ /lib64/
23
+ /parts/
24
+ /sdist/
25
+ /var/
26
+ /wheels/
27
+ /share/python-wheels/
28
+ *.egg-info/
29
+ .installed.cfg
30
+ *.egg
31
+ MANIFEST
32
+
33
+ # PyInstaller
34
+ *.manifest
35
+ *.spec
36
+
37
+ # Installer logs
38
+ pip-log.txt
39
+ pip-delete-this-directory.txt
40
+
41
+ # Unit test / coverage reports
42
+ htmlcov/
43
+ .tox/
44
+ .nox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ *.py.cover
52
+ .hypothesis/
53
+ .pytest_cache/
54
+ cover/
55
+
56
+ # Translations
57
+ *.mo
58
+ *.pot
59
+
60
+ # Django
61
+ *.log
62
+ local_settings.py
63
+ db.sqlite3
64
+ db.sqlite3-journal
65
+ # Local SQLite DB (default when no DB URL configured)
66
+ pycatalyst.db
67
+ *.db
68
+
69
+ # Flask
70
+ instance/
71
+ .webassets-cache
72
+
73
+ # Scrapy
74
+ .scrapy
75
+
76
+ # Sphinx documentation
77
+ docs/_build/
78
+
79
+ # PyBuilder
80
+ .pybuilder/
81
+ target/
82
+
83
+ # Jupyter Notebook
84
+ .ipynb_checkpoints
85
+
86
+ # IPython
87
+ profile_default/
88
+ ipython_config.py
89
+
90
+ # pyenv
91
+ # .python-version
92
+
93
+ # pipenv
94
+ # Pipfile.lock
95
+
96
+ # poetry
97
+ # poetry.lock
98
+ # poetry.toml
99
+
100
+ # pdm
101
+ # pdm.lock
102
+ # pdm.toml
103
+ .pdm-python
104
+ .pdm-build/
105
+
106
+ # PEP 582
107
+ __pypackages__/
108
+
109
+ # Celery
110
+ celerybeat-schedule
111
+ celerybeat.pid
112
+
113
+ # Redis
114
+ *.rdb
115
+ *.aof
116
+ *.pid
117
+
118
+ # RabbitMQ
119
+ mnesia/
120
+ rabbitmq/
121
+ rabbitmq-data/
122
+
123
+ # SageMath
124
+ *.sage.py
125
+
126
+ # Environments
127
+ .env
128
+ .envrc
129
+ .env.local
130
+ .env.development
131
+ .env.test
132
+ .env.production
133
+ .env.staging
134
+ .env.*.local
135
+ .venv
136
+ env/
137
+ venv/
138
+ ENV/
139
+ env.bak/
140
+ venv.bak/
141
+
142
+ # Spyder
143
+ .spyderproject
144
+ .spyproject
145
+
146
+ # Rope
147
+ .ropeproject
148
+
149
+ # MkDocs
150
+ /site
151
+
152
+ # mypy
153
+ .mypy_cache/
154
+ .dmypy.json
155
+ dmypy.json
156
+
157
+ # Pyre
158
+ .pyre/
159
+
160
+ # pytype
161
+ .pytype/
162
+
163
+ # Cython
164
+ cython_debug/
165
+
166
+ # Ruff
167
+ .ruff_cache/
168
+
169
+ # PyPI
170
+ .pypirc
171
+
172
+ # -----------------------------------------------------------------------------
173
+ # JetBrains IDEs (GitHub Global/JetBrains.gitignore)
174
+ # -----------------------------------------------------------------------------
175
+ .idea/**/workspace.xml
176
+ .idea/**/tasks.xml
177
+ .idea/**/usage.statistics.xml
178
+ .idea/**/dictionaries
179
+ .idea/**/shelf
180
+ .idea/**/aws.xml
181
+ .idea/**/contentModel.xml
182
+ .idea/**/dataSources/
183
+ .idea/**/dataSources.ids
184
+ .idea/**/dataSources.local.xml
185
+ .idea/**/sqlDataSources.xml
186
+ .idea/**/dynamic.xml
187
+ .idea/**/uiDesigner.xml
188
+ .idea/**/dbnavigator.xml
189
+ .idea/**/gradle.xml
190
+ .idea/**/libraries
191
+ .idea/**/mongoSettings.xml
192
+ .idea/replstate.xml
193
+ .idea/sonarlint/
194
+ .idea/sonarlint.xml
195
+ .idea/httpRequests
196
+ http-client.private.env.json
197
+ .idea/caches/build_file_checksums.ser
198
+ .idea/.cache/.Apifox_Helper
199
+ .idea/ApifoxUploaderProjectSetting.xml
200
+ .idea/**/copilot.data.migration.*.xml
201
+ cmake-build-*/
202
+ *.iws
203
+ out/
204
+ .idea_modules/
205
+ atlassian-ide-plugin.xml
206
+ com_crashlytics_export_strings.xml
207
+ crashlytics.properties
208
+ crashlytics-build.properties
209
+ fabric.properties
210
+
211
+ # -----------------------------------------------------------------------------
212
+ # Visual Studio Code (GitHub Global/VisualStudioCode.gitignore)
213
+ # -----------------------------------------------------------------------------
214
+ .vscode/*
215
+ !.vscode/settings.json
216
+ !.vscode/tasks.json
217
+ !.vscode/launch.json
218
+ !.vscode/extensions.json
219
+ !.vscode/*.code-snippets
220
+ *.vsix
221
+
222
+ # Ignore entire IDE directories (keeps repo clean; remove if you want to share IDE config)
223
+ .idea/
224
+ .vscode/
225
+
226
+ # -----------------------------------------------------------------------------
227
+ # macOS (GitHub Global/macOS.gitignore)
228
+ # -----------------------------------------------------------------------------
229
+ .DS_Store
230
+ __MACOSX/
231
+ .AppleDouble
232
+ .LSOverride
233
+ Icon[ ]
234
+ ._*
235
+ .DocumentRevisions-V100
236
+ .fseventsd
237
+ .Spotlight-V100
238
+ .TemporaryItems
239
+ .Trashes
240
+ .VolumeIcon.icns
241
+ .com.apple.timemachine.donotpresent
242
+ .AppleDB
243
+ .AppleDesktop
244
+ Network Trash Folder
245
+ Temporary Items
246
+ .apdisk
247
+
248
+ # -----------------------------------------------------------------------------
249
+ # Windows (GitHub Global/Windows.gitignore)
250
+ # -----------------------------------------------------------------------------
251
+ Thumbs.db
252
+ Thumbs.db:encryptable
253
+ ehthumbs.db
254
+ ehthumbs_vista.db
255
+ *.stackdump
256
+ [Dd]esktop.ini
257
+ $RECYCLE.BIN/
258
+ *.cab
259
+ *.msi
260
+ *.msix
261
+ *.msm
262
+ *.msp
263
+ *.lnk
264
+
265
+ # -----------------------------------------------------------------------------
266
+ # Editor backups / misc
267
+ # -----------------------------------------------------------------------------
268
+ *.swp
269
+ *.swo
270
+ *~
271
+
272
+ # -----------------------------------------------------------------------------
273
+ # Project-specific (pycatalyst)
274
+ # -----------------------------------------------------------------------------
275
+ site/
276
+ src/pycatalyst/ui/.next/
277
+ src/pycatalyst/ui/out/
278
+ src/pycatalyst/ui/node_modules/
279
+ src/pycatalyst/ui/.env*.local
280
+ src/pycatalyst/ui/static/
@@ -0,0 +1,212 @@
1
+ Metadata-Version: 2.4
2
+ Name: pycatalyst
3
+ Version: 0.0.12
4
+ Summary: A schema-aware data generation and testing platform for Python
5
+ Author-email: StatFYI <contact@statfyi.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/optophi/pycatalyst
8
+ Project-URL: Documentation, https://optophi.github.io/pycatalyst/
9
+ Project-URL: Repository, https://github.com/optophi/pycatalyst
10
+ Project-URL: Issues, https://github.com/optophi/pycatalyst/issues
11
+ Project-URL: Changelog, https://github.com/optophi/pycatalyst/blob/main/CHANGELOG.md
12
+ Keywords: data-generation,testing,synthetic-data,schema,fake-data
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Typing :: Typed
21
+ Classifier: Topic :: Software Development :: Testing
22
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
23
+ Requires-Python: >=3.11
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: pyyaml>=6.0.0
27
+ Requires-Dist: exrex>=0.11.0
28
+ Provides-Extra: inference
29
+ Requires-Dist: pandas>=2.0.0; extra == "inference"
30
+ Provides-Extra: faker
31
+ Requires-Dist: faker>=20.0.0; extra == "faker"
32
+ Provides-Extra: parquet
33
+ Requires-Dist: pyarrow>=14.0.0; extra == "parquet"
34
+ Provides-Extra: http
35
+ Requires-Dist: httpx>=0.24.0; extra == "http"
36
+ Provides-Extra: kafka
37
+ Requires-Dist: confluent-kafka>=2.3.0; extra == "kafka"
38
+ Provides-Extra: rabbitmq
39
+ Requires-Dist: pika>=1.3.0; extra == "rabbitmq"
40
+ Provides-Extra: api
41
+ Requires-Dist: fastapi>=0.104.0; extra == "api"
42
+ Requires-Dist: uvicorn[standard]>=0.24.0; extra == "api"
43
+ Requires-Dist: pydantic>=2.0.0; extra == "api"
44
+ Requires-Dist: pydantic-settings>=2.0.0; extra == "api"
45
+ Requires-Dist: python-multipart>=0.0.6; extra == "api"
46
+ Requires-Dist: PyJWT>=2.8.0; extra == "api"
47
+ Requires-Dist: httpx>=0.24.0; extra == "api"
48
+ Requires-Dist: alembic>=1.13.0; extra == "api"
49
+ Requires-Dist: sqlalchemy>=2.0.0; extra == "api"
50
+ Provides-Extra: worker
51
+ Requires-Dist: alembic>=1.13.0; extra == "worker"
52
+ Requires-Dist: sqlalchemy>=2.0.0; extra == "worker"
53
+ Provides-Extra: ui
54
+ Requires-Dist: fastapi>=0.104.0; extra == "ui"
55
+ Requires-Dist: uvicorn[standard]>=0.24.0; extra == "ui"
56
+ Requires-Dist: httpx>=0.24.0; extra == "ui"
57
+ Requires-Dist: aiofiles>=23.0.0; extra == "ui"
58
+ Provides-Extra: workbench
59
+ Requires-Dist: pycatalyst[api,sandbox]; extra == "workbench"
60
+ Requires-Dist: ipython>=8.0.0; extra == "workbench"
61
+ Provides-Extra: sandbox
62
+ Requires-Dist: docker>=7.0.0; extra == "sandbox"
63
+ Provides-Extra: ml-core
64
+ Requires-Dist: torch>=2.0.0; extra == "ml-core"
65
+ Requires-Dist: numpy>=1.24.0; extra == "ml-core"
66
+ Requires-Dist: pandas>=2.0.0; extra == "ml-core"
67
+ Requires-Dist: matplotlib>=3.7.0; extra == "ml-core"
68
+ Requires-Dist: pydantic>=2.0.0; extra == "ml-core"
69
+ Requires-Dist: joblib>=1.3.0; extra == "ml-core"
70
+ Provides-Extra: ml-sklearn
71
+ Requires-Dist: pycatalyst[ml-core]; extra == "ml-sklearn"
72
+ Requires-Dist: scikit-learn>=1.3.0; extra == "ml-sklearn"
73
+ Provides-Extra: ml-llm
74
+ Requires-Dist: pycatalyst[ml-core]; extra == "ml-llm"
75
+ Requires-Dist: transformers>=4.36.0; extra == "ml-llm"
76
+ Requires-Dist: peft>=0.7.0; extra == "ml-llm"
77
+ Requires-Dist: datasets>=2.16.0; extra == "ml-llm"
78
+ Requires-Dist: accelerate>=0.25.0; extra == "ml-llm"
79
+ Provides-Extra: ml
80
+ Requires-Dist: pycatalyst[ml-core,ml-llm,ml-sklearn]; extra == "ml"
81
+ Provides-Extra: db
82
+ Requires-Dist: alembic>=1.13.0; extra == "db"
83
+ Requires-Dist: sqlalchemy>=2.0.0; extra == "db"
84
+ Provides-Extra: postgres
85
+ Requires-Dist: psycopg2-binary>=2.9.0; extra == "postgres"
86
+ Provides-Extra: mongodb
87
+ Requires-Dist: pymongo>=4.6.0; extra == "mongodb"
88
+ Provides-Extra: s3
89
+ Requires-Dist: boto3>=1.28.0; extra == "s3"
90
+ Provides-Extra: docs
91
+ Requires-Dist: mkdocs-material>=9.5.0; extra == "docs"
92
+ Requires-Dist: mkdocstrings[python]>=0.24.0; extra == "docs"
93
+ Provides-Extra: all
94
+ Requires-Dist: pycatalyst[api,db,docs,faker,http,inference,ml,mongodb,parquet,postgres,s3,sandbox,ui,workbench,worker]; extra == "all"
95
+ Provides-Extra: dev
96
+ Requires-Dist: pycatalyst[all]; extra == "dev"
97
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
98
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
99
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
100
+ Requires-Dist: hypothesis>=6.0.0; extra == "dev"
101
+ Requires-Dist: ruff>=0.9.0; extra == "dev"
102
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
103
+ Requires-Dist: pre-commit>=3.0.0; extra == "dev"
104
+ Requires-Dist: build>=0.10.0; extra == "dev"
105
+ Requires-Dist: twine>=4.0.0; extra == "dev"
106
+ Requires-Dist: types-PyYAML>=6.0.0; extra == "dev"
107
+ Requires-Dist: jupyterlab>=4.0.0; extra == "dev"
108
+ Requires-Dist: ipykernel>=6.0.0; extra == "dev"
109
+ Dynamic: license-file
110
+
111
+ # PyCatalyst
112
+
113
+ Schema-aware **data generation** and testing: recipes (YAML), REST API, optional UI, schema inference, and ML hooks.
114
+
115
+ ## Documentation
116
+
117
+ - **Published** (GitHub Pages): [optophi.github.io/pycatalyst](https://optophi.github.io/pycatalyst/) — start with **Getting Started → Quick Start**.
118
+ - **Local docs** (from repo root):
119
+
120
+ ```bash
121
+ pip install "pycatalyst[docs]"
122
+ pycatalyst docs serve
123
+ ```
124
+
125
+ Opens at [http://127.0.0.1:8007](http://127.0.0.1:8007) by default. Static site: `pycatalyst docs build` → `site/`.
126
+
127
+ - **Live API** (when the server is running): [http://127.0.0.1:8006/docs](http://127.0.0.1:8006/docs) (Swagger).
128
+
129
+ Tutorial index in the doc site: Quick Start, API authentication, generate, recipes, infer schema, workbench.
130
+
131
+ ## Installation
132
+
133
+ ```bash
134
+ pip install pycatalyst
135
+ ```
136
+
137
+ API server, DB, and common extras:
138
+
139
+ ```bash
140
+ pip install "pycatalyst[api,db,inference,faker]"
141
+ ```
142
+
143
+ From source (editable):
144
+
145
+ ```bash
146
+ git clone https://github.com/optophi/pycatalyst
147
+ cd pycatalyst
148
+ pip install -e ".[dev]"
149
+ ```
150
+
151
+ ## Quick Start (CLI)
152
+
153
+ ```bash
154
+ pycatalyst api --port 8006
155
+ pycatalyst generate --recipe path/to/recipe.yaml -n 10
156
+ ```
157
+
158
+ See the **Quick Start** page in the docs for database setup, UI, and REST examples.
159
+
160
+ ## Streaming mock data
161
+
162
+ **Python** — same sequence as batch generation for a fixed seed:
163
+
164
+ ```python
165
+ from pycatalyst import GenerationEngine, SchemaBuilder
166
+
167
+ engine = GenerationEngine()
168
+ schema = SchemaBuilder("events").add_uuid("id").add_string("kind").build()
169
+ for row in engine.iter_records(schema, seed=123, limit=1000):
170
+ process(row)
171
+ ```
172
+
173
+ **HTTP (Server-Sent Events)** — `POST /api/v1/stream/sse` with the same field list as `/generate`, plus `max_records` and optional `interval_ms`. Use `curl -N` and a Bearer token when auth is enabled:
174
+
175
+ ```bash
176
+ curl -N -H "Authorization: Bearer YOUR_JWT" -H "Content-Type: application/json" \
177
+ -d '{"name":"x","fields":[{"name":"n","type":"int"}],"max_records":5,"seed":1}' \
178
+ http://127.0.0.1:8006/api/v1/stream/sse
179
+ ```
180
+
181
+ **CLI — NDJSON to stdout** (one JSON object per line):
182
+
183
+ ```bash
184
+ pycatalyst stream ndjson --schema my.json -n 500 --seed 1
185
+ ```
186
+
187
+ **CLI — Kafka** (`pip install pycatalyst[kafka]`):
188
+
189
+ ```bash
190
+ export PYCATALYST_STREAM_KAFKA_BOOTSTRAP=localhost:9092
191
+ export PYCATALYST_STREAM_KAFKA_TOPIC=test-topic
192
+ pycatalyst stream kafka --schema my.json -n 2000 --batch 100
193
+ ```
194
+
195
+ Server caps (optional): `PYCATALYST_STREAM_MAX_RECORDS`, `PYCATALYST_STREAM_MAX_INTERVAL_MS`.
196
+
197
+ ## Development
198
+
199
+ - **Lint & format:** `ruff check . && ruff format .`
200
+ - **Type check:** `mypy src/`
201
+ - **Tests:** `pytest`
202
+ - **Coverage:** `pytest --cov=pycatalyst --cov-report=term-missing`
203
+
204
+ ## Publishing
205
+
206
+ 1. Bump version in `pyproject.toml` and `CHANGELOG.md`.
207
+ 2. Create a release tag: `git tag v0.1.0 && git push origin v0.1.0`.
208
+ 3. The GitHub Action uses [PyPI Trusted Publishing](https://docs.pypi.org/trusted-publishers/); configure the publisher on PyPI for this repo, then the workflow will publish on tag push.
209
+
210
+ ## License
211
+
212
+ MIT
@@ -0,0 +1,102 @@
1
+ # PyCatalyst
2
+
3
+ Schema-aware **data generation** and testing: recipes (YAML), REST API, optional UI, schema inference, and ML hooks.
4
+
5
+ ## Documentation
6
+
7
+ - **Published** (GitHub Pages): [optophi.github.io/pycatalyst](https://optophi.github.io/pycatalyst/) — start with **Getting Started → Quick Start**.
8
+ - **Local docs** (from repo root):
9
+
10
+ ```bash
11
+ pip install "pycatalyst[docs]"
12
+ pycatalyst docs serve
13
+ ```
14
+
15
+ Opens at [http://127.0.0.1:8007](http://127.0.0.1:8007) by default. Static site: `pycatalyst docs build` → `site/`.
16
+
17
+ - **Live API** (when the server is running): [http://127.0.0.1:8006/docs](http://127.0.0.1:8006/docs) (Swagger).
18
+
19
+ Tutorial index in the doc site: Quick Start, API authentication, generate, recipes, infer schema, workbench.
20
+
21
+ ## Installation
22
+
23
+ ```bash
24
+ pip install pycatalyst
25
+ ```
26
+
27
+ API server, DB, and common extras:
28
+
29
+ ```bash
30
+ pip install "pycatalyst[api,db,inference,faker]"
31
+ ```
32
+
33
+ From source (editable):
34
+
35
+ ```bash
36
+ git clone https://github.com/optophi/pycatalyst
37
+ cd pycatalyst
38
+ pip install -e ".[dev]"
39
+ ```
40
+
41
+ ## Quick Start (CLI)
42
+
43
+ ```bash
44
+ pycatalyst api --port 8006
45
+ pycatalyst generate --recipe path/to/recipe.yaml -n 10
46
+ ```
47
+
48
+ See the **Quick Start** page in the docs for database setup, UI, and REST examples.
49
+
50
+ ## Streaming mock data
51
+
52
+ **Python** — same sequence as batch generation for a fixed seed:
53
+
54
+ ```python
55
+ from pycatalyst import GenerationEngine, SchemaBuilder
56
+
57
+ engine = GenerationEngine()
58
+ schema = SchemaBuilder("events").add_uuid("id").add_string("kind").build()
59
+ for row in engine.iter_records(schema, seed=123, limit=1000):
60
+ process(row)
61
+ ```
62
+
63
+ **HTTP (Server-Sent Events)** — `POST /api/v1/stream/sse` with the same field list as `/generate`, plus `max_records` and optional `interval_ms`. Use `curl -N` and a Bearer token when auth is enabled:
64
+
65
+ ```bash
66
+ curl -N -H "Authorization: Bearer YOUR_JWT" -H "Content-Type: application/json" \
67
+ -d '{"name":"x","fields":[{"name":"n","type":"int"}],"max_records":5,"seed":1}' \
68
+ http://127.0.0.1:8006/api/v1/stream/sse
69
+ ```
70
+
71
+ **CLI — NDJSON to stdout** (one JSON object per line):
72
+
73
+ ```bash
74
+ pycatalyst stream ndjson --schema my.json -n 500 --seed 1
75
+ ```
76
+
77
+ **CLI — Kafka** (`pip install pycatalyst[kafka]`):
78
+
79
+ ```bash
80
+ export PYCATALYST_STREAM_KAFKA_BOOTSTRAP=localhost:9092
81
+ export PYCATALYST_STREAM_KAFKA_TOPIC=test-topic
82
+ pycatalyst stream kafka --schema my.json -n 2000 --batch 100
83
+ ```
84
+
85
+ Server caps (optional): `PYCATALYST_STREAM_MAX_RECORDS`, `PYCATALYST_STREAM_MAX_INTERVAL_MS`.
86
+
87
+ ## Development
88
+
89
+ - **Lint & format:** `ruff check . && ruff format .`
90
+ - **Type check:** `mypy src/`
91
+ - **Tests:** `pytest`
92
+ - **Coverage:** `pytest --cov=pycatalyst --cov-report=term-missing`
93
+
94
+ ## Publishing
95
+
96
+ 1. Bump version in `pyproject.toml` and `CHANGELOG.md`.
97
+ 2. Create a release tag: `git tag v0.1.0 && git push origin v0.1.0`.
98
+ 3. The GitHub Action uses [PyPI Trusted Publishing](https://docs.pypi.org/trusted-publishers/); configure the publisher on PyPI for this repo, then the workflow will publish on tag push.
99
+
100
+ ## License
101
+
102
+ MIT