Skip to content

Commit 8c78a22

Browse files
committed
ceph-volume: fix importlib.metadata compat
The importlib.metadata library removed older shims in releases >5.0.0 where EntryPoints objects use .select() instead of dict-like access. Fixes: https://tracker.ceph.com/issues/68032 Signed-off-by: Peter Sabaini <[email protected]>
1 parent 8b0f3a5 commit 8c78a22

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/ceph-volume/ceph_volume/main.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,16 @@
1111
from importlib.metadata import entry_points
1212

1313
def get_entry_points(group: str): # type: ignore
14-
return entry_points().get(group, []) # type: ignore
14+
eps = entry_points()
15+
if hasattr(eps, 'select'):
16+
# New importlib.metadata uses .select()
17+
return eps.select(group=group)
18+
else:
19+
# Fallback to older EntryPoints that returns dicts
20+
return eps.get(group, []) # type: ignore
21+
1522
except ImportError:
23+
# Fallback to `pkg_resources` for older versions
1624
from pkg_resources import iter_entry_points as entry_points # type: ignore
1725

1826
def get_entry_points(group: str): # type: ignore

0 commit comments

Comments
 (0)