epochix 0.3.0__py3-none-any.whl

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 (193) hide show
  1. epochix/__init__.py +61 -0
  2. epochix/_artifacts/epochix.artifact.jsx +1198 -0
  3. epochix/_demos/keras_image_classifier.log +35 -0
  4. epochix/_demos/seq2seq_attention.log +27 -0
  5. epochix/_demos/yolov8_detection.log +37 -0
  6. epochix/_frontend/dist/.gitkeep +2 -0
  7. epochix/cli.py +634 -0
  8. epochix/config.py +59 -0
  9. epochix/enums.py +44 -0
  10. epochix/exporters/__init__.py +2 -0
  11. epochix/exporters/html_export.py +118 -0
  12. epochix/exporters/json_export.py +37 -0
  13. epochix/exporters/markdown_export.py +156 -0
  14. epochix/exporters/pdf_export.py +332 -0
  15. epochix/ingester/__init__.py +90 -0
  16. epochix/ingester/file_batch.py +43 -0
  17. epochix/ingester/file_tail.py +59 -0
  18. epochix/ingester/sdk_receiver.py +63 -0
  19. epochix/ingester/ssh.py +150 -0
  20. epochix/ingester/stdin.py +68 -0
  21. epochix/integrations/__init__.py +14 -0
  22. epochix/integrations/hf.py +158 -0
  23. epochix/integrations/jupyter.py +217 -0
  24. epochix/integrations/lightning.py +137 -0
  25. epochix/integrations/tensorboard_import.py +132 -0
  26. epochix/integrations/wandb_import.py +108 -0
  27. epochix/models.py +108 -0
  28. epochix/normalizer/__init__.py +36 -0
  29. epochix/normalizer/canonical_keys.py +80 -0
  30. epochix/normalizer/units.py +41 -0
  31. epochix/parsers/__init__.py +21 -0
  32. epochix/parsers/accelerate.py +59 -0
  33. epochix/parsers/architecture_parser.py +587 -0
  34. epochix/parsers/base.py +38 -0
  35. epochix/parsers/fastai.py +89 -0
  36. epochix/parsers/huggingface.py +56 -0
  37. epochix/parsers/keras_tensorflow.py +57 -0
  38. epochix/parsers/llm_fallback.py +199 -0
  39. epochix/parsers/pytorch_lightning.py +61 -0
  40. epochix/parsers/registry.py +76 -0
  41. epochix/parsers/ultralytics_yolo.py +110 -0
  42. epochix/parsers/universal.py +79 -0
  43. epochix/pipeline.py +374 -0
  44. epochix/plugins/__init__.py +66 -0
  45. epochix/plugins/exporter_registry.py +122 -0
  46. epochix/plugins/metaphor_loader.py +158 -0
  47. epochix/plugins/task_registry.py +131 -0
  48. epochix/py.typed +1 -0
  49. epochix/sdk/__init__.py +26 -0
  50. epochix/sdk/compare.py +128 -0
  51. epochix/sdk/export.py +70 -0
  52. epochix/sdk/live_reporter.py +215 -0
  53. epochix/sdk/parse.py +153 -0
  54. epochix/sdk/visualize.py +102 -0
  55. epochix/server/__init__.py +20 -0
  56. epochix/server/app.py +156 -0
  57. epochix/server/auth.py +110 -0
  58. epochix/server/hub.py +175 -0
  59. epochix/server/routes_export.py +103 -0
  60. epochix/server/routes_runs.py +278 -0
  61. epochix/server/routes_snapshot.py +103 -0
  62. epochix/server/sse.py +93 -0
  63. epochix/server/ws.py +105 -0
  64. epochix/store/__init__.py +4 -0
  65. epochix/store/migrations/env.py +58 -0
  66. epochix/store/migrations/script.py.mako +28 -0
  67. epochix/store/migrations/versions/0001_initial_schema.py +77 -0
  68. epochix/store/ring_buffer.py +37 -0
  69. epochix/store/sqlite_store.py +429 -0
  70. epochix/story_engine/__init__.py +260 -0
  71. epochix/story_engine/config_loader.py +132 -0
  72. epochix/story_engine/grade.py +195 -0
  73. epochix/story_engine/milestones.py +114 -0
  74. epochix/story_engine/narrator.py +60 -0
  75. epochix/story_engine/phases.py +87 -0
  76. epochix/story_engine/task_classifier.py +32 -0
  77. epochix/story_engine/templates/biometric/awakening.fa.txt +2 -0
  78. epochix/story_engine/templates/biometric/awakening.fr.txt +2 -0
  79. epochix/story_engine/templates/biometric/awakening.txt +4 -0
  80. epochix/story_engine/templates/biometric/learning.fa.txt +3 -0
  81. epochix/story_engine/templates/biometric/learning.fr.txt +3 -0
  82. epochix/story_engine/templates/biometric/learning.txt +4 -0
  83. epochix/story_engine/templates/biometric/mastering.fa.txt +2 -0
  84. epochix/story_engine/templates/biometric/mastering.fr.txt +2 -0
  85. epochix/story_engine/templates/biometric/mastering.txt +4 -0
  86. epochix/story_engine/templates/biometric/polishing.fa.txt +2 -0
  87. epochix/story_engine/templates/biometric/polishing.fr.txt +2 -0
  88. epochix/story_engine/templates/biometric/polishing.txt +4 -0
  89. epochix/story_engine/templates/biometric/understanding.fa.txt +2 -0
  90. epochix/story_engine/templates/biometric/understanding.fr.txt +2 -0
  91. epochix/story_engine/templates/biometric/understanding.txt +4 -0
  92. epochix/story_engine/templates/classification/awakening.fa.txt +2 -0
  93. epochix/story_engine/templates/classification/awakening.fr.txt +2 -0
  94. epochix/story_engine/templates/classification/awakening.txt +4 -0
  95. epochix/story_engine/templates/classification/learning.fa.txt +2 -0
  96. epochix/story_engine/templates/classification/learning.fr.txt +2 -0
  97. epochix/story_engine/templates/classification/learning.txt +4 -0
  98. epochix/story_engine/templates/classification/mastering.fa.txt +2 -0
  99. epochix/story_engine/templates/classification/mastering.fr.txt +2 -0
  100. epochix/story_engine/templates/classification/mastering.txt +4 -0
  101. epochix/story_engine/templates/classification/polishing.fa.txt +2 -0
  102. epochix/story_engine/templates/classification/polishing.fr.txt +2 -0
  103. epochix/story_engine/templates/classification/polishing.txt +4 -0
  104. epochix/story_engine/templates/classification/understanding.fa.txt +2 -0
  105. epochix/story_engine/templates/classification/understanding.fr.txt +2 -0
  106. epochix/story_engine/templates/classification/understanding.txt +4 -0
  107. epochix/story_engine/templates/custom/awakening.txt +3 -0
  108. epochix/story_engine/templates/custom/learning.txt +3 -0
  109. epochix/story_engine/templates/custom/mastering.txt +3 -0
  110. epochix/story_engine/templates/custom/polishing.txt +3 -0
  111. epochix/story_engine/templates/custom/understanding.txt +3 -0
  112. epochix/story_engine/templates/detection/awakening.fa.txt +2 -0
  113. epochix/story_engine/templates/detection/awakening.fr.txt +2 -0
  114. epochix/story_engine/templates/detection/awakening.txt +4 -0
  115. epochix/story_engine/templates/detection/learning.fa.txt +3 -0
  116. epochix/story_engine/templates/detection/learning.fr.txt +3 -0
  117. epochix/story_engine/templates/detection/learning.txt +4 -0
  118. epochix/story_engine/templates/detection/mastering.fa.txt +3 -0
  119. epochix/story_engine/templates/detection/mastering.fr.txt +3 -0
  120. epochix/story_engine/templates/detection/mastering.txt +4 -0
  121. epochix/story_engine/templates/detection/polishing.fa.txt +2 -0
  122. epochix/story_engine/templates/detection/polishing.fr.txt +2 -0
  123. epochix/story_engine/templates/detection/polishing.txt +4 -0
  124. epochix/story_engine/templates/detection/understanding.fa.txt +2 -0
  125. epochix/story_engine/templates/detection/understanding.fr.txt +2 -0
  126. epochix/story_engine/templates/detection/understanding.txt +4 -0
  127. epochix/story_engine/templates/gaze/awakening.fa.txt +2 -0
  128. epochix/story_engine/templates/gaze/awakening.fr.txt +2 -0
  129. epochix/story_engine/templates/gaze/awakening.txt +4 -0
  130. epochix/story_engine/templates/gaze/learning.fa.txt +3 -0
  131. epochix/story_engine/templates/gaze/learning.fr.txt +3 -0
  132. epochix/story_engine/templates/gaze/learning.txt +4 -0
  133. epochix/story_engine/templates/gaze/mastering.fa.txt +2 -0
  134. epochix/story_engine/templates/gaze/mastering.fr.txt +2 -0
  135. epochix/story_engine/templates/gaze/mastering.txt +4 -0
  136. epochix/story_engine/templates/gaze/polishing.fa.txt +2 -0
  137. epochix/story_engine/templates/gaze/polishing.fr.txt +2 -0
  138. epochix/story_engine/templates/gaze/polishing.txt +4 -0
  139. epochix/story_engine/templates/gaze/understanding.fa.txt +2 -0
  140. epochix/story_engine/templates/gaze/understanding.fr.txt +2 -0
  141. epochix/story_engine/templates/gaze/understanding.txt +4 -0
  142. epochix/story_engine/templates/generative/awakening.fa.txt +2 -0
  143. epochix/story_engine/templates/generative/awakening.fr.txt +2 -0
  144. epochix/story_engine/templates/generative/awakening.txt +4 -0
  145. epochix/story_engine/templates/generative/learning.fa.txt +3 -0
  146. epochix/story_engine/templates/generative/learning.fr.txt +3 -0
  147. epochix/story_engine/templates/generative/learning.txt +4 -0
  148. epochix/story_engine/templates/generative/mastering.fa.txt +2 -0
  149. epochix/story_engine/templates/generative/mastering.fr.txt +2 -0
  150. epochix/story_engine/templates/generative/mastering.txt +4 -0
  151. epochix/story_engine/templates/generative/polishing.fa.txt +2 -0
  152. epochix/story_engine/templates/generative/polishing.fr.txt +2 -0
  153. epochix/story_engine/templates/generative/polishing.txt +4 -0
  154. epochix/story_engine/templates/generative/understanding.fa.txt +2 -0
  155. epochix/story_engine/templates/generative/understanding.fr.txt +2 -0
  156. epochix/story_engine/templates/generative/understanding.txt +4 -0
  157. epochix/story_engine/templates/nlp/awakening.fa.txt +2 -0
  158. epochix/story_engine/templates/nlp/awakening.fr.txt +2 -0
  159. epochix/story_engine/templates/nlp/awakening.txt +4 -0
  160. epochix/story_engine/templates/nlp/learning.fa.txt +3 -0
  161. epochix/story_engine/templates/nlp/learning.fr.txt +3 -0
  162. epochix/story_engine/templates/nlp/learning.txt +4 -0
  163. epochix/story_engine/templates/nlp/mastering.fa.txt +2 -0
  164. epochix/story_engine/templates/nlp/mastering.fr.txt +2 -0
  165. epochix/story_engine/templates/nlp/mastering.txt +4 -0
  166. epochix/story_engine/templates/nlp/polishing.fa.txt +2 -0
  167. epochix/story_engine/templates/nlp/polishing.fr.txt +2 -0
  168. epochix/story_engine/templates/nlp/polishing.txt +4 -0
  169. epochix/story_engine/templates/nlp/understanding.fa.txt +2 -0
  170. epochix/story_engine/templates/nlp/understanding.fr.txt +2 -0
  171. epochix/story_engine/templates/nlp/understanding.txt +4 -0
  172. epochix/story_engine/templates/regression/awakening.fa.txt +2 -0
  173. epochix/story_engine/templates/regression/awakening.fr.txt +2 -0
  174. epochix/story_engine/templates/regression/awakening.txt +4 -0
  175. epochix/story_engine/templates/regression/learning.fa.txt +3 -0
  176. epochix/story_engine/templates/regression/learning.fr.txt +3 -0
  177. epochix/story_engine/templates/regression/learning.txt +4 -0
  178. epochix/story_engine/templates/regression/mastering.fa.txt +2 -0
  179. epochix/story_engine/templates/regression/mastering.fr.txt +2 -0
  180. epochix/story_engine/templates/regression/mastering.txt +4 -0
  181. epochix/story_engine/templates/regression/polishing.fa.txt +2 -0
  182. epochix/story_engine/templates/regression/polishing.fr.txt +2 -0
  183. epochix/story_engine/templates/regression/polishing.txt +4 -0
  184. epochix/story_engine/templates/regression/understanding.fa.txt +2 -0
  185. epochix/story_engine/templates/regression/understanding.fr.txt +2 -0
  186. epochix/story_engine/templates/regression/understanding.txt +4 -0
  187. epochix/story_engine/warnings.py +116 -0
  188. epochix-0.3.0.data/data/epochix/py.typed +1 -0
  189. epochix-0.3.0.dist-info/METADATA +322 -0
  190. epochix-0.3.0.dist-info/RECORD +193 -0
  191. epochix-0.3.0.dist-info/WHEEL +4 -0
  192. epochix-0.3.0.dist-info/entry_points.txt +11 -0
  193. epochix-0.3.0.dist-info/licenses/LICENSE +172 -0
