Maison > développement back-end > Tutoriel Python > Comment vérifier l'intervalle de version de la bibliothèque de compatibilité de mon package en python ?

Comment vérifier l'intervalle de version de la bibliothèque de compatibilité de mon package en python ?

WBOY
Libérer: 2024-02-08 22:21:24
avant
1228 Les gens l'ont consulté

如何在 python 中检查我的包的兼容库版本间隔?

Contenu de la question

Je développe une bibliothèque Python privée et j'y utilise d'autres bibliothèques publiques. Je souhaite définir un intervalle de version compatible pour chaque bibliothèque publique utilisée par ma bibliothèque personnalisée.

J'ai mis en place des tests pour vérifier si la bibliothèque fonctionne correctement. J'ai juste besoin de trouver un moyen de tester mon code dans chaque combinaison de chaque bibliothèque publique.

J'ai essayé d'utiliser tox mais il semble que je doive écrire une combinaison de chaque bibliothèque dans le fichier tox.ini afin qu'il puisse créer l'environnement avec différentes versions des bibliothèques. Existe-t-il un moyen automatisé de procéder ?

Par exemple : mon environnement de développement contient les bibliothèques suivantes et elles ont réussi mes tests.

  • numpy==1.24.3

  • matplotlib==3.7.3

J'aimerais savoir s'il est possible de tester la combinaison suivante

  • numpy==1.24.0, 1.24.1 ... 1.24.x
  • matplotlib==3.7.1, 3.7.2 ... 3.7.x

De manière automatisée.


Bonne réponse


Merci à tous ceux qui m'ont aidé dans la section commentaires. Comme @sinoroc l'a suggéré, l'utilisation de nox a résolu mon problème de manière très intuitive. Bien que ce ne soit pas une pratique courante, je partagerai la solution que j'ai utilisée dans l'exemple donné dans la question au cas où quelqu'un comme moi aurait besoin de tester son projet.

Le code dans noxfile.py est le suivant.

import nox

@nox.session(name = "test_sample")
@nox.parametrize("numpy", ["1.24.3", "1.24.2"])
@nox.parametrize("matplotlib", ["3.7.3", "3.7.2"])
def tests(session, numpy, matplotlib):
    session.install(f"numpy=={numpy}", f"matplotlib=={matplotlib}")
    session.run("pytest")
Copier après la connexion

Le décorateur paramétré définit la version qui sera utilisée. Puisque j'ai utilisé deux versions différentes de deux bibliothèques différentes, j'obtiendrais 4 (2*2) résultats de tests pour différentes combinaisons de versions.

Remarque : J'ai observé que nox utilise la commande python -m pip pour installer les bibliothèques. Par conséquent, s’il existe des dépendances communes entre les bibliothèques publiques que nous testons, des problèmes de couverture peuvent survenir lorsqu’une version donnée de la bibliothèque est écrasée lorsqu’une autre bibliothèque est installée. Je ne trouve pas de solution, mais c'est aussi précis que les tests de version peuvent l'être.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal