Development #38021
conversion python3 des pickle
0%
Description
Parce que https://bugs.python.org/issue22005 (si un datetime est présent dans un pickle on ne peut pas le charger avec encoding="utf-8"), on est obligé de charger les pickle en mode "bytes" (qui fait que les str de Python 2 seront chargés en tant que bytes Python 3).
Et ça concerne absolument tous les str, genre même les attributs d'un objet, whatever.__dict__.keys() → [b'id', b'name'...], ce qui fait qu'un whatever.id ne fonctionne pas, etc.
Fichiers
Révisions associées
storage: keep non-utf8 strings as bytes (#38021)
(this is not supposed to exist)
Historique
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Fichier 0001-general-deal-with-py2-3-type-conversion-when-unpickl.patch 0001-general-deal-with-py2-3-type-conversion-when-unpickl.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Conversion exhaustive.
Attention un pickle qui passe dans un w.c.s. python 3 ne pourra plus être chargé dans un w.c.s. python 2. (c'est des objets "unicode" qui sortiront, et boum).
De manière anecdotique, il y a aussi parfois dans les pickle des références à des modules qui n'existent plus, en local j'ai rencontré copy_reg et builtins, donc ajout dans sys.modules. Ainsi qu'un ajout de fix_imports=True même si en pratique je n'ai pas vu ça super utile.
Avec ce patch (et les autres postés hier), w.c.s. tourne chez moi totalement en Python 3.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Rien qui me choque.
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 1358df73ea6637dcc52db3165c5da552103bdded Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Nov 26 18:15:08 2019 +0100 general: deal with py2/3 type conversion when unpickling (#38021)
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
general: deal with py2/3 type conversion when unpickling (#38021)