No description
Find a file
2026-02-04 10:44:36 +01:00
fib.py Hello pyproject.toml 2026-02-04 10:29:55 +01:00
LICENSE Oops la license 2026-02-04 10:33:54 +01:00
pyproject.toml Added a script. 2026-02-04 10:36:45 +01:00
README.md Choisissez vos messages de commit mieux que moi. 2026-02-04 10:44:36 +01:00

Packaging

  • setup.py: Ancienne méthode de packaging
  • setup.cfg: Moins ancienne méthode de packaging
  • pyproject.toml: C'est la manière moderne de packager
    • flit: Keep it simple (~600 lignes de code).
      • Le projet a besoin:
        • d'un seul module ou d'un seul paquet.
        • d'une version dans la variable __version__.
        • d'une docstring.
    • setuptool: c'est l'outil historique (celui qui marchait déjà à l'époque de setup.py, il sait tout faire).
    • uv: codé en rust par https://astral.sh (comme ty, un type checker).
    • poetry: Essaye de tout faire (ça gère ton venv, tes dépendances, la vie l'univers et le reste).
    • hatch: it works.
    • ... plein d'autres qui ne me viennent pas en tête #sry

Distributing

  • Avec git.
    • pip install git+https://git.afpy.org/mdk/packaging/
  • Des wheels (des fichiers .whl) en fait c'est de zip, et un pip install c'est un unzip.
    • pip install build && python -m build
  • Des .tar.gz
  • On met des wheels ou des tarball sur pypi.org
    • Ou un « https://pypi.org » interne à l'entreprise.
    • Typiquement «artifactory».
    • C'est possible de faire un pypi.org avec 0 lignes de code avec nginx : /simple/ c'est un directory listing.
    • pip install twine; python -m twine upload dist/*
    • Testez sur https://test.pypi.org pour pas polluer.

Demo

  • pip install flit
  • flit init