# CS-Manim
Animations vidéo avec Manim pour expliquer les concepts techniques liés à l'informatique.
## Description
CS-Manim est une librairie Python qui fournit des objets et des styles réutilisables pour créer des animations éducatives avec Manim, spécialement conçue pour expliquer des concepts d'informatique et de programmation.
## Installation
```bash
pip install cs-manim
```
## Utilisation
```python
from manim import *
from cs_manim import Computer, Server, MobilePhone
from cs_manim import CLIENT_COLOR, SERVER_COLOR, FONT_NAME
class MyScene(Scene):
def construct(self):
# Créer des objets pour vos animations
computer = Computer("PC Client")
server = Server("API Server")
mobile = MobilePhone("Smartphone")
# Positionner et animer
computer.shift(LEFT * 3)
server.shift(RIGHT * 3)
self.play(Create(computer))
self.play(Create(server))
```
## Fonctionnalités
- **Objets réutilisables** : Ordinateurs, serveurs, téléphones portables
- **Styles cohérents** : Couleurs et polices prédéfinies
- **Compatible Manim** : Utilise Manim 0.19.0+
- **Facile à utiliser** : Import simple et API intuitive
## Objets disponibles
### Computer
```python
computer = Computer(name="Mon PC", color=CLIENT_COLOR)
```
### Server
```python
server = Server(name="Mon Serveur", color=SERVER_COLOR)
```
### MobilePhone
```python
mobile = MobilePhone(name="Mon Téléphone", color=PURPLE)
```
## Styles disponibles
- `CLIENT_COLOR` : Couleur par défaut pour les clients (BLUE)
- `SERVER_COLOR` : Couleur par défaut pour les serveurs (GREEN)
- `REQUEST_COLOR` : Couleur pour les requêtes (YELLOW)
- `RESPONSE_COLOR` : Couleur pour les réponses (ORANGE)
- `FONT_NAME` : Police par défaut ("Inconsolata")
## Développement
### Configuration de l'environnement
```bash
# Cloner le dépôt
git clone https://github.com/PierreOlivierBrillant/cs-manim.git
cd cs-manim
# Créer un environnement virtuel
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# ou .venv\Scripts\activate # Windows
# Installer en mode développement
pip install -e .[dev]
```
### Tests
```bash
# Exécuter les tests
pytest
# Avec couverture
pytest --cov=cs_manim
```
### Formatage et linting
```bash
# Formater le code
black cs_manim tests examples
# Vérifier le style
flake8 cs_manim tests examples
# Vérifier les types
mypy cs_manim
```
### Construction du package
```bash
# Construire le package
python -m build
# Vérifier le package
twine check dist/*
```
## Publication
### Prérequis pour la publication
1. Compte PyPI (https://pypi.org/)
2. Token d'API PyPI configuré
3. Toutes les vérifications passées
### Étapes de publication
1. **Mettre à jour la version** dans `pyproject.toml`
2. **Mettre à jour le CHANGELOG.md**
3. **Créer un tag git** : `git tag v0.1.0`
4. **Pousser le tag** : `git push origin v0.1.0`
5. **Créer une release sur GitHub**
La publication sur PyPI se fait automatiquement via GitHub Actions lors de la création d'une release.
### Publication manuelle
```bash
# Construire le package
python -m build
# Publier sur PyPI
twine upload dist/*
```
## Exemples
Voir le dossier `examples/` pour des exemples d'utilisation.
## Contribuer
Voir [CONTRIBUTING.md](CONTRIBUTING.md) pour les instructions de contribution.
## Dépendances
- Python >= 3.10
- Manim >= 0.19.0
- Pillow >= 11.0.0
- NumPy >= 1.24.0
- SciPy >= 1.10.0
## Licence
MIT License - voir le fichier [LICENSE](LICENSE) pour plus de détails.
## Auteur
Pierre-Olivier Brillant - pierreolivierbrillant@gmail.com
## Liens
- [GitHub](https://github.com/PierreOlivierBrillant/cs-manim)
- [PyPI](https://pypi.org/project/cs-manim/)
- [Documentation Manim](https://docs.manim.community/)
Raw data
{
"_id": null,
"home_page": null,
"name": "cs-manim",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Pierre-Olivier Brillant <pierreolivierbrillant@gmail.com>",
"keywords": "manim, animation, education, computer-science, visualization, teaching",
"author": null,
"author_email": "Pierre-Olivier Brillant <pierreolivierbrillant@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/93/ce/64bd6f07d88ca0ef6872a88e4f9c2bb0d6412b4d9a85943c0ffbcf26f81f/cs_manim-0.1.0.tar.gz",
"platform": null,
"description": "# CS-Manim\n\nAnimations vid\u00e9o avec Manim pour expliquer les concepts techniques li\u00e9s \u00e0 l'informatique.\n\n## Description\n\nCS-Manim est une librairie Python qui fournit des objets et des styles r\u00e9utilisables pour cr\u00e9er des animations \u00e9ducatives avec Manim, sp\u00e9cialement con\u00e7ue pour expliquer des concepts d'informatique et de programmation.\n\n## Installation\n\n```bash\npip install cs-manim\n```\n\n## Utilisation\n\n```python\nfrom manim import *\nfrom cs_manim import Computer, Server, MobilePhone\nfrom cs_manim import CLIENT_COLOR, SERVER_COLOR, FONT_NAME\n\nclass MyScene(Scene):\n def construct(self):\n # Cr\u00e9er des objets pour vos animations\n computer = Computer(\"PC Client\")\n server = Server(\"API Server\")\n mobile = MobilePhone(\"Smartphone\")\n\n # Positionner et animer\n computer.shift(LEFT * 3)\n server.shift(RIGHT * 3)\n\n self.play(Create(computer))\n self.play(Create(server))\n```\n\n## Fonctionnalit\u00e9s\n\n- **Objets r\u00e9utilisables** : Ordinateurs, serveurs, t\u00e9l\u00e9phones portables\n- **Styles coh\u00e9rents** : Couleurs et polices pr\u00e9d\u00e9finies\n- **Compatible Manim** : Utilise Manim 0.19.0+\n- **Facile \u00e0 utiliser** : Import simple et API intuitive\n\n## Objets disponibles\n\n### Computer\n\n```python\ncomputer = Computer(name=\"Mon PC\", color=CLIENT_COLOR)\n```\n\n### Server\n\n```python\nserver = Server(name=\"Mon Serveur\", color=SERVER_COLOR)\n```\n\n### MobilePhone\n\n```python\nmobile = MobilePhone(name=\"Mon T\u00e9l\u00e9phone\", color=PURPLE)\n```\n\n## Styles disponibles\n\n- `CLIENT_COLOR` : Couleur par d\u00e9faut pour les clients (BLUE)\n- `SERVER_COLOR` : Couleur par d\u00e9faut pour les serveurs (GREEN)\n- `REQUEST_COLOR` : Couleur pour les requ\u00eates (YELLOW)\n- `RESPONSE_COLOR` : Couleur pour les r\u00e9ponses (ORANGE)\n- `FONT_NAME` : Police par d\u00e9faut (\"Inconsolata\")\n\n## D\u00e9veloppement\n\n### Configuration de l'environnement\n\n```bash\n# Cloner le d\u00e9p\u00f4t\ngit clone https://github.com/PierreOlivierBrillant/cs-manim.git\ncd cs-manim\n\n# Cr\u00e9er un environnement virtuel\npython -m venv .venv\nsource .venv/bin/activate # Linux/Mac\n# ou .venv\\Scripts\\activate # Windows\n\n# Installer en mode d\u00e9veloppement\npip install -e .[dev]\n```\n\n### Tests\n\n```bash\n# Ex\u00e9cuter les tests\npytest\n\n# Avec couverture\npytest --cov=cs_manim\n```\n\n### Formatage et linting\n\n```bash\n# Formater le code\nblack cs_manim tests examples\n\n# V\u00e9rifier le style\nflake8 cs_manim tests examples\n\n# V\u00e9rifier les types\nmypy cs_manim\n```\n\n### Construction du package\n\n```bash\n# Construire le package\npython -m build\n\n# V\u00e9rifier le package\ntwine check dist/*\n```\n\n## Publication\n\n### Pr\u00e9requis pour la publication\n\n1. Compte PyPI (https://pypi.org/)\n2. Token d'API PyPI configur\u00e9\n3. Toutes les v\u00e9rifications pass\u00e9es\n\n### \u00c9tapes de publication\n\n1. **Mettre \u00e0 jour la version** dans `pyproject.toml`\n2. **Mettre \u00e0 jour le CHANGELOG.md**\n3. **Cr\u00e9er un tag git** : `git tag v0.1.0`\n4. **Pousser le tag** : `git push origin v0.1.0`\n5. **Cr\u00e9er une release sur GitHub**\n\nLa publication sur PyPI se fait automatiquement via GitHub Actions lors de la cr\u00e9ation d'une release.\n\n### Publication manuelle\n\n```bash\n# Construire le package\npython -m build\n\n# Publier sur PyPI\ntwine upload dist/*\n```\n\n## Exemples\n\nVoir le dossier `examples/` pour des exemples d'utilisation.\n\n## Contribuer\n\nVoir [CONTRIBUTING.md](CONTRIBUTING.md) pour les instructions de contribution.\n\n## D\u00e9pendances\n\n- Python >= 3.10\n- Manim >= 0.19.0\n- Pillow >= 11.0.0\n- NumPy >= 1.24.0\n- SciPy >= 1.10.0\n\n## Licence\n\nMIT License - voir le fichier [LICENSE](LICENSE) pour plus de d\u00e9tails.\n\n## Auteur\n\nPierre-Olivier Brillant - pierreolivierbrillant@gmail.com\n\n## Liens\n\n- [GitHub](https://github.com/PierreOlivierBrillant/cs-manim)\n- [PyPI](https://pypi.org/project/cs-manim/)\n- [Documentation Manim](https://docs.manim.community/)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Animations vid\u00e9o avec Manim pour expliquer les concepts techniques li\u00e9s \u00e0 l'informatique",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/PierreOlivierBrillant/cs-manim/issues",
"Homepage": "https://github.com/PierreOlivierBrillant/cs-manim",
"Repository": "https://github.com/PierreOlivierBrillant/cs-manim"
},
"split_keywords": [
"manim",
" animation",
" education",
" computer-science",
" visualization",
" teaching"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "29868466a66a0a42cb385208342939bd64f31227caa45a3bd3ba7c0b83ef6e21",
"md5": "0262a55a9e330d65129308d3e7599d94",
"sha256": "17dbdf3cf4e53be49585039203f07f2b327e65c64fb06b6e6c48d188a5f7a44d"
},
"downloads": -1,
"filename": "cs_manim-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0262a55a9e330d65129308d3e7599d94",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 6911,
"upload_time": "2025-07-09T22:06:04",
"upload_time_iso_8601": "2025-07-09T22:06:04.832510Z",
"url": "https://files.pythonhosted.org/packages/29/86/8466a66a0a42cb385208342939bd64f31227caa45a3bd3ba7c0b83ef6e21/cs_manim-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "93ce64bd6f07d88ca0ef6872a88e4f9c2bb0d6412b4d9a85943c0ffbcf26f81f",
"md5": "27faba824b2fb2bc13aa88277e479050",
"sha256": "e81fc753f437440ced58b444685056be9da17882b4eda53d72ffe85df74d85fe"
},
"downloads": -1,
"filename": "cs_manim-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "27faba824b2fb2bc13aa88277e479050",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 7979,
"upload_time": "2025-07-09T22:06:05",
"upload_time_iso_8601": "2025-07-09T22:06:05.879325Z",
"url": "https://files.pythonhosted.org/packages/93/ce/64bd6f07d88ca0ef6872a88e4f9c2bb0d6412b4d9a85943c0ffbcf26f81f/cs_manim-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 22:06:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PierreOlivierBrillant",
"github_project": "cs-manim",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "cs-manim"
}