Skip to main content

Gestionnaire d'environnements virtuels Python moderne

Project description

🌟 GestVenv v2.0

GestVenv Logo
Gestionnaire d'environnements virtuels Python moderne

PyPI version Python Support Tests Coverage License: MIT

🎉 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 gestvenv ou gv indiffé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

🔧 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 !

  1. Fork le projet
  2. Créer une branche feature (git checkout -b feature/amazing-feature)
  3. Commit les changements (git commit -m 'Add amazing feature')
  4. Push vers la branche (git push origin feature/amazing-feature)
  5. 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

GestVenv v2.0 - L'avenir de la gestion d'environnements Python
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

gestvenv-2.0.3.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gestvenv-2.0.3-py3-none-any.whl (234.5 kB view details)

Uploaded Python 3

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

Hashes for gestvenv-2.0.3.tar.gz
Algorithm Hash digest
SHA256 7476dd7d005fea6a90bbb8968246996966f21aff93945368b2234e19f77f55e1
MD5 5cccd852234bb7a234d057217677a68b
BLAKE2b-256 fe07d4f436a5b4be8ce5df5990e5105d780b2441847fdeeade62babfe7c0e259

See more details on using hashes here.

Provenance

The following attestation bundles were made for gestvenv-2.0.3.tar.gz:

Publisher: release.yml on thearchit3ct/gestvenv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for gestvenv-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2c229d41cf20b85356b6a99a0664b1a5b276364ff134d42337d8faaadf808a63
MD5 a91aeb4a167eceabe250a14cf36771f6
BLAKE2b-256 5b3d82be5ccdd3a176196d8eee2746c4ce39b919cdbc98ca8217fa0405e22528

See more details on using hashes here.

Provenance

The following attestation bundles were made for gestvenv-2.0.3-py3-none-any.whl:

Publisher: release.yml on thearchit3ct/gestvenv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page