recherche
Maisondéveloppement back-endTutoriel PythonComment encourager les développeurs à corriger les avertissements Python pour les fonctionnalités obsolètes

How to encourage developers to fix Python warnings for deprecated features

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 ????.

Étape 1 : Nous devons d'abord écouter les avertissements de dépréciation

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 =======================

Étape 2 : Choisissez les avertissements dont vous souhaitez vous débarrasser

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.

Étape 3 : Faire en sorte que les avertissements de dépréciation échouent aux tests

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.

Étape 4 : Corrigez le code

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. ?

Étape 5 : Détendez-vous et écoutez les conversations Slack et les commentaires GitHub

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". ?

Liens externes

  • Pytest : Comment capturer les avertissements
  • Python : Le filtre des avertissements

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!

Déclaration
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
Comment coupez-vous une liste de python?Comment coupez-vous une liste de python?May 02, 2025 am 12:14 AM

SlitingyPapyThonListIsDoneUsingTheSyntaxList [Démarrage: arrêt: étape] .He'showitworks: 1) startisheindexofthefirStelementoinclude.2) stopisTheIndexoftheFirstelementsoexclude.3) StepistheincrementBetweenselans.it'susefulfactingPortationSoListShsandCanusegeg

Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Numpy?Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Numpy?May 02, 2025 am 12:09 AM

NumpyAllowsForvariousOperations ONARRAYS: 1) BasicarithmeticLikeaddition, Soustraction, Multiplication, anddivision; 2) AdvancedOperationSuchasmatrixMultiplication; 3) Element-Wiseoperations withoutExplicitloop

Comment les tableaux sont-ils utilisés dans l'analyse des données avec Python?Comment les tableaux sont-ils utilisés dans l'analyse des données avec Python?May 02, 2025 am 12:09 AM

ArraySinpython, en particulier ThroughNumpyandPandas, aressentialfordataanalysis, offingspeeedAfficiency.1) numpyarrayablefficienthandlingoflargedatasetsandComplexOperationsLikEMoVingAverages.2)

Comment l'empreinte mémoire d'une liste se compare-t-elle à l'empreinte de la mémoire d'un tableau dans Python?Comment l'empreinte mémoire d'une liste se compare-t-elle à l'empreinte de la mémoire d'un tableau dans Python?May 02, 2025 am 12:08 AM

ListsandNumpyArraysInpythonHaveDidifferentMemoryfootprints: listsaRemoreFlexibles Butlessmemory économe, tandis que la liste de résensés est-ce qui

Comment gérez-vous les configurations spécifiques à l'environnement lors du déploiement de scripts Python exécutables?Comment gérez-vous les configurations spécifiques à l'environnement lors du déploiement de scripts Python exécutables?May 02, 2025 am 12:07 AM

ToenSurepythonscriptsBeHavecorrectlyAcrossDevelopment, mise en scène et production, catégories de type: 1) EnvironmentVariblesForsImplesettings, 2) ConfigurationFilesForComplexsetups et3) dynamicloadingforadaptability.eachMethodoffersNebeneFitsAndreCeresca

Comment trancher un tableau Python?Comment trancher un tableau Python?May 01, 2025 am 12:18 AM

La syntaxe de base pour le découpage de la liste Python est la liste [Démarrage: arrêt: étape]. 1.Start est le premier index d'élément inclus, 2.STOP est le premier indice d'élément exclu et 3.StEP détermine la taille de l'étape entre les éléments. Les tranches sont non seulement utilisées pour extraire les données, mais aussi pour modifier et inverser les listes.

Dans quelles circonstances les listes pourraient-elles mieux fonctionner que les tableaux?Dans quelles circonstances les listes pourraient-elles mieux fonctionner que les tableaux?May 01, 2025 am 12:06 AM

ListesoutPerformarRaySin: 1) dynamicingizingandfrequentinSertions / Deletions, 2) StoringheteroGeneousData, and3) MemoryEfficiencyForsparsedata, butmayhaveslightperformanceCostSincertorations.

Comment pouvez-vous convertir un tableau Python en une liste Python?Comment pouvez-vous convertir un tableau Python en une liste Python?May 01, 2025 am 12:05 AM

Toconvertapythonarraytoalist, usethelist () Constructororageneratorexpression.1) ImportTheArrayModuleandCreateArray.2) Uselist (Arr) ou [Xforxinarr] à Convertittoalist, considérant la performance et le domaine de l'émie-efficacité pour les étages.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux