Skip to content

Commit

Permalink
Switch to importlib-metadata to drop deprecated pkg_resources
Browse files Browse the repository at this point in the history
According to https://setuptools.pypa.io/en/latest/pkg_resources.html,
pkg_resources has been deprecated and importlib-metadata is recommended.
`DistributionNotFound` only can be thrown from `find_plugins()` which is
not used by ia. Tested with plugin
https://github.com/JesseWeinstein/ia_recent.

Closes: #613
  • Loading branch information
FantasqueX committed Feb 7, 2024
1 parent 6e23216 commit 6bae1f2
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
9 changes: 6 additions & 3 deletions internetarchive/cli/ia.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,10 @@
import sys

from docopt import docopt, printable_usage
from pkg_resources import DistributionNotFound, iter_entry_points
if sys.version_info < (3, 10):

Check failure on line 67 in internetarchive/cli/ia.py

View workflow job for this annotation

GitHub Actions / lint_python

Ruff (I001)

internetarchive/cli/ia.py:59:1: I001 Import block is un-sorted or un-formatted
from importlib_metadata import entry_points
else:
from importlib.metadata import entry_points
from schema import Or, Schema, SchemaError # type: ignore[import]

from internetarchive import __version__
Expand Down Expand Up @@ -97,11 +100,11 @@ def load_ia_module(cmd: str):
return __import__(_module, fromlist=['internetarchive.cli'])
else:
_module = f'ia_{cmd}'
for ep in iter_entry_points('internetarchive.cli.plugins'):
for ep in entry_points(group='internetarchive.cli.plugins'):
if ep.name == _module:
return ep.load()
raise ImportError
except (ImportError, DistributionNotFound):
except (ImportError):
print(f"error: '{cmd}' is not an ia command! See 'ia help'",
file=sys.stderr)
matches = '\t'.join(difflib.get_close_matches(cmd, cmd_aliases.values()))
Expand Down
1 change: 1 addition & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ packages =
internetarchive.cli
install_requires =
docopt>=0.6.0,<0.7.0
importlib-metadata >= 3.6.0 ; python_version <= "3.10"
jsonpatch>=0.4
requests>=2.25.0,<3.0.0
schema>=0.4.0
Expand Down

0 comments on commit 6bae1f2

Please sign in to comment.