epochix/__init__.py ADDED
@@ -0,0 +1,61 @@
1
+ """Epochix — visual storytelling for deep learning training runs."""
2
+
3
+ from epochix.enums import Grade, Phase, TaskType
4
+ from epochix.models import MetricEvent, Milestone, Run, StoryFrame, Warning
5
+ from epochix.parsers.base import BaseParser
6
+ from epochix.parsers.registry import register_parser
7
+
8
+ try:
9
+ from importlib.metadata import version as _pkg_version
10
+
11
+ __version__ = _pkg_version("epochix")
12
+ except Exception: # noqa: BLE001 — fallback when the package isn't installed
13
+ __version__ = "0.0.0+local"
14
+
15
+ __all__ = [
16
+ # Core models
17
+ "Run",
18
+ "MetricEvent",
19
+ "StoryFrame",
20
+ "Milestone",
21
+ "Warning",
22
+ # Enums
23
+ "Phase",
24
+ "Grade",
25
+ "TaskType",
26
+ # Plugin interface
27
+ "register_parser",
28
+ "BaseParser",
29
+ # SDK functions — populated lazily via __getattr__ below
30
+ "parse",
31
+ "parse_string",
32
+ "visualize",
33
+ "serve",
34
+ "export",
35
+ "compare",
36
+ "LiveReporter",
37
+ "LightningCallback",
38
+ "HuggingFaceCallback",
39
+ ]
40
+
41
+ _SDK_ATTRS = {
42
+ "parse": ("epochix.sdk.parse", "parse"),
43
+ "parse_string": ("epochix.sdk.parse", "parse_string"),
44
+ "visualize": ("epochix.sdk.visualize", "visualize"),
45
+ "serve": ("epochix.sdk.visualize", "serve"),
46
+ "export": ("epochix.sdk.export", "export"),
47
+ "compare": ("epochix.sdk.compare", "compare"),
48
+ "LiveReporter": ("epochix.sdk.live_reporter", "LiveReporter"),
49
+ "LightningCallback": ("epochix.integrations.lightning", "StoryCallback"),
50
+ "HuggingFaceCallback": ("epochix.integrations.hf", "StoryCallback"),
51
+ }
52
+
53
+
54
+ def __getattr__(name: str) -> object:
55
+ if name in _SDK_ATTRS:
56
+ module_path, attr = _SDK_ATTRS[name]
57
+ import importlib
58
+
59
+ mod = importlib.import_module(module_path)
60
+ return getattr(mod, attr)
61
+ raise AttributeError(f"module 'epochix' has no attribute {name!r}")