Skip to content

Commit

Permalink
Remove dependency on deprecated pkg_resources
Browse files Browse the repository at this point in the history
  • Loading branch information
amykyta3 committed Mar 13, 2023
1 parent 869bb96 commit 203db90
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 12 deletions.
2 changes: 1 addition & 1 deletion gitmetheurl/__about__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "2.0.3"
__version__ = "2.1.0"
39 changes: 39 additions & 0 deletions gitmetheurl/entry_points.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import sys
from typing import List, TYPE_CHECKING

if TYPE_CHECKING:
from importlib.metadata import EntryPoint

if sys.version_info >= (3,10,0):
from importlib import metadata

def _get_entry_points(group_name: str) -> List['EntryPoint']:
eps = []
for ep in metadata.entry_points().select(group=group_name):
eps.append(ep)
return eps

elif sys.version_info >= (3,8,0):
from importlib import metadata

def _get_entry_points(group_name: str) -> List['EntryPoint']:
eps = []
for dist in metadata.distributions():
for ep in dist.entry_points:
if ep.group == group_name:
eps.append(ep)
return eps

else:
import pkg_resources # type: ignore

def _get_entry_points(group_name: str) -> List['EntryPoint']:
eps = []
for ep in pkg_resources.iter_entry_points(group_name):
eps.append(ep)
return eps



def get_entry_points(group_name: str) -> List['EntryPoint']:
return _get_entry_points(group_name)
15 changes: 4 additions & 11 deletions gitmetheurl/plugin_loader.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
from typing import TYPE_CHECKING

from .entry_points import get_entry_points

if TYPE_CHECKING:
from typing import List, Type, Iterable
import pkg_resources
from typing import List, Type
from .translators.translator import TranslatorSpec

def iter_entry_points(group_name: str) -> 'Iterable[pkg_resources.EntryPoint]':
try:
import pkg_resources
except ImportError:
return []

return pkg_resources.iter_entry_points(group_name)

def get_translator_plugins() -> 'List[Type[TranslatorSpec]]':
return [ep.load() for ep in iter_entry_points("gitmetheurl.translators")]
return [ep.load() for ep in get_entry_points("gitmetheurl.translators")]

0 comments on commit 203db90

Please sign in to comment.