diff --git a/.travis.yml b/.travis.yml index 1f27d8a..c988426 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ python: - "3.7" - "3.8" install: - - pip install coverage nose flake8 mock + - pip install coverage nose flake8 mock importlib-metadata - pip install git+https://github.com/PyCQA/flake8-import-order.git script: - PYTHONASYNCIODEBUG=1 python setup.py nosetests -s --with-coverage --cover-inclusive diff --git a/README.md b/README.md index 9b034e8..20f1695 100644 --- a/README.md +++ b/README.md @@ -3,4 +3,9 @@ osrf_pycommon Commonly needed Python modules, used by Python software developed at OSRF. +Branches +======== + +If you are releasing (using ``stdeb`` or on the ROS buildfarm) for any Ubuntu < ``focal``, or for any OS that doesn't have a key for ``python3-importlib-metadata``, then you need to use the ``1.0.x`` branch, or the latest ``1.`` branch, because starting with ``2.0.0``, that dependency will be required. + If you are using Python 2, then you should use the ``python2`` branch. diff --git a/osrf_pycommon/cli_utils/verb_pattern.py b/osrf_pycommon/cli_utils/verb_pattern.py index 8259db9..a992388 100644 --- a/osrf_pycommon/cli_utils/verb_pattern.py +++ b/osrf_pycommon/cli_utils/verb_pattern.py @@ -17,7 +17,10 @@ import sys import inspect -import pkg_resources +try: + import importlib.metadata as importlib_metadata +except ModuleNotFoundError: + import importlib_metadata def call_prepare_arguments(func, parser, sysargs=None): @@ -149,7 +152,7 @@ def list_verbs(group): :rtype: list of str """ verbs = [] - for entry_point in pkg_resources.iter_entry_points(group=group): + for entry_point in importlib_metadata.entry_points().get(group, []): verbs.append(entry_point.name) return verbs @@ -162,7 +165,7 @@ def load_verb_description(verb_name, group): :returns: verb description :rtype: dict """ - for entry_point in pkg_resources.iter_entry_points(group=group): + for entry_point in importlib_metadata.entry_points().get(group, []): if entry_point.name == verb_name: return entry_point.load() diff --git a/package.xml b/package.xml index 944b549..c792728 100644 --- a/package.xml +++ b/package.xml @@ -10,6 +10,7 @@ Apache License 2.0 + python3-importlib-metadata python3-mock diff --git a/setup.py b/setup.py index c0017bc..055691d 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,5 @@ +import sys + from setuptools import find_packages from setuptools import setup @@ -5,6 +7,8 @@ install_requires = [ 'setuptools', ] +if sys.version_info < (3, 8): + install_requires.append('importlib-metadata') package_excludes = ['tests*', 'docs*'] packages = find_packages(exclude=package_excludes) diff --git a/stdeb.cfg b/stdeb.cfg index d0bbc3e..8bb9ed1 100644 --- a/stdeb.cfg +++ b/stdeb.cfg @@ -1,6 +1,6 @@ [DEFAULT] -Depends3: python3-setuptools +Depends3: python3-setuptools, python3-importlib-metadata Conflicts3: python-osrf-pycommon -Suite3: bionic cosmic disco eoan focal jammy buster bullseye -X-Python3-Version: >= 3.5 +Suite3: focal jammy buster bullseye +X-Python3-Version: >= 3.8 No-Python2: