From 6ba7f4af1777d90ae4138863e36c8ad6727e07f9 Mon Sep 17 00:00:00 2001 From: woutdenolf Date: Mon, 3 Oct 2022 11:44:00 +0200 Subject: [PATCH] importlib_metadata removed deprecated entry point interfaces --- celery/bin/celery.py | 12 +++++++++++- celery/utils/imports.py | 9 ++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/celery/bin/celery.py b/celery/bin/celery.py index 2aee6414be4..ff66a27dccc 100644 --- a/celery/bin/celery.py +++ b/celery/bin/celery.py @@ -1,5 +1,6 @@ """Celery Command Line Interface.""" import os +import sys import pathlib import traceback @@ -75,7 +76,16 @@ def convert(self, value, param, ctx): APP = App() -@with_plugins(entry_points().get('celery.commands', [])) +if sys.version_info >= (3, 10): + _PLUGINS = entry_points(group='celery.commands') +else: + try: + _PLUGINS = entry_points().get('celery.commands', []) + except AttributeError: + _PLUGINS = entry_points().select(group='celery.commands') + + +@with_plugins(_PLUGINS) @click.group(cls=DYMGroup, invoke_without_command=True) @click.option('-A', '--app', diff --git a/celery/utils/imports.py b/celery/utils/imports.py index 60f11e8316f..390b22ce894 100644 --- a/celery/utils/imports.py +++ b/celery/utils/imports.py @@ -141,7 +141,14 @@ def gen_task_name(app, name, module_name): def load_extension_class_names(namespace): - for ep in entry_points().get(namespace, []): + if sys.version_info >= (3, 10): + _entry_points = entry_points(group=namespace) + else: + try: + _entry_points = entry_points().get(namespace, []) + except AttributeError: + _entry_points = entry_points().select(group=namespace) + for ep in _entry_points: yield ep.name, ep.value