Bug #24497
forms: use python-magic when available
0%
Description
Jusqu'à jessie Debian fournissait un module python magic construit depuis libfile, non disponible dans pip.
Le patch attaché implémente la détection du mimetype via les méthodes du module python-magic upstream (désormais reconnu par Debian comme l'implémentation de référence).
Note: nos serveurs jessie ont déjà migré vers un backport du paquet python-magic (basé sur upstream et qui inclut un patch de compatibilité avec les anciennes méthodes)
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Christophe Siraut il y a presque 6 ans
- Lié à Bug #18050: Redonner une explication claire sur comment lancer les tests ajouté
Mis à jour par Frédéric Péters il y a presque 6 ans
Éviter les except nus et limiter ce qui est concerné; mais ici, plutôt sans try/except, je verrais un truc ainsi :
if hasattr(magic, 'Magic'): # "new" python-magic, ... else: # python bindings from libmagic package, obsolete ...
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
Pour info/inspiration, ce qui été fait dans passerelle : #21980
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
- Lié à Development #22414: prendre en charge le module python-magic (qui n'est pas le binding python de la libmagic) ajouté
Mis à jour par Christophe Siraut il y a presque 6 ans
- Fichier 0001-forms-use-python-magic-when-available-23418.patch ajouté
- Fichier 0001-forms-use-python-magic-when-available-23418.patch ajouté
- Patch proposed changé de Non à Oui
Désolé Manu je n'avais pas vu #22414.
Mis à jour par Christophe Siraut il y a presque 6 ans
- Fichier
0001-forms-use-python-magic-when-available-23418.patchsupprimé
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
Christophe Siraut a écrit :
Désolé Manu je n'avais pas vu #22414.
Aucun problème. Mauvais numéro de ticket dans ton message de commit.
Pour le reste je laisse la main à Frédéric.
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
Quand même une autre remarque, j'ai fait le test et ton if hasattr(magic, 'MagicException') (qui devrait être un @if hasattr(magic, 'Magic')
parce que c'est de Magic
dont tu te sers ensuite, mais ça change rien pour la suite de ma remarque) ne permet pas de discriminer les deux version de python-magic, ça renvoie True sur les deux version de la lib.
if hasattr(magic, 'open')
est bien discriminant par contre.
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
Et une dernière pour la route.
mime = magic.Magic(mime=True) filetype = mime.from_file(self.value.fp.name)
J'ai l'impression que ça peut marcher dans les deux cas (je te laisse tester vraiment), auquel cas plus besoin de if
, ce qui serait encore mieux que ce que j'avais fait dans #21980
Mis à jour par Christophe Siraut il y a presque 6 ans
Emmanuel Cazenave a écrit :
Quand même une autre remarque, j'ai fait le test et ton
if hasattr(magic, 'MagicException') (qui devrait être un @if hasattr(magic, 'Magic')
parce que c'est deMagic
dont tu te sers ensuite, mais ça change rien pour la suite de ma remarque) ne permet pas de discriminer les deux version de python-magic, ça renvoie True sur les deux version de la lib.
Non justement la classe magic existe dans les 2 modules, tandis que MagicException existe seulement dans la version moderne. Testé sur une jessie et une stretch. Tu confirmes?
J'ai l'impression que ça peut marcher dans les deux cas
Non ça ne marche pas sur jessie. (sauf nos jessie qui utilisent un backport maison de python-magic)
Mis à jour par Christophe Siraut il y a presque 6 ans
- Fichier 0001-forms-use-python-magic-when-available-24497.patch 0001-forms-use-python-magic-when-available-24497.patch ajouté
Mauvais numéro de ticket dans ton message de commit.
Merci!
Mis à jour par Christophe Siraut il y a presque 6 ans
Non ça ne marche pas sur jessie. (sauf nos jessie qui utilisent un backport maison de python-magic)
TypeError: __init__() got an unexpected keyword argument 'mime'
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
Ok on teste pas la même chose en fait.
Mes remarques concernait un test python-magic 2:0.4.15-1~bpo8+1 vs python-magic pypi.
Mis à jour par Christophe Siraut il y a presque 6 ans
Mes remarques concernait un test python-magic 2:0.4.15-1~bpo8+1 vs python-magic pypi.
Oui nous avons donc 3 situations:
jessie avec python-magic 1:5.22+15-2+deb8u3 (libfile)
jessie avec python-magic 0.4.15-1~bpo8+1 (python-magic)
stretch+ avec python-magic 0.4.15-1~bpo8+1 (python-magic)
2 et 3 sont identiques du point de vue de l'application.
Mis à jour par Christophe Siraut il y a presque 6 ans
- Fichier
0001-forms-use-python-magic-when-available.patchsupprimé
Mis à jour par Christophe Siraut il y a presque 6 ans
- Fichier
0001-forms-use-python-magic-when-available-23418.patchsupprimé
Mis à jour par Christophe Siraut il y a presque 6 ans
- Statut changé de Nouveau à Résolu (à déployer)
commit 8eeba98ed84ce4955a6c8682bcead7b7bb607317 Author: Christophe Siraut <csiraut@entrouvert.com> Date: Tue Jun 12 17:33:23 2018 +0200 forms: use python-magic when available (#24497)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
forms: use python-magic when available (#24497)