Maison >développement back-end >Tutoriel Python >Comment encourager les développeurs à corriger les avertissements Python pour les fonctionnalités obsolètes
Notre code est tellement interdépendant ! L'ajout de dépendances aux projets est la manière dont le code est réalisé.
Chaque fois que quelqu'un éternue, une nouvelle dépendance est ajoutée à un projet quelque part.
C'est plutôt génial que nous soyons de ce côté-ci du débat sur le droit d'auteur, où la valeur par défaut est de construire des choses sur le travail d'autres personnes, et de ne pas tirer sur tout le monde, qui ose même regarder dans la direction de mon code. . Mais... qui va mettre à jour toutes ces dépendances à tout moment ?
Dans un monde parfait, nous sommes une communauté et nous gardons tous les bibliothèques mises à jour vers les dernières versions, n'est-ce pas ?
Faux ! Les développeurs doivent être doucement poussés à faire la bonne chose. Oui, doucement, pour qu'ils ne remarquent pas qu'ils sont poussés ????.
Nous utilisons pytest, cette étape est donc simple pour nous.
À partir de la version 3.1, pytest détecte désormais automatiquement les avertissements lors de l'exécution du test et les affiche à la fin de la session :
- Pytest : Comment capturer les avertissements
aime ça :
============================= warnings summary ============================= test_bla_bla_bla.py::test_test .../some_file.py:65: PydanticDeprecatedSince20: `pydantic.config.Extra` is deprecated, use literal values instead (e.g. `extra='allow'`). Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.9/migration/ extra=Extra.allow, .../marshmallow/fields.py:1186: RemovedInMarshammlow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead. super().__init__(**kwargs) ======================= 1 passed, 2 warnings in 0.12s =======================
J'ai vu l'avertissement de guimauve, j'ai regardé le code et j'ai vu qu'il s'agissait d'une solution simple.
Donc, je choisis RemovedInMarshammlow4Warning.
Encore une fois, nous utilisons pytest, donc cette étape est également simple pour nous.
Ajoutez simplement ceci au fichier de configuration :
[tool.pytest.ini_options] ... filterwarnings = [ "error::marshmallow.warnings.RemovedInMarshmallow4Warning" ]
- Pytest : Contrôler les avertissements
Désormais, tous les tests qui déclenchent cet avertissement de dépréciation échoueront.
Malheureusement, vous devez en prendre un pour l'équipe ici. Vous devez aller réparer tous les endroits où cet avertissement se déclenche.
Je sais... c'est injuste.
C'est beaucoup de travail, c'est un travail fastidieux et vous ne pourrez même pas vous en vanter auprès de votre patron, car c'est trop technique et généralement perçu comme hors de propos de son point de vue.
Et tout ce que cela fait, c'est aider la prochaine personne (qui ne sera pas vous), qui mettra à niveau Marshmallow et rien dans le code ne sera cassé. Donc, ils ne vous remercieront pas non plus, car ils ne remarqueront même pas que quelque chose a été fait.
Donc, ... ce que je dis, c'est : parfois, il faut faire la bonne chose, et personne ne vous en remerciera.
Mais je le saurai. Et vous le saurez. ?
Finalement, il devrait y avoir un message quelque part indiquant que quelqu'un est confus : ils ont écrit le même code que la dernière fois, mais cette fois, les tests échouent, que se passe-t-il ?
Et vous pouvez dire : "oh, difficile à dire, mais je vois que c'est une fonctionnalité obsolète, ça doit être la raison". ?
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!