Gestionnaire d'environnements virtuels Python moderne
Project description
🌟 GestVenv v2.0
Gestionnaire d'environnements virtuels Python moderne
🎉 Nouveautés v2.0
🚀 Environnements Éphémères
- Context managers Python : Création et nettoyage automatique
- Isolation avancée : 4 niveaux (process, namespace, container, chroot)
- Monitoring temps réel : CPU, mémoire, disque
- Storage optimisé : tmpfs, memory pour performance maximale
🔌 Extension VS Code Native
- IntelliSense pour packages Python installés
- Auto-complétion intelligente et contextuelle
- Language Server Protocol complet
- WebSocket pour synchronisation temps réel
- Refactoring assisté et code actions
🌐 Interface Web Moderne
- Dashboard Vue 3 avec Tailwind CSS
- API REST complète avec FastAPI
- WebSocket pour updates temps réel
- Gestion visuelle des environnements et packages
⚡ Alias de commande
- Utilisez
gestvenvougvindifféremment
🚀 Fonctionnalités
🏗️ Création d'Environnements
- 🔥 Performance : 10x plus rapide avec le backend uv
- 📋 Templates avancés : Django, FastAPI, Data Science, CLI
- 🔄 Import multi-format : pyproject.toml, conda, Pipfile, requirements.txt
- 🎯 Auto-détection : Backend optimal selon le projet
📦 Gestion des Packages
- 📊 Groupes de dépendances : Support PEP 621 complet
- 💾 Cache intelligent : Mode hors ligne avec compression
- 🔄 Synchronisation : Sync automatique pyproject.toml
- ⚡ Téléchargements parallèles : Installation optimisée
🔧 Outils Avancés
- 🩺 Diagnostic complet : Détection et réparation auto
- 🐚 Intégration shell : Commandes run/shell intégrées
- ⚙️ Configuration flexible : Locale + variables d'environnement
- 📊 Monitoring santé : État détaillé des environnements
🚀 Environnements Éphémères
- ⚡ Création ultra-rapide : < 1 seconde avec uv
- 🧹 Nettoyage automatique : Context managers Python
- 🔒 Isolation sécurisée : Process, namespace, container, chroot
- 📊 Monitoring temps réel : CPU, mémoire, disque
- 💾 Stockage optimisé : tmpfs, mémoire pour performance max
🌉 Migration
- 🔄 Import Pipenv : Migration transparente depuis Pipfile
- 🐍 Support Conda : Import environment.yml
- 📋 Export multi-format : JSON, requirements, pyproject.toml
- 🔗 Compatibilité totale : Avec v1.x et autres outils
⚡ Installation
# Installation standard
pip install gestvenv
# Avec performances optimisées
pip install gestvenv[performance]
# Installation complète (recommandée)
pip install gestvenv[full]
# Pour développeurs avec extension VS Code
pip install gestvenv[dev]
🎯 Utilisation Rapide
Création d'environnements
# Environnement basique (utilise 'gv' ou 'gestvenv')
gv create monapp
# Depuis templates intégrés
gv create-from-template django monwebapp
gv create-from-template data-science monanalyse
gv create-from-template fastapi monapi
# Import depuis projets existants
gv create-from-pyproject ./pyproject.toml monapp
gv create-from-conda ./environment.yml monapp
gv import-from-pipfile ./Pipfile monapp
# Auto-détection et création
gv import ./mon-projet/pyproject.toml # Détecte le format automatiquement
Gestion avancée des packages
# Installation avec groupes de dépendances
gv install requests flask --env monapp --group web
gv install pytest black --env monapp --group dev
# Listage par groupes
gv list-packages --env monapp --group dev
# Synchronisation automatique
gv sync monapp --groups dev,test --clean
# Mise à jour intelligente
gv update --env monapp --all
Cache intelligent et mode hors ligne
# Pré-téléchargement depuis requirements
gv cache add -r requirements.txt --python-version 3.11
# Export/import de cache
gv cache export /backup/cache.tar.gz --compress
gv cache import /backup/cache.tar.gz --verify
# Mode hors ligne complet
gv --offline create monapp
gv --offline install requests --env monapp
Environnements éphémères
# API Python avec nettoyage automatique
import asyncio
from gestvenv import ephemeral
async def test_package():
async with ephemeral("test-env") as env:
await env.install(["requests", "pandas"])
result = await env.execute("python -c 'import requests; print(requests.__version__)'")
print(result.stdout)
# Cleanup automatique garanti
# Exécution
asyncio.run(test_package())
# CLI pour tests rapides
gv ephemeral create test --interactive --packages "requests,pandas"
gv ephemeral list
gv ephemeral stats
gv ephemeral cleanup --all
Extension VS Code
# Installation de l'extension
cd extensions/vscode
npm install
npm run package
# Dans VS Code
# 1. Ouvrir le gestionnaire d'extensions
# 2. "Install from VSIX..."
# 3. Sélectionner gestvenv-vscode-x.x.x.vsix
Interface Web
# Démarrer l'interface web
cd web
./start-dev.sh
# Accéder à http://localhost:5173
Diagnostic et réparation
# Diagnostic complet
gv doctor --full --performance
# Réparation automatique
gv doctor --auto-fix
gv repair monapp --all
# Nettoyage du système
gv cleanup --orphaned --cache
Configuration avancée
# Configuration globale
gv config set preferred_backend uv
gv config set cache_size_mb 2000
# Configuration locale du projet
gv config set --local preferred_backend poetry
# Variables d'environnement
export GESTVENV_BACKEND=uv
export GESTVENV_CACHE_ENABLED=true
Intégration shell
# Exécution dans l'environnement
gv run --env monapp python mon_script.py
gv run --env monapp pytest tests/
# Shell interactif
gv shell --env monapp
# Activation classique
gv activate monapp
📊 Performance et Backends
| Backend | Installation | Résolution | Cache | Groupes | Lock Files | Auto-détection |
|---|---|---|---|---|---|---|
| uv | 🔥🔥🔥 | 🔥🔥🔥 | 🔥🔥🔥 | ✅ | ✅ | ✅ |
| PDM | 🔥🔥🔥 | 🔥🔥🔥 | 🔥🔥🔥 | ✅ | ✅ | ✅ |
| poetry | 🔥🔥 | 🔥🔥 | 🔥🔥 | ✅ | ✅ | ✅ |
| pip | 🔥 | 🔥 | 🔥 | ✅ | ❌ | ✅ |
Templates Intégrés
| Template | Description | Dépendances | Structure |
|---|---|---|---|
| django | Projet Django moderne | Django 4.2+, environ, psycopg2 | Apps, settings, URLs |
| fastapi | API REST performante | FastAPI, SQLAlchemy, Alembic | Modèles, routeurs, DB |
| data-science | Analyse de données | Pandas, NumPy, Jupyter, Scikit-learn | Notebooks, pipelines ML |
| cli | Outil en ligne de commande | Click, Rich, Typer | Commands, utils |
| basic | Projet Python standard | Minimal | Structure basique |
🗂️ Structure de projet supportée
mon-projet/
├── pyproject.toml # Configuration principale (PEP 621)
├── requirements.txt # Support legacy
├── .gestvenv/ # Cache et configuration
│ ├── environments/ # Environnements virtuels
│ ├── cache/ # Cache packages
│ └── ephemeral/ # Environnements temporaires
├── extensions/ # Extensions IDE
│ └── vscode/ # Extension VS Code
├── web/ # Interface web
│ ├── api/ # API REST/WebSocket
│ └── web-ui/ # Interface Vue 3
└── src/ # Code source
🔧 Configuration
Configuration globale
# ~/.config/gestvenv/config.toml
[general]
preferred_backend = "uv"
default_python = "3.11"
auto_cleanup = true
[cache]
enabled = true
size_mb = 2000
compression = "zstd"
[ephemeral]
default_isolation = "namespace"
default_storage = "tmpfs"
auto_cleanup_seconds = 3600
[ide]
vscode_extension = true
intellisense_enabled = true
Configuration projet
# .gestvenv/config.toml
[project]
name = "mon-projet"
backend = "uv"
python_version = "3.11"
[dependencies]
groups = ["main", "dev", "test", "docs"]
🔄 Migration depuis v1.x
# Migration automatique
gv migrate --from-v1
# Import manuel
gv import-v1-environments ~/.gestvenv-v1/
🩺 Diagnostic et maintenance
# Diagnostic complet
gv doctor --full --json
# Réparation automatique
gv repair --env monapp --deep
# Nettoyage système
gv cleanup --all --force
📚 Documentation
- Guide d'installation
- Démarrage rapide
- Guide utilisateur
- Environnements éphémères
- Extension VS Code
- API Web
- Migration v1.x → v2.0
- Documentation API
🔧 Développement
# Cloner le projet
git clone https://github.com/gestvenv/gestvenv.git
cd gestvenv
# Installation développement
pip install -e .[dev]
# Tests complets
pytest --cov=gestvenv --cov-report=html
# Linting et formatage
pre-commit run --all-files
# Build extension VS Code
cd extensions/vscode
npm run package
# Lancer l'interface web
cd web
./start-dev.sh
🤝 Contribution
Les contributions sont bienvenues !
- Fork le projet
- Créer une branche feature (
git checkout -b feature/amazing-feature) - Commit les changements (
git commit -m 'Add amazing feature') - Push vers la branche (
git push origin feature/amazing-feature) - Ouvrir une Pull Request
Voir CONTRIBUTING.md pour plus de détails.
📄 Licence
Ce projet est sous licence MIT. Voir LICENSE pour les détails.
🙏 Remerciements
- Communauté Python pour les standards PEP
- Équipes uv, poetry, PDM pour l'inspiration
- Microsoft pour VS Code Extension API
- Vue.js team pour le framework réactif
- Tous les contributeurs et utilisateurs
Maintenant avec environnements éphémères, extension VS Code et interface web!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gestvenv-2.0.3.tar.gz.
File metadata
- Download URL: gestvenv-2.0.3.tar.gz
- Upload date:
- Size: 2.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7476dd7d005fea6a90bbb8968246996966f21aff93945368b2234e19f77f55e1
|
|
| MD5 |
5cccd852234bb7a234d057217677a68b
|
|
| BLAKE2b-256 |
fe07d4f436a5b4be8ce5df5990e5105d780b2441847fdeeade62babfe7c0e259
|
Provenance
The following attestation bundles were made for gestvenv-2.0.3.tar.gz:
Publisher:
release.yml on thearchit3ct/gestvenv
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gestvenv-2.0.3.tar.gz -
Subject digest:
7476dd7d005fea6a90bbb8968246996966f21aff93945368b2234e19f77f55e1 - Sigstore transparency entry: 834732913
- Sigstore integration time:
-
Permalink:
thearchit3ct/gestvenv@bf31f2588c2a0cc9ba6b2bc279854752a4466587 -
Branch / Tag:
refs/tags/v2.0.3 - Owner: https://github.com/thearchit3ct
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bf31f2588c2a0cc9ba6b2bc279854752a4466587 -
Trigger Event:
push
-
Statement type:
File details
Details for the file gestvenv-2.0.3-py3-none-any.whl.
File metadata
- Download URL: gestvenv-2.0.3-py3-none-any.whl
- Upload date:
- Size: 234.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c229d41cf20b85356b6a99a0664b1a5b276364ff134d42337d8faaadf808a63
|
|
| MD5 |
a91aeb4a167eceabe250a14cf36771f6
|
|
| BLAKE2b-256 |
5b3d82be5ccdd3a176196d8eee2746c4ce39b919cdbc98ca8217fa0405e22528
|
Provenance
The following attestation bundles were made for gestvenv-2.0.3-py3-none-any.whl:
Publisher:
release.yml on thearchit3ct/gestvenv
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gestvenv-2.0.3-py3-none-any.whl -
Subject digest:
2c229d41cf20b85356b6a99a0664b1a5b276364ff134d42337d8faaadf808a63 - Sigstore transparency entry: 834732919
- Sigstore integration time:
-
Permalink:
thearchit3ct/gestvenv@bf31f2588c2a0cc9ba6b2bc279854752a4466587 -
Branch / Tag:
refs/tags/v2.0.3 - Owner: https://github.com/thearchit3ct
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bf31f2588c2a0cc9ba6b2bc279854752a4466587 -
Trigger Event:
push
-
Statement type: