From c02dfc4d2f097b8213159cf1dfa49d4888156346 Mon Sep 17 00:00:00 2001 From: Jiangge Zhang Date: Sun, 28 Apr 2024 16:43:12 +0800 Subject: [PATCH 1/2] Fix Python 3.12 compat: pkg_resources -> importlib --- lice/core.py | 16 +++++++++++++++- setup.py | 1 - 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lice/core.py b/lice/core.py index 296b21c..457be82 100644 --- a/lice/core.py +++ b/lice/core.py @@ -1,4 +1,3 @@ -from pkg_resources import (resource_stream, resource_listdir) from io import StringIO import argparse import datetime @@ -8,6 +7,21 @@ import sys import getpass +try: + from pkg_resources import resource_stream, resource_listdir +except ImportError: + import importlib.resources + + def resource_stream(package_or_requirement, resource_name): + # https://importlib-resources.readthedocs.io/en/latest/migration.html#pkg-resources-resource-stream + ref = importlib.resources.files(package_or_requirement).joinpath(resource_name) + return ref.open('rb') + + def resource_listdir(package_or_requirement, resource_name): + # https://importlib-resources.readthedocs.io/en/latest/migration.html#pkg-resources-resource-listdir + resource_qualname = '.'.join([package_or_requirement, resource_name]).rstrip('.') + return [r.name for r in importlib.resources.files(resource_qualname).iterdir()] + LICENSES = [] for file in sorted(resource_listdir(__name__, '.')): diff --git a/setup.py b/setup.py index 9e4cef3..af6b83d 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,6 @@ entry_points={ 'console_scripts': ['lice = lice:main']}, platforms=['any'], - test_suite='lice.tests.collector', classifiers=[ 'Development Status :: 4 - Beta', 'License :: OSI Approved :: BSD License', From 627b4bdce37b358e59bdb53e63ae7d785b8eae71 Mon Sep 17 00:00:00 2001 From: Jiangge Zhang Date: Sun, 28 Apr 2024 17:07:42 +0800 Subject: [PATCH 2/2] Add tox.ini to test on Python 3.11 and 3.12 --- tox.ini | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 tox.ini diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..d6afada --- /dev/null +++ b/tox.ini @@ -0,0 +1,11 @@ +[tox] +env_list = + py311 + py312 +minversion = 4.12.1 + +[testenv] +deps = + -r requirements.txt +commands = + pytest {tty:--color=yes} {posargs}