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 +241 -0
- sysvis-1.1.0/README.md +215 -0
- sysvis-1.1.0/pyproject.toml +37 -0
- sysvis-1.1.0/setup.cfg +4 -0
- sysvis-1.1.0/setup.py +29 -0
- sysvis-1.1.0/sysvis/__init__.py +48 -0
- sysvis-1.1.0/sysvis/__main__.py +12 -0
- sysvis-1.1.0/sysvis/collectors/__init__.py +3 -0
- sysvis-1.1.0/sysvis/collectors/system.py +507 -0
- sysvis-1.1.0/sysvis/views/__init__.py +32 -0
- sysvis-1.1.0/sysvis/views/_helpers.py +190 -0
- sysvis-1.1.0/sysvis/views/cpu.py +105 -0
- sysvis-1.1.0/sysvis/views/disk.py +71 -0
- sysvis-1.1.0/sysvis/views/gpu.py +68 -0
- sysvis-1.1.0/sysvis/views/health.py +153 -0
- sysvis-1.1.0/sysvis/views/live.py +99 -0
- sysvis-1.1.0/sysvis/views/memory.py +70 -0
- sysvis-1.1.0/sysvis/views/menu.py +96 -0
- sysvis-1.1.0/sysvis/views/network.py +99 -0
- sysvis-1.1.0/sysvis/views/processes.py +89 -0
- sysvis-1.1.0/sysvis/views/sysinfo.py +57 -0
- sysvis-1.1.0/sysvis.egg-info/PKG-INFO +241 -0
- sysvis-1.1.0/sysvis.egg-info/SOURCES.txt +25 -0
- sysvis-1.1.0/sysvis.egg-info/dependency_links.txt +1 -0
- sysvis-1.1.0/sysvis.egg-info/entry_points.txt +2 -0
- sysvis-1.1.0/sysvis.egg-info/requires.txt +10 -0
- sysvis-1.1.0/sysvis.egg-info/top_level.txt +1 -0
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
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()
|