sysvis 1.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.
sysvis-1.1.0/PKG-INFO ADDED
@@ -0,0 +1,241 @@
1
+ Metadata-Version: 2.4
2
+ Name: sysvis
3
+ Version: 1.1.0
4
+ Summary: Arrow-key terminal system monitor with actionable insights
5
+ Home-page: https://github.com/Krishna4311/sysvis
6
+ Author: Krishna4311
7
+ Author-email: Krishna4311 <mtarunp@gmail.com>
8
+ License: MIT
9
+ Project-URL: Homepage, https://github.com/Krishna4311/sysvis
10
+ Project-URL: Repository, https://github.com/Krishna4311/sysvis
11
+ Project-URL: Bug Tracker, https://github.com/Krishna4311/sysvis/issues
12
+ Keywords: system,monitor,psutil,terminal,performance,insights
13
+ Requires-Python: >=3.8
14
+ Description-Content-Type: text/markdown
15
+ Requires-Dist: rich>=13.0.0
16
+ Requires-Dist: psutil>=5.9.0
17
+ Requires-Dist: py-cpuinfo>=9.0.0
18
+ Provides-Extra: gpu
19
+ Requires-Dist: gputil>=1.4.0; extra == "gpu"
20
+ Provides-Extra: dev
21
+ Requires-Dist: pytest>=7.0; extra == "dev"
22
+ Requires-Dist: pytest-cov; extra == "dev"
23
+ Dynamic: author
24
+ Dynamic: home-page
25
+ Dynamic: requires-python
26
+
27
+ # SYSVIS
28
+
29
+ > Arrow-key interactive terminal system monitor with real-time insights.
30
+
31
+ ```
32
+ SYSVIS System Monitor OS Windows 11 HOST Vasu-Krishna ⏱ 00h 48m
33
+
34
+ ❯ 1. CPU Cores, frequency, per-core usage, load average
35
+ 2. Memory RAM & swap usage with pressure insights
36
+ 3. Disk Partitions, free space, I/O throughput
37
+ 4. Network Speed, interfaces, IP addresses, WiFi SSID
38
+ 5. Processes Top CPU & memory consumers
39
+ 6. GPU Utilisation, VRAM, temperature
40
+ 7. System Info OS, kernel, uptime, installed applications
41
+ 8. Live Monitor All key metrics updating in real time
42
+ 9. Health Report A-F score per category with recommendations
43
+
44
+ ↑ ↓ arrow keys to move, Enter to open, q to quit
45
+ ```
46
+
47
+ ---
48
+
49
+ ## Install
50
+
51
+ ```bash
52
+ pip install sysvis
53
+
54
+ # Optional: NVIDIA GPU support
55
+ pip install sysvis[gpu]
56
+ ```
57
+
58
+ ## Run
59
+
60
+ ```bash
61
+ # Arrow-key menu (default)
62
+ sysvis
63
+
64
+ # Or as a module
65
+ python -m sysvis
66
+ ```
67
+
68
+ ## Navigate
69
+
70
+ | Key | Action |
71
+ |---|---|
72
+ | `↑` `↓` | Move selection |
73
+ | `Enter` | Open view |
74
+ | `q` / `Esc` | Go back / quit |
75
+
76
+ ---
77
+
78
+ ## Use as a library
79
+
80
+ ```python
81
+ # Launch the interactive menu
82
+ import sysvis
83
+ sysvis.run()
84
+ ```
85
+
86
+ ```python
87
+ # Collect data silently in your own script
88
+ from sysvis import SystemCollector
89
+ import time
90
+
91
+ c = SystemCollector(interval=1.0)
92
+ time.sleep(1.5) # wait for first sample
93
+
94
+ data = c.data
95
+ print(f"CPU: {data['cpu'].percent_total:.1f}%")
96
+ print(f"RAM: {data['memory'].ram_percent:.1f}%")
97
+ print(f"Host: {data['network'].hostname}")
98
+
99
+ c.stop()
100
+ ```
101
+
102
+ ```python
103
+ # Open a specific view directly
104
+ from sysvis import SystemCollector
105
+ from sysvis.views import cpu, memory, health
106
+ import time
107
+
108
+ c = SystemCollector()
109
+ time.sleep(1.5)
110
+
111
+ cpu(c) # live CPU view — blocks until q
112
+ memory(c) # live memory view
113
+ health(c) # health report
114
+ c.stop()
115
+ ```
116
+
117
+ ```python
118
+ # Use dataclasses with type hints
119
+ from sysvis import SystemCollector, CPUMetrics, MemoryMetrics
120
+ import time
121
+
122
+ c = SystemCollector()
123
+ time.sleep(1.5)
124
+
125
+ cpu: CPUMetrics = c.data["cpu"]
126
+ mem: MemoryMetrics = c.data["memory"]
127
+
128
+ print(cpu.cpu_name)
129
+ print(cpu.logical_cores)
130
+ print(mem.ram_total)
131
+ c.stop()
132
+ ```
133
+
134
+ ---
135
+
136
+ ## Available views
137
+
138
+ | Function | Description |
139
+ |---|---|
140
+ | `cpu(collector)` | Live CPU — cores, frequency, per-core bars, sparkline |
141
+ | `memory(collector)` | Live RAM + swap bars and insights |
142
+ | `disk(collector)` | Partition table, I/O speed |
143
+ | `network(collector)` | Speeds, IPs, interfaces, sparklines |
144
+ | `processes(collector)` | Top processes by CPU |
145
+ | `gpu(collector)` | GPU util, VRAM, temperature (requires gputil) |
146
+ | `sysinfo(collector)` | OS info + installed apps list |
147
+ | `live(collector)` | Compact overview of all metrics |
148
+ | `health(collector)` | A–F score per category + recommendations |
149
+
150
+ ---
151
+
152
+ ## Data collected
153
+
154
+ ```python
155
+ data = collector.data
156
+
157
+ data["cpu"].percent_total # overall CPU %
158
+ data["cpu"].percent_per_core # list of per-core %
159
+ data["cpu"].cpu_name # CPU model name
160
+ data["cpu"].logical_cores # number of logical cores
161
+ data["cpu"].freq_current # current frequency MHz
162
+
163
+ data["memory"].ram_percent # RAM usage %
164
+ data["memory"].ram_free # free RAM in bytes
165
+ data["memory"].ram_total # total RAM in bytes
166
+ data["memory"].swap_percent # swap usage %
167
+
168
+ data["disk"].partitions # list of dicts (mountpoint, used, free, total, percent)
169
+ data["disk"].read_speed # bytes/sec
170
+ data["disk"].write_speed # bytes/sec
171
+
172
+ data["network"].upload_speed # bytes/sec
173
+ data["network"].download_speed # bytes/sec
174
+ data["network"].local_ip # local IP address
175
+ data["network"].hostname # machine hostname
176
+ data["network"].wifi_ssid # connected WiFi name
177
+ data["network"].ethernet_ip # ethernet IP
178
+ data["network"].wifi_ip # WiFi IP
179
+ data["network"].interfaces # list of all interfaces
180
+
181
+ data["gpu"].available # True if GPU detected
182
+ data["gpu"].gpus # list of GPU dicts (load, mem, temp)
183
+
184
+ data["processes"].top_processes # list of top processes by CPU
185
+ data["processes"].total_processes
186
+ data["processes"].running
187
+ data["processes"].sleeping
188
+
189
+ data["system"].os_name # e.g. Windows
190
+ data["system"].os_release # e.g. 11
191
+ data["system"].hostname
192
+ data["system"].uptime_seconds
193
+ data["system"].installed_apps # list of installed apps
194
+ data["system"].installed_apps_count
195
+ ```
196
+
197
+ ---
198
+
199
+ ## Project structure
200
+
201
+ ```
202
+ sysvis_lib/
203
+ ├── sysvis/
204
+ │ ├── __init__.py ← public API: SystemCollector, run()
205
+ │ ├── __main__.py ← python -m sysvis
206
+ │ ├── collectors/
207
+ │ │ ├── __init__.py
208
+ │ │ └── system.py ← threaded non-blocking psutil collectors
209
+ │ └── views/
210
+ │ ├── __init__.py ← exports all 9 view functions
211
+ │ ├── _helpers.py ← bar, spark, hb, getch, clear …
212
+ │ ├── menu.py ← arrow-key interactive menu
213
+ │ ├── cpu.py
214
+ │ ├── memory.py
215
+ │ ├── disk.py
216
+ │ ├── network.py
217
+ │ ├── processes.py
218
+ │ ├── gpu.py
219
+ │ ├── sysinfo.py
220
+ │ ├── live.py
221
+ │ └── health.py
222
+ ├── pyproject.toml
223
+ ├── setup.py
224
+ └── README.md
225
+ ```
226
+
227
+ ---
228
+
229
+ ## Requirements
230
+
231
+ - Python 3.8+
232
+ - `rich >= 13`
233
+ - `psutil >= 5.9`
234
+ - `py-cpuinfo >= 9` — better CPU name detection
235
+ - `gputil` *(optional)* — NVIDIA GPU panel
236
+
237
+ ---
238
+
239
+ ## License
240
+
241
+ MIT
sysvis-1.1.0/README.md ADDED
@@ -0,0 +1,215 @@
1
+ # SYSVIS
2
+
3
+ > Arrow-key interactive terminal system monitor with real-time insights.
4
+
5
+ ```
6
+ SYSVIS System Monitor OS Windows 11 HOST Vasu-Krishna ⏱ 00h 48m
7
+
8
+ ❯ 1. CPU Cores, frequency, per-core usage, load average
9
+ 2. Memory RAM & swap usage with pressure insights
10
+ 3. Disk Partitions, free space, I/O throughput
11
+ 4. Network Speed, interfaces, IP addresses, WiFi SSID
12
+ 5. Processes Top CPU & memory consumers
13
+ 6. GPU Utilisation, VRAM, temperature
14
+ 7. System Info OS, kernel, uptime, installed applications
15
+ 8. Live Monitor All key metrics updating in real time
16
+ 9. Health Report A-F score per category with recommendations
17
+
18
+ ↑ ↓ arrow keys to move, Enter to open, q to quit
19
+ ```
20
+
21
+ ---
22
+
23
+ ## Install
24
+
25
+ ```bash
26
+ pip install sysvis
27
+
28
+ # Optional: NVIDIA GPU support
29
+ pip install sysvis[gpu]
30
+ ```
31
+
32
+ ## Run
33
+
34
+ ```bash
35
+ # Arrow-key menu (default)
36
+ sysvis
37
+
38
+ # Or as a module
39
+ python -m sysvis
40
+ ```
41
+
42
+ ## Navigate
43
+
44
+ | Key | Action |
45
+ |---|---|
46
+ | `↑` `↓` | Move selection |
47
+ | `Enter` | Open view |
48
+ | `q` / `Esc` | Go back / quit |
49
+
50
+ ---
51
+
52
+ ## Use as a library
53
+
54
+ ```python
55
+ # Launch the interactive menu
56
+ import sysvis
57
+ sysvis.run()
58
+ ```
59
+
60
+ ```python
61
+ # Collect data silently in your own script
62
+ from sysvis import SystemCollector
63
+ import time
64
+
65
+ c = SystemCollector(interval=1.0)
66
+ time.sleep(1.5) # wait for first sample
67
+
68
+ data = c.data
69
+ print(f"CPU: {data['cpu'].percent_total:.1f}%")
70
+ print(f"RAM: {data['memory'].ram_percent:.1f}%")
71
+ print(f"Host: {data['network'].hostname}")
72
+
73
+ c.stop()
74
+ ```
75
+
76
+ ```python
77
+ # Open a specific view directly
78
+ from sysvis import SystemCollector
79
+ from sysvis.views import cpu, memory, health
80
+ import time
81
+
82
+ c = SystemCollector()
83
+ time.sleep(1.5)
84
+
85
+ cpu(c) # live CPU view — blocks until q
86
+ memory(c) # live memory view
87
+ health(c) # health report
88
+ c.stop()
89
+ ```
90
+
91
+ ```python
92
+ # Use dataclasses with type hints
93
+ from sysvis import SystemCollector, CPUMetrics, MemoryMetrics
94
+ import time
95
+
96
+ c = SystemCollector()
97
+ time.sleep(1.5)
98
+
99
+ cpu: CPUMetrics = c.data["cpu"]
100
+ mem: MemoryMetrics = c.data["memory"]
101
+
102
+ print(cpu.cpu_name)
103
+ print(cpu.logical_cores)
104
+ print(mem.ram_total)
105
+ c.stop()
106
+ ```
107
+
108
+ ---
109
+
110
+ ## Available views
111
+
112
+ | Function | Description |
113
+ |---|---|
114
+ | `cpu(collector)` | Live CPU — cores, frequency, per-core bars, sparkline |
115
+ | `memory(collector)` | Live RAM + swap bars and insights |
116
+ | `disk(collector)` | Partition table, I/O speed |
117
+ | `network(collector)` | Speeds, IPs, interfaces, sparklines |
118
+ | `processes(collector)` | Top processes by CPU |
119
+ | `gpu(collector)` | GPU util, VRAM, temperature (requires gputil) |
120
+ | `sysinfo(collector)` | OS info + installed apps list |
121
+ | `live(collector)` | Compact overview of all metrics |
122
+ | `health(collector)` | A–F score per category + recommendations |
123
+
124
+ ---
125
+
126
+ ## Data collected
127
+
128
+ ```python
129
+ data = collector.data
130
+
131
+ data["cpu"].percent_total # overall CPU %
132
+ data["cpu"].percent_per_core # list of per-core %
133
+ data["cpu"].cpu_name # CPU model name
134
+ data["cpu"].logical_cores # number of logical cores
135
+ data["cpu"].freq_current # current frequency MHz
136
+
137
+ data["memory"].ram_percent # RAM usage %
138
+ data["memory"].ram_free # free RAM in bytes
139
+ data["memory"].ram_total # total RAM in bytes
140
+ data["memory"].swap_percent # swap usage %
141
+
142
+ data["disk"].partitions # list of dicts (mountpoint, used, free, total, percent)
143
+ data["disk"].read_speed # bytes/sec
144
+ data["disk"].write_speed # bytes/sec
145
+
146
+ data["network"].upload_speed # bytes/sec
147
+ data["network"].download_speed # bytes/sec
148
+ data["network"].local_ip # local IP address
149
+ data["network"].hostname # machine hostname
150
+ data["network"].wifi_ssid # connected WiFi name
151
+ data["network"].ethernet_ip # ethernet IP
152
+ data["network"].wifi_ip # WiFi IP
153
+ data["network"].interfaces # list of all interfaces
154
+
155
+ data["gpu"].available # True if GPU detected
156
+ data["gpu"].gpus # list of GPU dicts (load, mem, temp)
157
+
158
+ data["processes"].top_processes # list of top processes by CPU
159
+ data["processes"].total_processes
160
+ data["processes"].running
161
+ data["processes"].sleeping
162
+
163
+ data["system"].os_name # e.g. Windows
164
+ data["system"].os_release # e.g. 11
165
+ data["system"].hostname
166
+ data["system"].uptime_seconds
167
+ data["system"].installed_apps # list of installed apps
168
+ data["system"].installed_apps_count
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Project structure
174
+
175
+ ```
176
+ sysvis_lib/
177
+ ├── sysvis/
178
+ │ ├── __init__.py ← public API: SystemCollector, run()
179
+ │ ├── __main__.py ← python -m sysvis
180
+ │ ├── collectors/
181
+ │ │ ├── __init__.py
182
+ │ │ └── system.py ← threaded non-blocking psutil collectors
183
+ │ └── views/
184
+ │ ├── __init__.py ← exports all 9 view functions
185
+ │ ├── _helpers.py ← bar, spark, hb, getch, clear …
186
+ │ ├── menu.py ← arrow-key interactive menu
187
+ │ ├── cpu.py
188
+ │ ├── memory.py
189
+ │ ├── disk.py
190
+ │ ├── network.py
191
+ │ ├── processes.py
192
+ │ ├── gpu.py
193
+ │ ├── sysinfo.py
194
+ │ ├── live.py
195
+ │ └── health.py
196
+ ├── pyproject.toml
197
+ ├── setup.py
198
+ └── README.md
199
+ ```
200
+
201
+ ---
202
+
203
+ ## Requirements
204
+
205
+ - Python 3.8+
206
+ - `rich >= 13`
207
+ - `psutil >= 5.9`
208
+ - `py-cpuinfo >= 9` — better CPU name detection
209
+ - `gputil` *(optional)* — NVIDIA GPU panel
210
+
211
+ ---
212
+
213
+ ## License
214
+
215
+ MIT
@@ -0,0 +1,37 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "sysvis"
7
+ version = "1.1.0"
8
+ description = "Arrow-key terminal system monitor with actionable insights"
9
+ readme = "README.md"
10
+ license = { text = "MIT" }
11
+ requires-python = ">=3.8"
12
+ keywords = ["system", "monitor", "psutil", "terminal", "performance", "insights"]
13
+ authors = [
14
+ { name = "Krishna4311", email = "mtarunp@gmail.com" }
15
+ ]
16
+
17
+ dependencies = [
18
+ "rich>=13.0.0",
19
+ "psutil>=5.9.0",
20
+ "py-cpuinfo>=9.0.0",
21
+ ]
22
+
23
+ [project.optional-dependencies]
24
+ gpu = ["gputil>=1.4.0"]
25
+ dev = ["pytest>=7.0", "pytest-cov"]
26
+
27
+ [project.urls]
28
+ Homepage = "https://github.com/Krishna4311/sysvis"
29
+ Repository = "https://github.com/Krishna4311/sysvis"
30
+ "Bug Tracker" = "https://github.com/Krishna4311/sysvis/issues"
31
+
32
+ [project.scripts]
33
+ sysvis = "sysvis.__main__:main"
34
+
35
+ [tool.setuptools.packages.find]
36
+ where = ["."]
37
+ include = ["sysvis*"]
sysvis-1.1.0/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
sysvis-1.1.0/setup.py ADDED
@@ -0,0 +1,29 @@
1
+ """setup.py — compatibility shim for older pip / conda editable installs."""
2
+ from setuptools import setup, find_packages
3
+
4
+ setup(
5
+ name="sysvis",
6
+ version="1.1.0",
7
+ description="Arrow-key terminal system monitor with actionable insights",
8
+ author="Krishna4311",
9
+ author_email="mtarunp@gmail.com",
10
+ url="https://github.com/Krishna4311/sysvis",
11
+ license="MIT",
12
+ packages=find_packages(),
13
+ install_requires=[
14
+ "rich>=13.0.0",
15
+ "psutil>=5.9.0",
16
+ "py-cpuinfo>=9.0.0",
17
+ ],
18
+ extras_require={"gpu": ["gputil>=1.4.0"]},
19
+ entry_points={"console_scripts": ["sysvis=sysvis.__main__:main"]},
20
+ python_requires=">=3.8",
21
+ keywords=["system", "monitor", "psutil", "terminal", "performance", "insights"],
22
+ classifiers=[
23
+ "Programming Language :: Python :: 3",
24
+ "License :: OSI Approved :: MIT License",
25
+ "Operating System :: OS Independent",
26
+ "Environment :: Console",
27
+ "Topic :: System :: Monitoring",
28
+ ],
29
+ )
@@ -0,0 +1,48 @@
1
+ """
2
+ sysvis — Arrow-key terminal system monitor with actionable insights.
3
+
4
+ Quick start
5
+ -----------
6
+ import sysvis
7
+ sysvis.run() # launches arrow-key menu
8
+
9
+ # Use the collector directly:
10
+ from sysvis import SystemCollector
11
+ import time
12
+ c = SystemCollector()
13
+ time.sleep(1.5)
14
+ print(c.data["cpu"].percent_total)
15
+ c.stop()
16
+ """
17
+
18
+ from .collectors.system import (
19
+ SystemCollector,
20
+ CPUMetrics,
21
+ MemoryMetrics,
22
+ DiskMetrics,
23
+ NetworkMetrics,
24
+ GPUMetrics,
25
+ ProcessMetrics,
26
+ SystemInfo,
27
+ )
28
+
29
+ __version__ = "1.1.0"
30
+ __author__ = "sysvis contributors"
31
+
32
+ __all__ = [
33
+ "SystemCollector",
34
+ "CPUMetrics",
35
+ "MemoryMetrics",
36
+ "DiskMetrics",
37
+ "NetworkMetrics",
38
+ "GPUMetrics",
39
+ "ProcessMetrics",
40
+ "SystemInfo",
41
+ "run",
42
+ ]
43
+
44
+
45
+ def run():
46
+ """Launch the arrow-key interactive menu."""
47
+ from .views.menu import run as _run
48
+ _run()
@@ -0,0 +1,12 @@
1
+ """
2
+ sysvis/__main__.py
3
+ Allows: python -m sysvis
4
+ """
5
+
6
+ def main():
7
+ import sysvis
8
+ sysvis.run()
9
+
10
+
11
+ if __name__ == "__main__":
12
+ main()
@@ -0,0 +1,3 @@
1
+ """sysvis.collectors — background metric collection."""
2
+ from .system import SystemCollector
3
+ __all__ = ["SystemCollector"]