Projet

Général

Profil

Development #37986

python3, mise à jour du monkeypatching de threading

Ajouté par Frédéric Péters il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
26 novembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Le code de threading.py est un peu différent entre Python 2 et Python 3, il faut gérer ça.


Fichiers

Révisions associées

Révision bd9d18a7 (diff)
Ajouté par Frédéric Péters il y a plus de 4 ans

misc: update threading monkeypatch for Python 3 (#37986)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 4 ans

#2

Mis à jour par Thomas Noël il y a plus de 4 ans

Comme je disais déjà à l'époque "ça me dépasse un peu" et donc si d'autres peuvent jeter un oeil, c'est cool.

Ce que je vois moi c'est qu'il y a des différences par rapport à ce qui a été fait dans hobo (#22981), où on a aussi une version Python 3 de MainThread::_init__ mais pas de _stop ou de is_alive sur _DummyThread ... Ça serait sans doute mieux de tenter de converger (quitte à revenir un peu sur #22981 aussi) ?

#3

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Je regarde.

#4

Mis à jour par Frédéric Péters il y a plus de 4 ans

Ça serait sans doute mieux de tenter de converger.

Oui, même si c'est aussi moi côté adaptation hobo pour Python 3, j'ai hier préféré dupliquer pleinement la classe, plutôt que mêler py2/3 dans les méthodes. (sans doute pour être sûr qu'il faudrait ajouter les nouvelles méthodes Python 3 côté Hobo).

#5

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Je suis comme Thomas je regarde /usr/lib/python3.5/threading.py et je ne vois pas ce code, on pourrait aussi revoir la façon de faire (en monkeypatchant juste Thread.start() / Thread.run() plutôt que de remplacer la classe).

#7

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Juste une proposition.

#8

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

À noter que je ne trouve qu'un usage de threading.Thread dans wcs.middleware on pourrait aussi le remplacer directement par TenantAwareThread.... remarque valant aussi pour les autres briques mais il faudra faire d'hobo une dépendance explicite de toutes les briques alors que pour l'instant c'est transparent.

#9

Mis à jour par Frédéric Péters il y a plus de 4 ans

/usr/lib/python3.5/threading.py

Il est dans 3.7.

Et je préférerais limiter les changements au code Python 2; il sera temps, lorsqu'on nettoiera pour en supprimer la prise en charge, de passer sur tout ça.

#10

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée

Frédéric Péters a écrit :

/usr/lib/python3.5/threading.py

Il est dans 3.7.

En prod on est en 3.5.

Et je préférerais limiter les changements au code Python 2; il sera temps, lorsqu'on nettoiera pour en supprimer la prise en charge, de passer sur tout ça.

Ok je valide sans vraiment valider.

#11

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit bd9d18a7db5af4fcde0732052b7ba99ed20ca87a
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Nov 26 14:51:11 2019 +0100

    misc: update threading monkeypatch for Python 3 (#37986)
#12

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF