PyFoundry Template¶
Un template Cookiecutter de qualité industrielle pour démarrer rapidement des projets de Data Science en Python avec un environnement reproductible et des outils de qualité automatisés.
🚀 Vision¶
PyFoundry automatise complètement la création d'environnements Data Science modernes : environnement reproductible, qualité de code, intégration Git/GitHub et workflow zero-config.
⚡ Démarrage rapide¶
pour créer un projet suivant le template PyFoundry
# 1. Activer cruft
mamba activate pyfoundry # un exemple d'activation d'environnement contenant cruft
# 2. Se logger à ghcr.io (pour les features devcontainer)
docker login ghcr.io
# 3. Créer un nouveau projet (tu devras repondre a quelques questions)
# nom du projet, etc
cruft create https://github.com/castorfou/PyFoundry.git
# 4. Ouvrir dans VS Code (setup automatique complet)
# remplacer mon-nouveau-projet par le vrai nom (project_slug)
code mon-nouveau-projet
# → VS Code propose "Reopen in Container"
# → Configuration Git + GitHub (un connexion à github sera effectuée) + Pre-commit automatique
pour pousser vers github.com
pour activer les github pages
gh api repos/$GITHUB_USERNAME/$PROJECT_SLUG/pages -X POST -f build_type=workflow
gh repo edit $GITHUB_USERNAME/$PROJECT_SLUG --homepage "https://$GITHUB_USERNAME.github.io/$PROJECT_SLUG"
pour recuperer les dernieres modifications de PyFoundry
# 1. Activer cruft
mamba activate pyfoundry # un exemple d'activation d'environnement contenant cruft
cruft update
cruft check
✨ Fonctionnalités¶
- 🐳 Environnement reproductible : Devcontainer VS Code avec uv, extensions optimisées DS
- 🔧 Qualité de code automatisée : Ruff + MyPy + Pre-commit hooks pré-configurés
- 🌐 Intégration GitHub complète : Authentification automatique, remote configuré
- 📁 Structure : Organisation standardisée pour projets Data Science
- ⚡ Setup zero-config : Git init + hooks + auth GitHub en une commande
- 📚 Documentation moderne : Guide complet avec MkDocs Material
- 🔄 Mise à jour facile : Template évolutif avec cruft
- 🤖 Claude Code intégré : CLAUDE.md généré automatiquement avec documentation projet et dossier .claude/commands/ pour commandes personnalisées
🛠️ Stack technologique¶
- Templating : Cookiecutter / Cruft pour templates évolutifs
- Environnement : Devcontainer VS Code avec features officielles
- Dépendances : uv & pyproject.toml avec verrouillage automatique
- Qualité de code : Ruff (linting + formatage) + MyPy (types statiques)
- Hooks : Pre-commit avec 4 repos optimisés pour Data Science
- Git/GitHub : Authentification automatique + configuration seamless
- Documentation : MkDocs & mkdocs-material
- CI/CD : GitHub Actions
🏗️ Structure¶
mon-nouveau-projet/
├── .claude/ # Config Claude Code
├── .devcontainer/ # Config devcontainer
├── .github/ # Config CI/CD (test/build lib / deploy mkdocs)
├── data/
│ ├── raw/ # Données brutes (gitignorées)
│ └── processed/ # Datasets traités
├── docs/
│ ├── claude/memory/ # Memoire Claude: par feature developpees
│ ├── user/ # Doc user - comment utiliser
│ └── developer/ # Doc developer - comment modifier
├── notebooks/ # Notebooks python REPL
└── src/ # Libs python
🎯 DevContainer Optimisé¶
- Image : Python 3.12 officielle Microsoft avec utilisateur vscode
- Performance : Configuration simplifiée, build plus rapide
- Extensions : Extensions VS Code essentielles (Python, Jupyter, Git)
📚 Documentation¶
Pour les Utilisateurs¶
- Guide complet : Toutes les fonctionnalités et workflow de A à Z
- Installation : Pré-requis et setup initial
- Structure du projet : Organisation des fichiers et dossiers
Pour les Développeurs¶
- Architecture : Design et choix techniques du template
- Roadmap : Historique et évolutions du template
- Qualite : Approche qualite avec pre-commit, ruff, etc
- Contribution : Comment contribuer au projet
- Test : Comment tester des devs en cours
- Déploiement : Publication et release
🚀 Prêt à créer votre projet ? Consultez le guide complet !