pulseml 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
pulseml-0.1.0/LICENSE ADDED
@@ -0,0 +1,49 @@
1
+ PULSE PROPRIETARY SOFTWARE LICENSE
2
+
3
+ Copyright (c) 2026 Yash Patel. All Rights Reserved.
4
+
5
+ This software and associated files (the "Software") are the proprietary
6
+ property of the copyright holder. The Software is licensed, not sold.
7
+
8
+ 1. GRANT OF LICENSE
9
+ Subject to the terms of this license, the copyright holder grants you a
10
+ limited, non-exclusive, non-transferable, revocable license to install
11
+ and run the Software for your own internal use.
12
+
13
+ 2. RESTRICTIONS
14
+ Except as expressly permitted above, you may NOT, and may not permit
15
+ others to:
16
+ (a) copy, reproduce, distribute, sublicense, rent, lease, or resell the
17
+ Software;
18
+ (b) modify, adapt, translate, or create derivative works based on the
19
+ Software;
20
+ (c) reverse engineer, decompile, disassemble, or otherwise attempt to
21
+ derive the source code of the Software, except to the extent this
22
+ restriction is prohibited by applicable law;
23
+ (d) remove, obscure, or alter any proprietary notices on the Software;
24
+ (e) use the Software to build a competing product or service.
25
+
26
+ 3. FUTURE PAID TERMS
27
+ The copyright holder reserves the right to change pricing, introduce
28
+ paid tiers or license keys, limit functionality, or discontinue free
29
+ distribution of future versions at any time. Continued use of any
30
+ future version may be subject to additional terms, including payment.
31
+
32
+ 4. NO WARRANTY
33
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
34
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
35
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
36
+ NONINFRINGEMENT.
37
+
38
+ 5. LIMITATION OF LIABILITY
39
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM,
40
+ DAMAGES, OR OTHER LIABILITY ARISING FROM, OUT OF, OR IN CONNECTION
41
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
42
+
43
+ 6. TERMINATION
44
+ This license is effective until terminated. It will terminate
45
+ automatically without notice if you fail to comply with any of its
46
+ terms. Upon termination, you must cease all use of the Software and
47
+ destroy all copies in your possession.
48
+
49
+ For licensing inquiries, contact: codeyash09@gmail.com
pulseml-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,99 @@
1
+ Metadata-Version: 2.4
2
+ Name: pulseml
3
+ Version: 0.1.0
4
+ Summary: A live ML training debugger - GUI or CLI, any backend (NumPy, PyTorch, TensorFlow, CuPy, JAX).
5
+ Author-email: Yash Patel <codeyash09@gmail.com>
6
+ License: Proprietary
7
+ Project-URL: Homepage, https://github.com/codeyash09/PulseML
8
+ Project-URL: Issues, https://github.com/codeyash09/PulseML/issues
9
+ Keywords: machine-learning,deep-learning,debugging,pytorch,tensorflow,numpy,jax,cupy,training,visualization
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: License :: Other/Proprietary License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3 :: Only
17
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
18
+ Classifier: Topic :: Software Development :: Debuggers
19
+ Requires-Python: >=3.9
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Requires-Dist: numpy
23
+ Requires-Dist: matplotlib
24
+ Requires-Dist: pillow
25
+ Requires-Dist: litellm
26
+ Requires-Dist: fpdf2
27
+ Provides-Extra: torch
28
+ Requires-Dist: torch; extra == "torch"
29
+ Provides-Extra: tensorflow
30
+ Requires-Dist: tensorflow; extra == "tensorflow"
31
+ Provides-Extra: cupy
32
+ Requires-Dist: cupy-cuda12x; extra == "cupy"
33
+ Provides-Extra: jax
34
+ Requires-Dist: jax; extra == "jax"
35
+ Dynamic: license-file
36
+
37
+ # Pulse
38
+
39
+ A live ML training debugger - GUI or CLI, any backend.
40
+
41
+ ```python
42
+ from pulse import auto_track
43
+ if __name__ == "__main__":
44
+ auto_track()
45
+ #training function
46
+ ```
47
+
48
+ **GUI mode** opens a matrix picker with live shapes, then a live dashboard:
49
+ a heatmap grid on the left (click a tile to enlarge, right-click to
50
+ reconfigure axes) and an AI chat panel on the right that's briefed on its
51
+ role and can optionally see your training code. Scalars (loss, accuracy,
52
+ lr - anything shape `()`) render as a live line chart instead of a heatmap.
53
+ Loss-like scalars are auto-detected and pre-selected so you don't have to
54
+ hunt for them every run.
55
+
56
+ **CLI mode** is for Colab, SSH, or anywhere headless. No heatmaps are shown
57
+ on screen - matrices/tensors are "tagged" as text (stats printed each
58
+ step) and scalars get a live ASCII chart. You can optionally save labeled
59
+ PDF snapshots per variable per step.
60
+
61
+ **Backends:** NumPy, PyTorch, TensorFlow, CuPy, JAX - detected
62
+ automatically. Pulse never checks for `torch`/`tf`/etc. directly; it only
63
+ ever talks to its own backend-abstraction module.
64
+
65
+ ## Install
66
+
67
+ ```bash
68
+ pip install pulse-ml
69
+ ```
70
+
71
+ `tkinter` is required for GUI mode and ships with most Python installs. On
72
+ Debian/Ubuntu, if it's missing:
73
+
74
+ ```bash
75
+ sudo apt install python3-tk
76
+ ```
77
+
78
+ To also track PyTorch, TensorFlow, CuPy, or JAX tensors, install the
79
+ matching extra:
80
+
81
+ ```bash
82
+ pip install "pulse-ml[torch]"
83
+ pip install "pulse-ml[tensorflow]"
84
+ pip install "pulse-ml[cupy]"
85
+ pip install "pulse-ml[jax]"
86
+ ```
87
+
88
+ ## AI chat / analyst
89
+
90
+ Set the relevant provider's API key as an environment variable (e.g.
91
+ `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`) to enable the AI chat panel - or
92
+ leave it unset and Pulse will prompt you for one the first time you send
93
+ a message.
94
+
95
+ ## License
96
+
97
+ Proprietary. See `LICENSE`. Use of this software is governed by the terms
98
+ in that file - copying, redistribution, and reverse engineering are not
99
+ permitted.
@@ -0,0 +1,63 @@
1
+ # Pulse
2
+
3
+ A live ML training debugger - GUI or CLI, any backend.
4
+
5
+ ```python
6
+ from pulse import auto_track
7
+ if __name__ == "__main__":
8
+ auto_track()
9
+ #training function
10
+ ```
11
+
12
+ **GUI mode** opens a matrix picker with live shapes, then a live dashboard:
13
+ a heatmap grid on the left (click a tile to enlarge, right-click to
14
+ reconfigure axes) and an AI chat panel on the right that's briefed on its
15
+ role and can optionally see your training code. Scalars (loss, accuracy,
16
+ lr - anything shape `()`) render as a live line chart instead of a heatmap.
17
+ Loss-like scalars are auto-detected and pre-selected so you don't have to
18
+ hunt for them every run.
19
+
20
+ **CLI mode** is for Colab, SSH, or anywhere headless. No heatmaps are shown
21
+ on screen - matrices/tensors are "tagged" as text (stats printed each
22
+ step) and scalars get a live ASCII chart. You can optionally save labeled
23
+ PDF snapshots per variable per step.
24
+
25
+ **Backends:** NumPy, PyTorch, TensorFlow, CuPy, JAX - detected
26
+ automatically. Pulse never checks for `torch`/`tf`/etc. directly; it only
27
+ ever talks to its own backend-abstraction module.
28
+
29
+ ## Install
30
+
31
+ ```bash
32
+ pip install pulse-ml
33
+ ```
34
+
35
+ `tkinter` is required for GUI mode and ships with most Python installs. On
36
+ Debian/Ubuntu, if it's missing:
37
+
38
+ ```bash
39
+ sudo apt install python3-tk
40
+ ```
41
+
42
+ To also track PyTorch, TensorFlow, CuPy, or JAX tensors, install the
43
+ matching extra:
44
+
45
+ ```bash
46
+ pip install "pulse-ml[torch]"
47
+ pip install "pulse-ml[tensorflow]"
48
+ pip install "pulse-ml[cupy]"
49
+ pip install "pulse-ml[jax]"
50
+ ```
51
+
52
+ ## AI chat / analyst
53
+
54
+ Set the relevant provider's API key as an environment variable (e.g.
55
+ `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`) to enable the AI chat panel - or
56
+ leave it unset and Pulse will prompt you for one the first time you send
57
+ a message.
58
+
59
+ ## License
60
+
61
+ Proprietary. See `LICENSE`. Use of this software is governed by the terms
62
+ in that file - copying, redistribution, and reverse engineering are not
63
+ permitted.
@@ -0,0 +1,49 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "pulseml"
7
+ version = "0.1.0"
8
+ description = "A live ML training debugger - GUI or CLI, any backend (NumPy, PyTorch, TensorFlow, CuPy, JAX)."
9
+ readme = "README.md"
10
+ requires-python = ">=3.9"
11
+ license = { text = "Proprietary" }
12
+ authors = [
13
+ { name = "Yash Patel", email = "codeyash09@gmail.com" }
14
+ ]
15
+ keywords = [
16
+ "machine-learning", "deep-learning", "debugging", "pytorch",
17
+ "tensorflow", "numpy", "jax", "cupy", "training", "visualization"
18
+ ]
19
+ classifiers = [
20
+ "Development Status :: 3 - Alpha",
21
+ "Intended Audience :: Developers",
22
+ "Intended Audience :: Science/Research",
23
+ "License :: Other/Proprietary License",
24
+ "Operating System :: OS Independent",
25
+ "Programming Language :: Python :: 3",
26
+ "Programming Language :: Python :: 3 :: Only",
27
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
28
+ "Topic :: Software Development :: Debuggers",
29
+ ]
30
+ dependencies = [
31
+ "numpy",
32
+ "matplotlib",
33
+ "pillow",
34
+ "litellm",
35
+ "fpdf2",
36
+ ]
37
+
38
+ [project.optional-dependencies]
39
+ torch = ["torch"]
40
+ tensorflow = ["tensorflow"]
41
+ cupy = ["cupy-cuda12x"]
42
+ jax = ["jax"]
43
+
44
+ [project.urls]
45
+ Homepage = "https://github.com/codeyash09/PulseML"
46
+ Issues = "https://github.com/codeyash09/PulseML/issues"
47
+
48
+ [tool.setuptools.packages.find]
49
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,10 @@
1
+ """
2
+ Pulse — a live ML training debugger, GUI or CLI, any backend.
3
+
4
+ from pulse import auto_track
5
+ auto_track(train_step)
6
+ """
7
+ from .pulse import auto_track, shutdown
8
+
9
+ __version__ = "0.1.0"
10
+ __all__ = ["auto_track", "shutdown"]