Python bindings: Port pkg_resources to importlib_resources for python < 3.9 (#2123)

* Python bindings: Port pkg_resources to importlib_resources for python < 3.9

Co-authored-by: Arusekk <floss@arusekk.pl>

* GitHub Workflow: Bump uraimo/run-on-arch-action to v3

---------

Co-authored-by: Arusekk <floss@arusekk.pl>
This commit is contained in:
@Antelox
2025-03-04 16:55:56 +01:00
committed by GitHub
parent 9da2fec784
commit f18381016f
5 changed files with 12 additions and 13 deletions

View File

@@ -288,7 +288,7 @@ jobs:
- name: '🚧 Linux ppc64le build' - name: '🚧 Linux ppc64le build'
if: contains(matrix.config.arch, 'ppc64le') if: contains(matrix.config.arch, 'ppc64le')
uses: uraimo/run-on-arch-action@v2 uses: uraimo/run-on-arch-action@v3
with: with:
arch: ${{ matrix.config.arch }} arch: ${{ matrix.config.arch }}
distro: ${{ matrix.config.distro }} distro: ${{ matrix.config.distro }}

View File

@@ -494,7 +494,7 @@ jobs:
- name: '🚧 Linux ppc64le build' - name: '🚧 Linux ppc64le build'
if: contains(matrix.config.arch, 'ppc64le') if: contains(matrix.config.arch, 'ppc64le')
uses: uraimo/run-on-arch-action@v2 uses: uraimo/run-on-arch-action@v3
with: with:
arch: ${{ matrix.config.arch }} arch: ${{ matrix.config.arch }}
distro: ${{ matrix.config.distro }} distro: ${{ matrix.config.distro }}

View File

@@ -296,11 +296,9 @@ jobs:
- name: Build SDist - name: Build SDist
run: | run: |
cd bindings/python
python3 -m pip install -U pip build python3 -m pip install -U pip build
python3 -m build --sdist python3 -m build --sdist bindings/python
python3 -m pip install dist/*.tar.gz python3 -m pip install bindings/python/dist/*.tar.gz
cd ~
python3 -c 'import unicorn; print(f"Unicorn version installed from sdist: {unicorn.__version__}")' python3 -c 'import unicorn; print(f"Unicorn version installed from sdist: {unicorn.__version__}")'
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4

View File

@@ -6,6 +6,9 @@ build-backend = "setuptools.build_meta"
name = "unicorn" name = "unicorn"
dynamic = ["version"] dynamic = ["version"]
requires-python = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*" requires-python = ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*"
dependencies = [
"importlib_resources; python_version < '3.9'"
]
authors = [ authors = [
{ name = "Nguyen Anh Quynh", email = "quynh@gmail.com" }, { name = "Nguyen Anh Quynh", email = "quynh@gmail.com" },
] ]

View File

@@ -109,19 +109,17 @@ def __load_uc_lib() -> ctypes.CDLL:
# Loading attempts, in order # Loading attempts, in order
# - user-provided environment variable # - user-provided environment variable
# - pkg_resources can get us the path to the local libraries # - importlib.resources/importlib_resources can get us the path to the local libraries
# - we can get the path to the local libraries by parsing our filename # - we can get the path to the local libraries by parsing our filename
# - global load # - global load
# - python's lib directory # - python's lib directory
if sys.version_info.minor >= 12: if sys.version_info >= (3, 9):
from importlib import resources import importlib.resources as resources
canonicals = resources.files('unicorn') / 'lib'
else: else:
import pkg_resources import importlib_resources as resources
canonicals = pkg_resources.resource_filename('unicorn', 'lib') canonicals = resources.files('unicorn') / 'lib'
lib_locations = [ lib_locations = [
os.getenv('LIBUNICORN_PATH'), os.getenv('LIBUNICORN_PATH'),