1.2 KiB
1.2 KiB
Le packaging
Petite parenthèse
La différence entre un paquet et un module ?
Notes:
Pour Python il n'y en a pas, tout est module, pour nous, un paquet est un dossier. Aborder rapidement les paquets-espace-de-noms.
Digression
__main__
et __main__.py
.
venv
Notes:
Et ses alternatives : virtualenv / conda.
pip
Notes:
Jamais sudo
, toujours dans un venv
.
pyproject.toml
pip install -e .
Packager
pip install build
python -m build
Publier
pip install twine
twine upload dist/*
Bonnes habitudes
There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.
Bonnes habitudes
Pas plus de 7.
Garder son API évolutive
Utilisez correctement /
et *
dans les prototypes de fonction.
Notes:
help(sum)
Les « linters »
Il existe plusieurs outils pour « relire » votre code :
- flake8,
- pylint,
- mypy,
- black,
- bandit,
- isort,
- ruff,
- tox.
Notes: Leur faire implémenter un is_prime(x)
pour jouer avec.
pdb
breakpoint()
PYTHONDEVMODE=y
Et ./configure --with-pydebug
.