Project

General

Profile

Bug #49180

Conflit entre feedparser<6 et le module base64 de python 3.9

Added by Nicolas Roche 12 months ago. Updated 12 months ago.

Status:
Solution déployée
Priority:
Normal
Assignee:
Target version:
-
Start date:
07 Dec 2020
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
Yes

Description

python3.9/site-packages/feedparser.py plante parce qu'il référence l'alias comme valeur de replie (qui n'est pas utilisée).

    import feedparser
  File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/feedparser.py", line 94, in <module>
    _base64decode = getattr(base64, 'decodebytes', base64.decodestring)

AttributeError: module 'base64' has no attribute 'decodestring'

D'un côté on a feedparser<6 pour garder la compatibilité python3.5 :
https://dev.entrouvert.org/projects/combo/repository/184/revisions/d936639e814eb060a7bebdda03915cfe291529ce

et de l'autre la disparition de l'alias decodestring dans la module base64 en python 3.9 :
https://docs.python.org/3.8/library/base64.html#base64.decodestring vs https://docs.python.org/3.9/library/base64.html#base64.decodebytes


Files


Related issues

Related to Passerelle - Development #49218: Relacher la contrainte sur feedparseurSolution déployée08 Dec 2020

Actions

Associated revisions

Revision 689391b4 (diff)
Added by Nicolas Roche 12 months ago

setup: relax feedparser version for python 3.9 (#49180)

History

#1

Updated by Emmanuel Cazenave 12 months ago

C'est quoi la trace complète ?

Quelle est ta version de feedparser ? (dans le venv, pip show feedparser).

#2

Updated by Nicolas Roche 12 months ago

$ combo-manage migrate-schemas
<string>:192: UserWarning: journald will not be used directly, please install python-systemd
Traceback (most recent call last):
  File "/home/nroche/src/combo/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/django/core/management/__init__.py", line 338, in execute
    django.setup()
  File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models()
  File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/nroche/src/combo/combo/data/models.py", line 20, in <module>
    import feedparser
  File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/feedparser.py", line 93, in <module>
    _base64decode = getattr(base64, 'decodebytes', base64.decodestring)
AttributeError: module 'base64' has no attribute 'decodestring'

$ pip show feedparser
Name: feedparser
Version: 5.2.1
#3

Updated by Emmanuel Cazenave 12 months ago

  • Project changed from Publik Installation Développeur to Combo
  • Tracker changed from Support to Bug

Je n'ai pas de python3.9 sur ma machine je ne peux pas investiguer, aussi c'est plutôt du combo, je déplace.

#4

Updated by Frédéric Péters (absent jusqu’au 12/12) 12 months ago

Remonter au pourquoi du <6; si c'est juste une histoire de compat de version python, le retirer et le mettre dans le tox.ini à la place.

#5

Updated by Nicolas Roche 12 months ago

Remonter au pourquoi du <6

Je n'ai rien trouvé de plus que ce message dans les logs.

J'ai reporté la même correction dans passerelle : #49218.
Je pensais aussi devoir le faire pour w.c.s, mais la version <6 n'y était spécifiée nulle part (ni dans wcs, ni dans publik-devinst).

Avec ces 2 patchs publik-devinst fonctionne sur ma machine en python 3.9.

#6

Updated by Frédéric Péters (absent jusqu’au 12/12) 12 months ago

  • Status changed from Solution proposée to Solution validée
#7

Updated by Nicolas Roche 12 months ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 689391b451cb9f69b19e822dddf8b481c73d480b
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Tue Dec 8 08:26:51 2020 +0100

    setup: relax feedparser version for python 3.9 (#49180)
#8

Updated by Nicolas Roche 12 months ago

#9

Updated by Frédéric Péters (absent jusqu’au 12/12) 12 months ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF