Python : PEP 771 pour mieux gérer les extras dépendances des paquets
Une nouvelle proposition Python a été ouverte mi-janver : le PEP 771. Elle a pour nom : Default Extras for Python Software Packages. "Le PEP 508 définit un mini-langage pour déclarer les dépendances des packages. L'une des fonctionnalités de ce langage est la possibilité de spécifier des extras, qui sont des composants optionnels d'une distribution permettant d'installer des dépendances supplémentaires lorsque ces composants sont utilisés. Ce PEP (771) propose un mécanisme permettant d'installer un ou plusieurs extras par défaut si aucun n'est explicitement spécifié." commente les créateurs. Pourquoi créer une nouvelle PEP pour compléter la PEP 508 ? Les créateurs motivent cette demande par les divers cas d'usage des extras et par 2 usages en particuliers que sont les dépendances recommandées mais non obligatoires et les paquets supportant les multiples front et back. Dans le 1er cas, les mainteneurs des packages utilisent souvent des extras pour les packages optionnelles. "Dans certains cas, il peut être difficile de décider quelles dépendances devraient être requises et lesquelles devraient être classées comme extras. Un équilibre doit être trouvé entre les besoins des utilisateurs typiques (qui peuvent préférer que la plupart des fonctionnalités soient disponibles « par défaut ») et ceux des utilisateurs qui souhaitent une installation minimale sans dépendances optionnelles volumineuses." précise le proposition. Actuellement, il est possible de déclarer des dépendances recommended à la création du paquet incluant TOUTES les dépendances non essentielles mais suggérées. Les utilisateurs sont invités à installer le maquetter AVEC le package[recommended] tout en laissant l'installation du package "normal". Pour les deux développeurs à l'origine de la PEP 771, les utilisateurs ne connaissent peu/pas la syntaxe [recommended]. Bref : avoir un mécanisme permettant d’installer les dépendances recommandées par défaut, tout en offrant un moyen pour les utilisateurs de demander une installation minimale, répondrait à ce cas d'utilisation. Le second cas d'usage courant concerne les extraits pour définir les différents frontends et backends et avec toutes les dépendances nécessaires pour chaque front et back. Par exemple : Qt lib en frontend nécessite PySide ou PyQt.Tous les détails de la PEP et la proposition d'implémentation : https://peps.python.org/pep-0771/Catégorie actualité: LangagesPython, PEPImage actualité AMP:
Une nouvelle proposition Python a été ouverte mi-janver : le PEP 771. Elle a pour nom : Default Extras for Python Software Packages.
"Le PEP 508 définit un mini-langage pour déclarer les dépendances des packages. L'une des fonctionnalités de ce langage est la possibilité de spécifier des extras, qui sont des composants optionnels d'une distribution permettant d'installer des dépendances supplémentaires lorsque ces composants sont utilisés. Ce PEP (771) propose un mécanisme permettant d'installer un ou plusieurs extras par défaut si aucun n'est explicitement spécifié." commente les créateurs.
Pourquoi créer une nouvelle PEP pour compléter la PEP 508 ? Les créateurs motivent cette demande par les divers cas d'usage des extras et par 2 usages en particuliers que sont les dépendances recommandées mais non obligatoires et les paquets supportant les multiples front et back. Dans le 1er cas, les mainteneurs des packages utilisent souvent des extras pour les packages optionnelles. "Dans certains cas, il peut être difficile de décider quelles dépendances devraient être requises et lesquelles devraient être classées comme extras. Un équilibre doit être trouvé entre les besoins des utilisateurs typiques (qui peuvent préférer que la plupart des fonctionnalités soient disponibles « par défaut ») et ceux des utilisateurs qui souhaitent une installation minimale sans dépendances optionnelles volumineuses." précise le proposition.
Actuellement, il est possible de déclarer des dépendances recommended à la création du paquet incluant TOUTES les dépendances non essentielles mais suggérées. Les utilisateurs sont invités à installer le maquetter AVEC le package[recommended] tout en laissant l'installation du package "normal". Pour les deux développeurs à l'origine de la PEP 771, les utilisateurs ne connaissent peu/pas la syntaxe [recommended]. Bref : avoir un mécanisme permettant d’installer les dépendances recommandées par défaut, tout en offrant un moyen pour les utilisateurs de demander une installation minimale, répondrait à ce cas d'utilisation.
Le second cas d'usage courant concerne les extraits pour définir les différents frontends et backends et avec toutes les dépendances nécessaires pour chaque front et back. Par exemple : Qt lib en frontend nécessite PySide ou PyQt.
Tous les détails de la PEP et la proposition d'implémentation : https://peps.python.org/pep-0771/
What's Your Reaction?