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 +49 -0
- pulseml-0.1.0/PKG-INFO +99 -0
- pulseml-0.1.0/README.md +63 -0
- pulseml-0.1.0/pyproject.toml +49 -0
- pulseml-0.1.0/setup.cfg +4 -0
- pulseml-0.1.0/src/pulse/__init__.py +10 -0
- pulseml-0.1.0/src/pulse/pulse.py +1925 -0
- pulseml-0.1.0/src/pulse/pulse_backend.py +347 -0
- pulseml-0.1.0/src/pulse/pulse_cli.py +1018 -0
- pulseml-0.1.0/src/pulse/pulse_pdf.py +196 -0
- pulseml-0.1.0/src/pulseml.egg-info/PKG-INFO +99 -0
- pulseml-0.1.0/src/pulseml.egg-info/SOURCES.txt +13 -0
- pulseml-0.1.0/src/pulseml.egg-info/dependency_links.txt +1 -0
- pulseml-0.1.0/src/pulseml.egg-info/requires.txt +17 -0
- pulseml-0.1.0/src/pulseml.egg-info/top_level.txt +1 -0
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.
|
pulseml-0.1.0/README.md
ADDED
|
@@ -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"]
|
pulseml-0.1.0/setup.cfg
ADDED