##// END OF EJS Templates
setup: use old importlib_metadata version to fix kombu failing on python < 3.8...
setup: use old importlib_metadata version to fix kombu failing on python < 3.8 Many libraries use the importlib_metadata library as fallback when running on Python versions older than 3.8 . For example setuptools when easy_install is used for install the Kallithea console_scripts entrypoints in the bin folder. The dependencies on importlib_metadata were indirect and without constrains on version number. The problem is that Celery uses Kombu, which (on Python < 3.8) uses importlib_metadata in a way that is incompatible with importlib_metadata > 5. Most obvious, building docs failed as: Running Sphinx v5.1.1 Configuration error: There is a programmable error in your configuration file: Traceback (most recent call last): File ".../kallithea/venv/lib64/python3.7/site-packages/sphinx/config.py", line 347, in eval_config_file exec(code, namespace) File ".../kallithea/docs/conf.py", line 17, in <module> import kallithea File ".../kallithea/kallithea/__init__.py", line 45, in <module> CELERY_APP = celery.Celery() # needed at import time but is lazy and can be configured later File ".../kallithea/venv/lib64/python3.7/site-packages/celery/local.py", line 492, in __getattr__ [name]) File ".../kallithea/venv/lib64/python3.7/site-packages/celery/app/__init__.py", line 2, in <module> from celery import _state File ".../kallithea/venv/lib64/python3.7/site-packages/celery/_state.py", line 15, in <module> from celery.utils.threads import LocalStack File ".../kallithea/venv/lib64/python3.7/site-packages/celery/utils/__init__.py", line 16, in <module> from .nodenames import nodename, nodesplit, worker_direct File ".../kallithea/venv/lib64/python3.7/site-packages/celery/utils/nodenames.py", line 6, in <module> from kombu.entity import Exchange, Queue File ".../kallithea/venv/lib64/python3.7/site-packages/kombu/entity.py", line 7, in <module> from .serialization import prepare_accept_content File ".../kallithea/venv/lib64/python3.7/site-packages/kombu/serialization.py", line 440, in <module> for ep, args in entrypoints('kombu.serializers'): # pragma: no cover File ".../kallithea/venv/lib64/python3.7/site-packages/kombu/utils/compat.py", line 82, in entrypoints for ep in importlib_metadata.entry_points().get(namespace, []) AttributeError: 'EntryPoints' object has no attribute 'get' That made readthedocs builds fail, when it in the default web configuration used Python 3.7 . Fixed by introducing an explicit dependency on importlib_metadata < 5.

File last commit:

r8717:33f1faa7 stable
r8747:11cae16e stable
Show More
dev_requirements.txt
9 lines | 222 B | text/plain | TextLexer
/ dev_requirements.txt
pytest >= 4.6.6, < 6.3
pytest-sugar >= 0.9.2, < 0.10
pytest-benchmark >= 3.2.2, < 3.3
pytest-localserver >= 0.5.0, < 0.6
mock >= 3.0.0, < 4.1
Sphinx >= 1.8.0, < 5.2
WebTest >= 2.0.6, < 2.1
isort == 5.1.2
pyflakes == 2.2.0