@mcptoolshop/venvkit 0.2.5 → 1.0.0
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.
- package/README.es.md +143 -132
- package/README.fr.md +143 -132
- package/README.hi.md +143 -136
- package/README.it.md +143 -132
- package/README.ja.md +143 -132
- package/README.md +15 -4
- package/README.pt-BR.md +143 -132
- package/README.zh.md +143 -132
- package/dist/doctorLite.d.ts +75 -0
- package/dist/doctorLite.d.ts.map +1 -0
- package/dist/doctorLite.js +705 -0
- package/dist/doctorLite.js.map +1 -0
- package/dist/doctorLite.test.d.ts +2 -0
- package/dist/doctorLite.test.d.ts.map +1 -0
- package/dist/doctorLite.test.js +268 -0
- package/dist/doctorLite.test.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/integration.test.d.ts +2 -0
- package/dist/integration.test.d.ts.map +1 -0
- package/dist/integration.test.js +245 -0
- package/dist/integration.test.js.map +1 -0
- package/dist/mapRender.d.ts +105 -0
- package/dist/mapRender.d.ts.map +1 -0
- package/dist/mapRender.js +718 -0
- package/dist/mapRender.js.map +1 -0
- package/dist/mapRender.test.d.ts +2 -0
- package/dist/mapRender.test.d.ts.map +1 -0
- package/dist/mapRender.test.js +571 -0
- package/dist/mapRender.test.js.map +1 -0
- package/dist/map_cli.d.ts +3 -0
- package/dist/map_cli.d.ts.map +1 -0
- package/dist/map_cli.js +278 -0
- package/dist/map_cli.js.map +1 -0
- package/dist/map_cli.test.d.ts +2 -0
- package/dist/map_cli.test.d.ts.map +1 -0
- package/dist/map_cli.test.js +320 -0
- package/dist/map_cli.test.js.map +1 -0
- package/dist/runLog.d.ts +71 -0
- package/dist/runLog.d.ts.map +1 -0
- package/dist/runLog.js +98 -0
- package/dist/runLog.js.map +1 -0
- package/dist/runLog.test.d.ts +2 -0
- package/dist/runLog.test.d.ts.map +1 -0
- package/dist/runLog.test.js +327 -0
- package/dist/runLog.test.js.map +1 -0
- package/dist/scanEnvPaths.d.ts +18 -0
- package/dist/scanEnvPaths.d.ts.map +1 -0
- package/dist/scanEnvPaths.js +177 -0
- package/dist/scanEnvPaths.js.map +1 -0
- package/dist/scanEnvPaths.test.d.ts +2 -0
- package/dist/scanEnvPaths.test.d.ts.map +1 -0
- package/dist/scanEnvPaths.test.js +250 -0
- package/dist/scanEnvPaths.test.js.map +1 -0
- package/dist/taskCluster.d.ts +62 -0
- package/dist/taskCluster.d.ts.map +1 -0
- package/dist/taskCluster.js +180 -0
- package/dist/taskCluster.js.map +1 -0
- package/dist/taskCluster.test.d.ts +2 -0
- package/dist/taskCluster.test.d.ts.map +1 -0
- package/dist/taskCluster.test.js +375 -0
- package/dist/taskCluster.test.js.map +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +26 -0
- package/dist/vitest.config.js.map +1 -0
- package/dist/windows.test.d.ts +6 -0
- package/dist/windows.test.d.ts.map +1 -0
- package/dist/windows.test.js +121 -0
- package/dist/windows.test.js.map +1 -0
- package/package.json +6 -2
package/README.it.md
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="README.
|
|
3
|
-
</p>
|
|
4
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.md">English</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
5
|
<p align="center">
|
|
6
6
|
<img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/venvkit/readme.png" alt="venvkit" width="400">
|
|
7
7
|
</p>
|
|
8
|
-
|
|
9
|
-
# venvkit
|
|
10
|
-
|
|
11
|
-
> Parte di [MCP Tool Shop](https://mcptoolshop.com)
|
|
12
|
-
|
|
8
|
+
|
|
9
|
+
# venvkit
|
|
10
|
+
|
|
11
|
+
> Parte di [MCP Tool Shop](https://mcptoolshop.com)
|
|
12
|
+
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="https://github.com/mcp-tool-shop-org/venvkit/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/venvkit/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
15
15
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square" alt="License: MIT"></a>
|
|
16
16
|
<a href="https://mcp-tool-shop-org.github.io/venvkit/"><img src="https://img.shields.io/badge/Landing_Page-live-blue?style=flat-square" alt="Landing Page"></a>
|
|
17
17
|
<a href="https://www.npmjs.com/package/@mcptoolshop/venvkit"><img src="https://img.shields.io/npm/v/@mcptoolshop/venvkit?style=flat-square&color=cb3837" alt="npm version"></a>
|
|
18
18
|
</p>
|
|
19
|
-
|
|
20
|
-
**Kit di strumenti diagnostici per ambienti virtuali Python per i flussi di lavoro di
|
|
21
|
-
|
|
22
|
-
Scansiona il sistema alla ricerca di ambienti Python, diagnostica problemi di salute (SSL, DLL, incompatibilità ABI, perdite di percorsi), tiene traccia della cronologia di esecuzione delle attività, rileva attività instabili e genera una mappa dell'ecosistema.
|
|
23
|
-
|
|
24
|
-
## Guida rapida
|
|
25
|
-
|
|
19
|
+
|
|
20
|
+
**Kit di strumenti diagnostici per ambienti virtuali Python per i flussi di lavoro di machine learning su Windows.**
|
|
21
|
+
|
|
22
|
+
Scansiona il sistema alla ricerca di ambienti Python, diagnostica problemi di salute (SSL, DLL, incompatibilità ABI, perdite di percorsi), tiene traccia della cronologia di esecuzione delle attività, rileva attività instabili e genera una mappa dell'ecosistema.
|
|
23
|
+
|
|
24
|
+
## Guida rapida
|
|
25
|
+
|
|
26
26
|
```bash
|
|
27
27
|
git clone https://github.com/mcp-tool-shop-org/venvkit && cd venvkit
|
|
28
28
|
npm install && npm run build
|
|
29
29
|
node dist/map_cli.js --root C:\projects --httpsProbe
|
|
30
30
|
# Open .venvkit/venv-map.html in your browser
|
|
31
31
|
```
|
|
32
|
-
|
|
33
|
-
## Funzionalità
|
|
34
|
-
|
|
35
|
-
- **doctorLite** - Controllo rapido dello stato di salute per qualsiasi interprete Python
|
|
36
|
-
- Verifica SSL/TLS
|
|
37
|
-
- Errori di caricamento delle DLL (comuni con PyTorch/CUDA)
|
|
38
|
-
- Incompatibilità ABI (ARM vs x86)
|
|
39
|
-
- Controlli di sanità di pip
|
|
40
|
-
- Rilevamento di perdite di
|
|
41
|
-
|
|
42
|
-
- **scanEnvPaths** - Scopri tutti gli ambienti Python presenti nel tuo sistema
|
|
43
|
-
- Trova
|
|
44
|
-
- Profondità e filtri configurabili
|
|
45
|
-
|
|
46
|
-
- **mapRender** - Visualizza
|
|
47
|
-
- Output
|
|
48
|
-
- Diagrammi Mermaid per la documentazione
|
|
49
|
-
- Raggruppamento degli interpreti di base con analisi del raggio di impatto
|
|
50
|
-
- Visualizzazione del routing delle attività
|
|
51
|
-
|
|
52
|
-
- **runLog** - Tieni traccia della cronologia di esecuzione delle attività
|
|
53
|
-
- Formato JSONL solo per l'aggiunta
|
|
54
|
-
- Registra quale ambiente ha eseguito quale attività
|
|
55
|
-
- Cattura successo/fallimento con classificazione degli errori
|
|
56
|
-
|
|
57
|
-
- **taskCluster** - Aggrega le esecuzioni delle attività
|
|
58
|
-
- Rilevamento di attività instabili (
|
|
59
|
-
- Rilevamento di instabilità dipendente dall'ambiente
|
|
60
|
-
- Identificazione dei punti critici di errore
|
|
61
|
-
- Analisi della contaminazione (cause radice condivise)
|
|
62
|
-
|
|
63
|
-
## Installazione
|
|
64
|
-
|
|
32
|
+
|
|
33
|
+
## Funzionalità
|
|
34
|
+
|
|
35
|
+
- **doctorLite** - Controllo rapido dello stato di salute per qualsiasi interprete Python
|
|
36
|
+
- Verifica SSL/TLS
|
|
37
|
+
- Errori di caricamento delle DLL (comuni con PyTorch/CUDA)
|
|
38
|
+
- Incompatibilità ABI (ARM vs x86)
|
|
39
|
+
- Controlli di sanità di pip
|
|
40
|
+
- Rilevamento di perdite di user-site e PYTHONPATH
|
|
41
|
+
|
|
42
|
+
- **scanEnvPaths** - Scopri tutti gli ambienti Python presenti nel tuo sistema
|
|
43
|
+
- Trova venv, ambienti conda, versioni pyenv, interpreti di base
|
|
44
|
+
- Profondità e filtri configurabili
|
|
45
|
+
|
|
46
|
+
- **mapRender** - Visualizza il tuo ecosistema Python
|
|
47
|
+
- Output JSON per l'uso programmatico
|
|
48
|
+
- Diagrammi Mermaid per la documentazione
|
|
49
|
+
- Raggruppamento degli interpreti di base con analisi del raggio di impatto
|
|
50
|
+
- Visualizzazione del routing delle attività
|
|
51
|
+
|
|
52
|
+
- **runLog** - Tieni traccia della cronologia di esecuzione delle attività
|
|
53
|
+
- Formato JSONL solo per l'aggiunta
|
|
54
|
+
- Registra quale ambiente ha eseguito quale attività
|
|
55
|
+
- Cattura successo/fallimento con classificazione degli errori
|
|
56
|
+
|
|
57
|
+
- **taskCluster** - Aggrega le esecuzioni delle attività per firma
|
|
58
|
+
- Rilevamento di attività instabili (pass/fail inconsistenti)
|
|
59
|
+
- Rilevamento di instabilità dipendente dall'ambiente
|
|
60
|
+
- Identificazione dei punti critici di errore
|
|
61
|
+
- Analisi della contaminazione (cause radice condivise)
|
|
62
|
+
|
|
63
|
+
## Installazione
|
|
64
|
+
|
|
65
65
|
```bash
|
|
66
66
|
npm install
|
|
67
67
|
npm run build
|
|
68
68
|
```
|
|
69
|
-
|
|
70
|
-
## Utilizzo della CLI
|
|
71
|
-
|
|
69
|
+
|
|
70
|
+
## Utilizzo della CLI
|
|
71
|
+
|
|
72
72
|
```bash
|
|
73
73
|
# Scan current directory and generate ecosystem map
|
|
74
74
|
node dist/map_cli.js
|
|
@@ -82,33 +82,33 @@ node dist/map_cli.js --runlog .venvkit/runs.jsonl
|
|
|
82
82
|
# Output options
|
|
83
83
|
node dist/map_cli.js --out ./output --minScore 50 --strict --httpsProbe
|
|
84
84
|
```
|
|
85
|
-
|
|
86
|
-
### Opzioni della CLI
|
|
87
|
-
|
|
88
|
-
| Flag | Descrizione |
|
|
89
|
-
|
|
90
|
-
| `--root, -r` | Directory da scansionare (è possibile specificarne più di una) |
|
|
91
|
-
| `--out` | Directory di output (predefinito: `.venvkit`) |
|
|
92
|
-
| `--maxDepth` | Profondità massima
|
|
93
|
-
| `--strict` | Abilita i controlli in modalità rigorosa |
|
|
94
|
-
| `--httpsProbe` | Testa la connettività HTTPS |
|
|
95
|
-
| `--minScore` | Filtra gli ambienti con un punteggio di salute inferiore a questo valore |
|
|
96
|
-
| `--concurrency` | Controlli paralleli (predefinito: numero di core della CPU) |
|
|
97
|
-
| `--runlog` | Percorso del file di
|
|
98
|
-
| `--no-tasks` | Salta la visualizzazione delle attività |
|
|
99
|
-
|
|
100
|
-
### Output
|
|
101
|
-
|
|
102
|
-
| File | Descrizione |
|
|
103
|
-
|
|
104
|
-
| `venv-map.json` | Dati completi del grafico (nodi, archi, riepilogo) |
|
|
105
|
-
| `venv-map.mmd` | Codice sorgente del diagramma Mermaid |
|
|
106
|
-
| `venv-map.html` | Visualizzatore interattivo |
|
|
107
|
-
| `reports.json` | Report
|
|
108
|
-
| `insights.json` | Raccomandazioni attuabili |
|
|
109
|
-
|
|
110
|
-
## Utilizzo programmatico
|
|
111
|
-
|
|
85
|
+
|
|
86
|
+
### Opzioni della CLI
|
|
87
|
+
|
|
88
|
+
| Flag | Descrizione |
|
|
89
|
+
|------|-------------|
|
|
90
|
+
| `--root, -r` | Directory da scansionare (è possibile specificarne più di una) |
|
|
91
|
+
| `--out` | Directory di output (predefinito: `.venvkit`) |
|
|
92
|
+
| `--maxDepth` | Profondità massima della directory da scansionare (predefinito: 5) |
|
|
93
|
+
| `--strict` | Abilita i controlli in modalità rigorosa |
|
|
94
|
+
| `--httpsProbe` | Testa la connettività HTTPS |
|
|
95
|
+
| `--minScore` | Filtra gli ambienti con un punteggio di salute inferiore a questo valore |
|
|
96
|
+
| `--concurrency` | Controlli paralleli (predefinito: numero di core della CPU) |
|
|
97
|
+
| `--runlog` | Percorso del file di log delle esecuzioni delle attività (JSONL) |
|
|
98
|
+
| `--no-tasks` | Salta la visualizzazione delle attività |
|
|
99
|
+
|
|
100
|
+
### Output
|
|
101
|
+
|
|
102
|
+
| File | Descrizione |
|
|
103
|
+
|------|-------------|
|
|
104
|
+
| `venv-map.json` | Dati completi del grafico (nodi, archi, riepilogo) |
|
|
105
|
+
| `venv-map.mmd` | Codice sorgente del diagramma Mermaid |
|
|
106
|
+
| `venv-map.html` | Visualizzatore interattivo |
|
|
107
|
+
| `reports.json` | Report dettagliati di doctorLite |
|
|
108
|
+
| `insights.json` | Raccomandazioni attuabili |
|
|
109
|
+
|
|
110
|
+
## Utilizzo programmatico
|
|
111
|
+
|
|
112
112
|
```typescript
|
|
113
113
|
import { doctorLite, scanEnvPaths, mapRender, readRunLog } from 'venvkit';
|
|
114
114
|
|
|
@@ -143,11 +143,11 @@ const { graph, mermaid, insights } = mapRender(reports, runs, {
|
|
|
143
143
|
includeHotEdgeLabels: true,
|
|
144
144
|
});
|
|
145
145
|
```
|
|
146
|
-
|
|
147
|
-
## Schema del
|
|
148
|
-
|
|
149
|
-
Tieni traccia delle esecuzioni delle attività aggiungendo eventi a un file JSONL:
|
|
150
|
-
|
|
146
|
+
|
|
147
|
+
## Schema del file di log
|
|
148
|
+
|
|
149
|
+
Tieni traccia delle esecuzioni delle attività aggiungendo eventi a un file JSONL:
|
|
150
|
+
|
|
151
151
|
```typescript
|
|
152
152
|
import { appendRunLog, newRunId } from 'venvkit';
|
|
153
153
|
|
|
@@ -172,11 +172,11 @@ await appendRunLog('.venvkit/runs.jsonl', {
|
|
|
172
172
|
},
|
|
173
173
|
});
|
|
174
174
|
```
|
|
175
|
-
|
|
176
|
-
## Raggruppamento delle attività
|
|
177
|
-
|
|
178
|
-
Quando si hanno molte esecuzioni di attività, venvkit le raggruppa
|
|
179
|
-
|
|
175
|
+
|
|
176
|
+
## Raggruppamento delle attività
|
|
177
|
+
|
|
178
|
+
Quando si hanno molte esecuzioni di attività, venvkit le raggruppa per firma:
|
|
179
|
+
|
|
180
180
|
```typescript
|
|
181
181
|
import { clusterRuns, isFlaky, getFailingEnvs } from 'venvkit';
|
|
182
182
|
|
|
@@ -192,11 +192,11 @@ for (const c of clusters) {
|
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
```
|
|
195
|
-
|
|
196
|
-
## Schema del grafico
|
|
197
|
-
|
|
198
|
-
L'output di `mapRender` segue uno schema JSON stabile:
|
|
199
|
-
|
|
195
|
+
|
|
196
|
+
## Schema del grafico
|
|
197
|
+
|
|
198
|
+
L'output di `mapRender` segue uno schema JSON stabile:
|
|
199
|
+
|
|
200
200
|
```typescript
|
|
201
201
|
type GraphJSONv1 = {
|
|
202
202
|
version: '1.0';
|
|
@@ -217,47 +217,58 @@ type GraphJSONv1 = {
|
|
|
217
217
|
edges: GraphEdge[];
|
|
218
218
|
};
|
|
219
219
|
```
|
|
220
|
-
|
|
221
|
-
### Tipi di nodo
|
|
222
|
-
|
|
223
|
-
|
|
|
224
|
-
|
|
225
|
-
| `base` | Interprete Python di base (
|
|
226
|
-
| `venv` | Ambiente virtuale |
|
|
227
|
-
| `task` | Firma dell'attività (esecuzioni raggruppate) |
|
|
228
|
-
|
|
229
|
-
### Tipi di arco
|
|
230
|
-
|
|
231
|
-
|
|
|
232
|
-
|
|
233
|
-
| `USES_BASE` | Relazione venv → base |
|
|
234
|
-
| `ROUTES_TASK_TO` | Routing attività → ambiente |
|
|
235
|
-
| `FAILED_RUN` | Errore attività → ambiente (tratteggiato
|
|
236
|
-
|
|
237
|
-
## Codici di errore
|
|
238
|
-
|
|
239
|
-
|
|
|
240
|
-
|
|
241
|
-
| `SSL_BROKEN` | bad |
|
|
242
|
-
| `CERT_STORE_FAIL` | warn | La verifica del certificato HTTPS non riesce |
|
|
243
|
-
| `DLL_LOAD_FAIL` | bad |
|
|
244
|
-
| `ABI_MISMATCH` | bad | Incompatibilità binaria (ARM/x86) |
|
|
245
|
-
| `PIP_MISSING` | warn | pip non disponibile |
|
|
246
|
-
| `PIP_CHECK_FAIL` | warn |
|
|
247
|
-
| `USER_SITE_LEAK` | warn |
|
|
248
|
-
| `PYTHONPATH_INJECTED` | warn | Variabile d'ambiente PYTHONPATH impostata
|
|
249
|
-
| `ARCH_MISMATCH` | bad |
|
|
250
|
-
| `PYVENV_CFG_INVALID` | warn |
|
|
251
|
-
|
|
252
|
-
## Sviluppo
|
|
253
|
-
|
|
220
|
+
|
|
221
|
+
### Tipi di nodo
|
|
222
|
+
|
|
223
|
+
| Tipo | Descrizione |
|
|
224
|
+
|------|-------------|
|
|
225
|
+
| `base` | Interprete Python di base (es. `C:\Python311`) |
|
|
226
|
+
| `venv` | Ambiente virtuale |
|
|
227
|
+
| `task` | Firma dell'attività (esecuzioni raggruppate) |
|
|
228
|
+
|
|
229
|
+
### Tipi di arco
|
|
230
|
+
|
|
231
|
+
| Tipo | Descrizione |
|
|
232
|
+
|------|-------------|
|
|
233
|
+
| `USES_BASE` | Relazione venv → interprete di base |
|
|
234
|
+
| `ROUTES_TASK_TO` | Routing attività → ambiente |
|
|
235
|
+
| `FAILED_RUN` | Errore attività → ambiente (tratteggiato in Mermaid) |
|
|
236
|
+
|
|
237
|
+
## Codici di errore
|
|
238
|
+
|
|
239
|
+
| Codice | Gravità | Descrizione |
|
|
240
|
+
|------|----------|-------------|
|
|
241
|
+
| `SSL_BROKEN` | bad | Il modulo SSL non riesce a essere importato |
|
|
242
|
+
| `CERT_STORE_FAIL` | warn | La verifica del certificato HTTPS non riesce |
|
|
243
|
+
| `DLL_LOAD_FAIL` | bad | Caricamento della DLL dell'estensione nativa non riesce |
|
|
244
|
+
| `ABI_MISMATCH` | bad | Incompatibilità binaria (ARM/x86) |
|
|
245
|
+
| `PIP_MISSING` | warn | pip non disponibile |
|
|
246
|
+
| `PIP_CHECK_FAIL` | warn | Conflitti di dipendenze rilevati |
|
|
247
|
+
| `USER_SITE_LEAK` | warn | user-site-packages abilitato nell'ambiente virtuale |
|
|
248
|
+
| `PYTHONPATH_INJECTED` | warn | Variabile d'ambiente PYTHONPATH impostata |
|
|
249
|
+
| `ARCH_MISMATCH` | bad | Python a 32 bit quando è richiesto a 64 bit |
|
|
250
|
+
| `PYVENV_CFG_INVALID` | warn | pyvenv.cfg danneggiato o mancante |
|
|
251
|
+
|
|
252
|
+
## Sviluppo
|
|
253
|
+
|
|
254
254
|
```bash
|
|
255
255
|
npm install
|
|
256
256
|
npm run typecheck # Type check
|
|
257
257
|
npm run test # Run tests
|
|
258
258
|
npm run build # Build to dist/
|
|
259
259
|
```
|
|
260
|
-
|
|
261
|
-
##
|
|
262
|
-
|
|
263
|
-
|
|
260
|
+
|
|
261
|
+
## Sicurezza e ambito dei dati
|
|
262
|
+
|
|
263
|
+
- **Scansolo in lettura:** I file eseguibili Python e il file pyvenv.cfg vengono letti, ma mai modificati.
|
|
264
|
+
- **Sottoprocessi:** avvia `python` con argomenti controllati, senza l'esecuzione tramite shell.
|
|
265
|
+
- **Rete:** l'opzione `--httpsProbe` (facoltativa) verifica i certificati SSL, ma non vengono effettuate altre richieste in uscita.
|
|
266
|
+
- **Nessun dato di telemetria** viene raccolto o trasmesso; consultare il file [SECURITY.md](SECURITY.md) per la politica completa.
|
|
267
|
+
|
|
268
|
+
## Licenza
|
|
269
|
+
|
|
270
|
+
MIT
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
Creato da [MCP Tool Shop](https://mcp-tool-shop.github.io/)
|
package/README.ja.md
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="README.md">English</a> | <a href="README.
|
|
3
|
-
</p>
|
|
4
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.md">English</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
5
|
<p align="center">
|
|
6
6
|
<img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/venvkit/readme.png" alt="venvkit" width="400">
|
|
7
7
|
</p>
|
|
8
|
-
|
|
9
|
-
# venvkit
|
|
10
|
-
|
|
11
|
-
> [MCP Tool Shop](https://mcptoolshop.com) の一部
|
|
12
|
-
|
|
8
|
+
|
|
9
|
+
# venvkit
|
|
10
|
+
|
|
11
|
+
> [MCP Tool Shop](https://mcptoolshop.com) の一部
|
|
12
|
+
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="https://github.com/mcp-tool-shop-org/venvkit/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/venvkit/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
15
15
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square" alt="License: MIT"></a>
|
|
16
16
|
<a href="https://mcp-tool-shop-org.github.io/venvkit/"><img src="https://img.shields.io/badge/Landing_Page-live-blue?style=flat-square" alt="Landing Page"></a>
|
|
17
17
|
<a href="https://www.npmjs.com/package/@mcptoolshop/venvkit"><img src="https://img.shields.io/npm/v/@mcptoolshop/venvkit?style=flat-square&color=cb3837" alt="npm version"></a>
|
|
18
18
|
</p>
|
|
19
|
-
|
|
20
|
-
**Windows環境における機械学習ワークフロー向けのPython仮想環境診断ツールキット。**
|
|
21
|
-
|
|
22
|
-
システム上のPython環境をスキャンし、問題箇所(SSL、DLL、ABI
|
|
23
|
-
|
|
24
|
-
## 30秒で始める
|
|
25
|
-
|
|
19
|
+
|
|
20
|
+
**Windows環境における機械学習ワークフロー向けのPython仮想環境診断ツールキット。**
|
|
21
|
+
|
|
22
|
+
システム上のPython環境をスキャンし、問題箇所(SSL、DLL、ABIの不整合、パスの漏洩など)を診断し、タスクの実行履歴を追跡し、不安定なタスクを検出し、環境マップを生成します。
|
|
23
|
+
|
|
24
|
+
## 30秒で始める
|
|
25
|
+
|
|
26
26
|
```bash
|
|
27
27
|
git clone https://github.com/mcp-tool-shop-org/venvkit && cd venvkit
|
|
28
28
|
npm install && npm run build
|
|
29
29
|
node dist/map_cli.js --root C:\projects --httpsProbe
|
|
30
30
|
# Open .venvkit/venv-map.html in your browser
|
|
31
31
|
```
|
|
32
|
-
|
|
33
|
-
## 機能
|
|
34
|
-
|
|
35
|
-
- **doctorLite** -
|
|
36
|
-
- SSL/TLSの検証
|
|
37
|
-
- DLLのロード失敗(PyTorch/CUDAでよく発生)
|
|
38
|
-
- ABI
|
|
39
|
-
- pipの健全性チェック
|
|
40
|
-
- ユーザーサイトとPYTHONPATHの漏洩検出
|
|
41
|
-
|
|
42
|
-
- **scanEnvPaths** - システム上のすべてのPython環境を検出
|
|
43
|
-
- venv、conda環境、pyenvのバージョン、ベースインタプリタを検出
|
|
44
|
-
- 設定可能な深度とフィルタリング
|
|
45
|
-
|
|
46
|
-
- **mapRender** - Python環境を可視化
|
|
47
|
-
-
|
|
48
|
-
- ドキュメント用のMermaid図
|
|
49
|
-
- ベースインタプリタのグループ化と影響範囲分析
|
|
50
|
-
- タスクのルーティング可視化
|
|
51
|
-
|
|
52
|
-
- **runLog** - タスクの実行履歴を追跡
|
|
53
|
-
- 追記専用のJSONL形式
|
|
54
|
-
- どの環境でどのタスクが実行されたかを記録
|
|
55
|
-
- 成功/失敗を記録し、エラーを分類
|
|
56
|
-
|
|
57
|
-
- **taskCluster** - シグネチャごとにタスクの実行をまとめる
|
|
58
|
-
- 不安定なタスクの検出(一貫性のない成功/失敗)
|
|
59
|
-
- 環境に依存する不安定なタスクの検出
|
|
60
|
-
- 失敗のホットスポットの特定
|
|
61
|
-
- 感染分析(共通の根本原因)
|
|
62
|
-
|
|
63
|
-
## インストール
|
|
64
|
-
|
|
32
|
+
|
|
33
|
+
## 機能
|
|
34
|
+
|
|
35
|
+
- **doctorLite** - 任意のPythonインタプリタの高速ヘルスチェック
|
|
36
|
+
- SSL/TLSの検証
|
|
37
|
+
- DLLのロード失敗(PyTorch/CUDAでよく発生)
|
|
38
|
+
- ABIの不整合(ARM vs x86)
|
|
39
|
+
- pipの健全性チェック
|
|
40
|
+
- ユーザーサイトとPYTHONPATHの漏洩検出
|
|
41
|
+
|
|
42
|
+
- **scanEnvPaths** - システム上のすべてのPython環境を検出
|
|
43
|
+
- venv、conda環境、pyenvのバージョン、ベースインタプリタを検出
|
|
44
|
+
- 設定可能な深度とフィルタリング
|
|
45
|
+
|
|
46
|
+
- **mapRender** - Python環境を可視化
|
|
47
|
+
- プログラムでの利用を目的としたグラフのJSON出力
|
|
48
|
+
- ドキュメント用のMermaid図
|
|
49
|
+
- ベースインタプリタのグループ化と影響範囲分析
|
|
50
|
+
- タスクのルーティング可視化
|
|
51
|
+
|
|
52
|
+
- **runLog** - タスクの実行履歴を追跡
|
|
53
|
+
- 追記専用のJSONL形式
|
|
54
|
+
- どの環境でどのタスクが実行されたかを記録
|
|
55
|
+
- 成功/失敗を記録し、エラーを分類
|
|
56
|
+
|
|
57
|
+
- **taskCluster** - シグネチャごとにタスクの実行をまとめる
|
|
58
|
+
- 不安定なタスクの検出(一貫性のない成功/失敗)
|
|
59
|
+
- 環境に依存する不安定なタスクの検出
|
|
60
|
+
- 失敗のホットスポットの特定
|
|
61
|
+
- 感染分析(共通の根本原因)
|
|
62
|
+
|
|
63
|
+
## インストール
|
|
64
|
+
|
|
65
65
|
```bash
|
|
66
66
|
npm install
|
|
67
67
|
npm run build
|
|
68
68
|
```
|
|
69
|
-
|
|
70
|
-
## CLIの使用方法
|
|
71
|
-
|
|
69
|
+
|
|
70
|
+
## CLIの使用方法
|
|
71
|
+
|
|
72
72
|
```bash
|
|
73
73
|
# Scan current directory and generate ecosystem map
|
|
74
74
|
node dist/map_cli.js
|
|
@@ -82,33 +82,33 @@ node dist/map_cli.js --runlog .venvkit/runs.jsonl
|
|
|
82
82
|
# Output options
|
|
83
83
|
node dist/map_cli.js --out ./output --minScore 50 --strict --httpsProbe
|
|
84
84
|
```
|
|
85
|
-
|
|
86
|
-
### CLIオプション
|
|
87
|
-
|
|
88
|
-
|
|
|
89
|
-
|
|
90
|
-
| `--root, -r` | スキャンするディレクトリ(複数指定可能) |
|
|
91
|
-
| `--out` | 出力ディレクトリ(デフォルト:`.venvkit`) |
|
|
92
|
-
| `--maxDepth` | スキャンする最大ディレクトリ深度(デフォルト:5) |
|
|
93
|
-
| `--strict` | 厳格モードのチェックを有効にする |
|
|
94
|
-
| `--httpsProbe` | HTTPS接続をテストする |
|
|
95
|
-
| `--minScore` | このヘルススコア以下の環境をフィルタリングする |
|
|
96
|
-
| `--concurrency` | 並列チェック(デフォルト:CPUコア数) |
|
|
97
|
-
| `--runlog` | タスク実行ログ(JSONL
|
|
98
|
-
| `--no-tasks` | タスクの可視化をスキップする |
|
|
99
|
-
|
|
100
|
-
###
|
|
101
|
-
|
|
102
|
-
|
|
|
103
|
-
|
|
104
|
-
| `venv-map.json` | 完全なグラフデータ(ノード、エッジ、概要) |
|
|
105
|
-
| `venv-map.mmd` | Mermaid図のソース |
|
|
106
|
-
| `venv-map.html` | インタラクティブビューア |
|
|
107
|
-
| `reports.json` | 生のdoctorLiteレポート |
|
|
108
|
-
| `insights.json` | 実行可能な推奨事項 |
|
|
109
|
-
|
|
110
|
-
##
|
|
111
|
-
|
|
85
|
+
|
|
86
|
+
### CLIオプション
|
|
87
|
+
|
|
88
|
+
| フラグ | 説明 |
|
|
89
|
+
|------|-------------|
|
|
90
|
+
| `--root, -r` | スキャンするディレクトリ(複数指定可能) |
|
|
91
|
+
| `--out` | 出力ディレクトリ(デフォルト:`.venvkit`) |
|
|
92
|
+
| `--maxDepth` | スキャンする最大ディレクトリ深度(デフォルト:5) |
|
|
93
|
+
| `--strict` | 厳格モードのチェックを有効にする |
|
|
94
|
+
| `--httpsProbe` | HTTPS接続をテストする |
|
|
95
|
+
| `--minScore` | このヘルススコア以下の環境をフィルタリングする |
|
|
96
|
+
| `--concurrency` | 並列チェック(デフォルト:CPUコア数) |
|
|
97
|
+
| `--runlog` | タスク実行ログ(JSONL)へのパス |
|
|
98
|
+
| `--no-tasks` | タスクの可視化をスキップする |
|
|
99
|
+
|
|
100
|
+
### 出力ファイル
|
|
101
|
+
|
|
102
|
+
| ファイル | 説明 |
|
|
103
|
+
|------|-------------|
|
|
104
|
+
| `venv-map.json` | 完全なグラフデータ(ノード、エッジ、概要) |
|
|
105
|
+
| `venv-map.mmd` | Mermaid図のソース |
|
|
106
|
+
| `venv-map.html` | インタラクティブビューア |
|
|
107
|
+
| `reports.json` | 生のdoctorLiteレポート |
|
|
108
|
+
| `insights.json` | 実行可能な推奨事項 |
|
|
109
|
+
|
|
110
|
+
## プログラムによる利用方法
|
|
111
|
+
|
|
112
112
|
```typescript
|
|
113
113
|
import { doctorLite, scanEnvPaths, mapRender, readRunLog } from 'venvkit';
|
|
114
114
|
|
|
@@ -143,11 +143,11 @@ const { graph, mermaid, insights } = mapRender(reports, runs, {
|
|
|
143
143
|
includeHotEdgeLabels: true,
|
|
144
144
|
});
|
|
145
145
|
```
|
|
146
|
-
|
|
147
|
-
## 実行ログのスキーマ
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
146
|
+
|
|
147
|
+
## 実行ログのスキーマ
|
|
148
|
+
|
|
149
|
+
JSONLファイルにイベントを追記することで、タスクの実行を追跡します。
|
|
150
|
+
|
|
151
151
|
```typescript
|
|
152
152
|
import { appendRunLog, newRunId } from 'venvkit';
|
|
153
153
|
|
|
@@ -172,11 +172,11 @@ await appendRunLog('.venvkit/runs.jsonl', {
|
|
|
172
172
|
},
|
|
173
173
|
});
|
|
174
174
|
```
|
|
175
|
-
|
|
176
|
-
## タスクのクラスタリング
|
|
177
|
-
|
|
178
|
-
タスクの実行が多い場合、venvkitはシグネチャごとにそれらをクラスタリングします。
|
|
179
|
-
|
|
175
|
+
|
|
176
|
+
## タスクのクラスタリング
|
|
177
|
+
|
|
178
|
+
タスクの実行が多い場合、venvkitはシグネチャごとにそれらをクラスタリングします。
|
|
179
|
+
|
|
180
180
|
```typescript
|
|
181
181
|
import { clusterRuns, isFlaky, getFailingEnvs } from 'venvkit';
|
|
182
182
|
|
|
@@ -192,11 +192,11 @@ for (const c of clusters) {
|
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
```
|
|
195
|
-
|
|
196
|
-
## グラフのスキーマ
|
|
197
|
-
|
|
198
|
-
`mapRender`の出力は、安定したJSONスキーマに従います。
|
|
199
|
-
|
|
195
|
+
|
|
196
|
+
## グラフのスキーマ
|
|
197
|
+
|
|
198
|
+
`mapRender`の出力は、安定したJSONスキーマに従います。
|
|
199
|
+
|
|
200
200
|
```typescript
|
|
201
201
|
type GraphJSONv1 = {
|
|
202
202
|
version: '1.0';
|
|
@@ -217,47 +217,58 @@ type GraphJSONv1 = {
|
|
|
217
217
|
edges: GraphEdge[];
|
|
218
218
|
};
|
|
219
219
|
```
|
|
220
|
-
|
|
221
|
-
### ノードの種類
|
|
222
|
-
|
|
223
|
-
|
|
|
224
|
-
|
|
225
|
-
| `base` | ベースのPythonインタプリタ(例:`C:\Python311`) |
|
|
226
|
-
| `venv` | 仮想環境 |
|
|
227
|
-
| `task` | タスクのシグネチャ(クラスタリングされた実行) |
|
|
228
|
-
|
|
229
|
-
### エッジの種類
|
|
230
|
-
|
|
231
|
-
|
|
|
232
|
-
|
|
233
|
-
| `USES_BASE` | venvとベースの関係 |
|
|
234
|
-
| `ROUTES_TASK_TO` | タスクと環境のルーティング |
|
|
235
|
-
| `FAILED_RUN` | タスクと環境の失敗(Mermaidでは破線で表示) |
|
|
236
|
-
|
|
237
|
-
## エラーコード
|
|
238
|
-
|
|
239
|
-
|
|
|
240
|
-
|
|
241
|
-
| `SSL_BROKEN` | bad | SSLモジュールのインポートに失敗 |
|
|
242
|
-
| `CERT_STORE_FAIL` | warn | HTTPS証明書の検証に失敗 |
|
|
243
|
-
| `DLL_LOAD_FAIL` | bad | ネイティブ拡張DLLのロードに失敗 |
|
|
244
|
-
| `ABI_MISMATCH` | bad | バイナリの互換性がない(ARM/x86) |
|
|
245
|
-
| `PIP_MISSING` | warn | pipが利用できない |
|
|
246
|
-
| `PIP_CHECK_FAIL` | warn | 依存関係の競合が検出された |
|
|
247
|
-
| `USER_SITE_LEAK` | warn | venv
|
|
248
|
-
| `PYTHONPATH_INJECTED` | warn | PYTHONPATH
|
|
249
|
-
| `ARCH_MISMATCH` | bad | 64
|
|
250
|
-
| `PYVENV_CFG_INVALID` | warn | pyvenv.cfg
|
|
251
|
-
|
|
252
|
-
## 開発
|
|
253
|
-
|
|
220
|
+
|
|
221
|
+
### ノードの種類
|
|
222
|
+
|
|
223
|
+
| 種類 | 説明 |
|
|
224
|
+
|------|-------------|
|
|
225
|
+
| `base` | ベースのPythonインタプリタ(例:`C:\Python311`) |
|
|
226
|
+
| `venv` | 仮想環境 |
|
|
227
|
+
| `task` | タスクのシグネチャ(クラスタリングされた実行) |
|
|
228
|
+
|
|
229
|
+
### エッジの種類
|
|
230
|
+
|
|
231
|
+
| 種類 | 説明 |
|
|
232
|
+
|------|-------------|
|
|
233
|
+
| `USES_BASE` | venvとベースの関係 |
|
|
234
|
+
| `ROUTES_TASK_TO` | タスクと環境のルーティング |
|
|
235
|
+
| `FAILED_RUN` | タスクと環境の失敗(Mermaidでは破線で表示) |
|
|
236
|
+
|
|
237
|
+
## エラーコード
|
|
238
|
+
|
|
239
|
+
| コード | 深刻度 | 説明 |
|
|
240
|
+
|------|----------|-------------|
|
|
241
|
+
| `SSL_BROKEN` | bad | SSLモジュールのインポートに失敗 |
|
|
242
|
+
| `CERT_STORE_FAIL` | warn | HTTPS証明書の検証に失敗 |
|
|
243
|
+
| `DLL_LOAD_FAIL` | bad | ネイティブ拡張DLLのロードに失敗 |
|
|
244
|
+
| `ABI_MISMATCH` | bad | バイナリの互換性がない(ARM/x86) |
|
|
245
|
+
| `PIP_MISSING` | warn | pipが利用できない |
|
|
246
|
+
| `PIP_CHECK_FAIL` | warn | 依存関係の競合が検出された |
|
|
247
|
+
| `USER_SITE_LEAK` | warn | venvでユーザーサイトパッケージが有効になっている |
|
|
248
|
+
| `PYTHONPATH_INJECTED` | warn | PYTHONPATH環境変数が設定されている |
|
|
249
|
+
| `ARCH_MISMATCH` | bad | 64ビットが必要な場合に32ビットのPythonが使用されている |
|
|
250
|
+
| `PYVENV_CFG_INVALID` | warn | 破損または紛失したpyvenv.cfg |
|
|
251
|
+
|
|
252
|
+
## 開発
|
|
253
|
+
|
|
254
254
|
```bash
|
|
255
255
|
npm install
|
|
256
256
|
npm run typecheck # Type check
|
|
257
257
|
npm run test # Run tests
|
|
258
258
|
npm run build # Build to dist/
|
|
259
259
|
```
|
|
260
|
-
|
|
261
|
-
##
|
|
262
|
-
|
|
263
|
-
|
|
260
|
+
|
|
261
|
+
## セキュリティとデータ範囲
|
|
262
|
+
|
|
263
|
+
- **読み取り専用スキャン:** Pythonの実行ファイルとpyvenv.cfgファイルは読み込まれますが、変更されることはありません。
|
|
264
|
+
- **サブプロセス:** `python`を特定の引数で起動します。シェルによる実行は行われません。
|
|
265
|
+
- **ネットワーク:** オプションの`--httpsProbe`を使用すると、SSL証明書をテストできます。それ以外の外部へのリクエストは行われません。
|
|
266
|
+
- **テレメトリデータは収集も送信もされません。** 詳細については、[SECURITY.md](SECURITY.md) を参照してください。
|
|
267
|
+
|
|
268
|
+
## ライセンス
|
|
269
|
+
|
|
270
|
+
MIT
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
[MCP Tool Shop](https://mcp-tool-shop.github.io/) によって作成されました。
|