Cet article traite du packaging de code en Python, en mettant l'accent sur les outils setup.py et setuptools. Il explique que le packaging est une étape importante pour partager et réutiliser du code, et mentionne l'évolution des outils et des approches. L'article se concentre sur l'utilisation de setuptools pour packager et publier une librairie sur PyPI, le dépôt central des librairies Python. Il présente également la structure et le contenu d'une librairie d'exemple, ainsi que la création du fichier setup.py et l'utilisation de celui-ci pour gérer les dépendances, lancer les tests et créer des distributions source et construites au format wheel.

Based on the conversation, here are the action items:

  1. Packager et publier une librairie sur PyPI : This involves packaging the library and publishing it on PyPI, the central repository for Python libraries.
  2. Créer le fichier setup.py : The setup.py file is the cornerstone of packaging and distributing the library. It calls the setup() function of the chosen installation tool.
  3. Gérer les dépendances avec setup.py et setuptools : This task involves managing the dependencies of the library using setup.py and setuptools. The dependencies can be specified in the install_requires parameter of the setup() function.
  4. Lancer les tests avec setup.py et setuptools : With the setup.py file, it becomes possible to launch the tests of the library using the test command. This can be done by executing the command "python setup.py test".
  5. Créer une distribution source : This step involves creating a source distribution of the library. The command "python setup.py sdist" can be used to generate a .tar.gz file containing the source code of the library.
  6. Créer une distribution construite au format wheel : The wheel format is a built distribution format that doesn't require a build process during installation. To create a wheel distribution of the library, the command "python setup.py bdist_wheel" can be used.
  7. Déployer la librairie sur PyPI : This final action item involves deploying the library on PyPI to make it available to the Python community. This step allows other users to easily install the library using pip.

Please note that these action items are based on the discussion and context provided. Adjustments may be needed based on your specific requirements and preferences.

Packaging Python : setup.py et setuptools

Bien que Python soit aujourd’hui extrêmement populaire il y a une facette de celui-ci qui semble toujours peu maitrisée par les développeurs qui l’utilisent : le packaging de code. Hors le packaging est une étape importante lorsque l’on veut partager et réutiliser du code sans avoir à le dupliquer dans chacun de nos projets.

Nous pouvons constater qu’au cours de l’évolution du langage une multitude d’outils qui traitaient du packaging sont apparus puis sont devenus obsolètes pour certains d’entre eux. Certaines PEP (Python Enhancement Proposal) ont également apporté de nouvelles approches dans la manière de packager du code. Tout cela a pu accroître la confusion sur le sujet.

Aujourd’hui nous allons revoir les bases du packaging en ayant pour objectif de packager et ensuite publier sur PyPI (Python Package Index), le dépôt central des librairies Python, une librairie que nous avons développé.

Nous allons nous concentrer sur la partie packaging dans ce premier article.

Cet article traite du packaging de code en Python, une étape importante pour partager et réutiliser du code. Il explique que de nombreux outils ont été développés au fil du temps, certains devenus obsolètes, et que certaines PEP ont apporté de nouvelles approches. L'article se concentre sur la partie packaging et a pour objectif de packager et publier une librairie sur PyPI, le dépôt central des librairies Python.

Présentation de la librairie

Notre librairie cobaye se nomme relink et est un client vers l’API du service homonyme : https://rel.ink/. Ce service permet de raccourcir des URLs pour pouvoir les insérer plus facilement dans du texte comme dans un tweet par exemple.

Voici la structure de la librairie :