jokepy 🎭
Mini package humour pour générer des blagues aléatoires en français.
🚀 Installation
Depuis PyPI (recommandé)
pip install jokepy
Depuis les sources
git clone https://github.com/tawounfouet/jokepy.git
cd jokepy
pip install -e .
📖 Utilisation
En tant que module Python
from jokepy import get_random_joke, get_all_categories, get_jokes_count
# Blague aléatoire
print(get_random_joke())
# "Pourquoi les plongeurs plongent-ils toujours en arrière ? Parce que sinon ils tombent dans le bateau !"
# Blague par catégorie
print(get_random_joke("sport"))
# Lister les catégories
print(get_all_categories())
# ['sport', 'travail', 'animaux', 'école']
# Compter les blagues
print(get_jokes_count()) # Total
print(get_jokes_count("sport")) # Par catégorie
Interface en ligne de commande (CLI)
# Blague aléatoire
jokepy
# Blague par catégorie
jokepy -c sport
# Lister les catégories
jokepy --list-categories
# Compter les blagues
jokepy --count
jokepy --count sport
# Aide
jokepy --help
🎯 Fonctionnalités
- ✅ Génération de blagues aléatoires
- ✅ Support des catégories (sport, travail, animaux, école)
- ✅ Interface en ligne de commande intuitive
- ✅ API Python simple et claire
- ✅ Type hints complets
- ✅ Tests exhaustifs
- ✅ Documentation complète
🏗️ Développement
Prérequis
- Python 3.8+
- Git
Configuration initiale
# 1. Cloner le repository
git clone https://github.com/tawounfouet/jokepy.git
cd jokepy
# 2. Créer un environnement virtuel (ESSENTIEL !)
python -m venv venv
# 3. Activer l'environnement virtuel
# Sur macOS/Linux :
source venv/bin/activate
# Sur Windows :
# venv\Scripts\activate
# 4. Installer en mode développement
make dev-install
# ou manuellement :
pip install -e ".[dev,docs]"
pre-commit install
⚠️ Important : Toujours utiliser un environnement virtuel pour éviter les conflits de dépendances !
Tests
# Lancer tous les tests
make test
# ou
pytest
# Tests avec couverture
pytest --cov=jokepy
# Tests sur plusieurs versions Python
tox
Outils de qualité
# Formatage du code
make format
# ou
black src tests
isort src tests
# Vérification du style
make lint
# ou
flake8 src tests
# Vérification des types
make type-check
# ou
mypy src
📁 Structure du projet
jokepy/
│
├── src/
│ └── jokepy/
│ ├── __init__.py # API publique
│ ├── __main__.py # Point d'entrée CLI
│ ├── generator.py # Logique métier
│ └── py.typed # Support des types
│
├── tests/
│ ├── __init__.py
│ └── test_generator.py # Tests unitaires
│
├── docs/
│ ├── conf.py # Configuration Sphinx
│ ├── index.rst # Page d'accueil
│ └── api.rst # Documentation API
│
├── .github/
│ └── workflows/
│ ├── tests.yml # CI/CD
│ └── publish.yml # Publication PyPI
│
├── pyproject.toml # Configuration moderne
├── tox.ini # Tests multi-versions
├── Makefile # Tâches automatisées
├── .pre-commit-config.yaml # Hooks Git
├── .gitignore
├── LICENSE
├── CHANGELOG.md
└── README.md
🤝 Contribution
Les contributions sont les bienvenues ! Pour contribuer :
- Fork le projet
- Créez une branche pour votre fonctionnalité (
git checkout -b feature/amazing-feature) - Committez vos changements (
git commit -m 'Add amazing feature') - Pushez vers la branche (
git push origin feature/amazing-feature) - Ouvrez une Pull Request
Guidelines
- Respectez les conventions PEP 8
- Ajoutez des tests pour vos nouvelles fonctionnalités
- Mettez à jour la documentation si nécessaire
- Vérifiez que tous les tests passent
📊 Documentation
La documentation complète est disponible sur Read the Docs ou peut être construite localement :
# Construire la documentation
make docs
# ou
cd docs && make html
# Ouvrir la documentation
open docs/_build/html/index.html
📄 Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
🎉 Remerciements
- Merci à tous les contributeurs
- Inspiré par la joie de partager de l'humour en français
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 jokepykit-0.1.0.tar.gz.
File metadata
- Download URL: jokepykit-0.1.0.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96071330ee80d53a35eb37c9a87c801eb81e64e278d12079f763289783e05eec
|
|
| MD5 |
18368a6188c0f85fcd995ae189d01361
|
|
| BLAKE2b-256 |
cb105a2e6ed3165dac0d7972fc92577f8ecd7085db1bf2856b83962107152bf4
|
File details
Details for the file jokepykit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: jokepykit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
690037c8959335cda01730398cfa00470e7cf736e255abaa0222513af7f07933
|
|
| MD5 |
a4b473ee78f4b1e8a18553c83ae80c3a
|
|
| BLAKE2b-256 |
d770a8920cc0d328a6fccbff8b5f6b45fffca3353105e4dab44b79bf397c2a19
|