summaryrefslogtreecommitdiff
path: root/meta-aspeed/recipes-aspeed/python/socsec/0001-python-use-importlib-if-available.patch
blob: 254cab21744a33f874d55001f33dcd44588bfea7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
From bbb5d1cd7dc1aef140c7d9f5c26d4067d5a013ff Mon Sep 17 00:00:00 2001
From: Patrick Williams <patrick@stwcx.xyz>
Date: Thu, 26 Mar 2026 14:13:19 -0400
Subject: [PATCH] python: use importlib if available

pkg_resources is deprecated for newer versions of Python and importlib
has been available since 3.7.  Use importlib instead when available.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Upstream-Status: Submitted [https://github.com/AspeedTech-BMC/socsec/pull/21]
---
 requirements.txt   |  1 +
 setup.py           |  4 ++++
 socsec/__init__.py | 12 +++++++++++-
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index b3110f7b..c67461a6 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,3 +6,4 @@ coverage==5.3.1
 ecdsa==0.18.0
 xlrd==1.2.0
 cryptography==44.0.2
+importlib-resources; python_version < "3.9"
diff --git a/setup.py b/setup.py
index 611a486c..3c882800 100644
--- a/setup.py
+++ b/setup.py
@@ -1,3 +1,7 @@
+try:
+    from importlib import resources as importlib_resources
+except ImportError:
+    import importlib_resources
 from socsec import __version__
 import setuptools
 
diff --git a/socsec/__init__.py b/socsec/__init__.py
index 8a1b1cc9..5da77ecb 100644
--- a/socsec/__init__.py
+++ b/socsec/__init__.py
@@ -21,7 +21,17 @@
 from bitarray import bitarray
 import os
 from ecdsa.keys import VerifyingKey
-from pkg_resources import resource_filename as pkgdata
+try:
+    from importlib import resources as importlib_resources
+except ImportError:
+    import importlib_resources
+
+def pkgdata(package, resource):
+    try:
+        return str(importlib_resources.files(package).joinpath(resource))
+    except AttributeError:
+        with importlib_resources.path(package, resource) as p:
+            return str(p)
 import struct
 from Crypto.PublicKey import RSA
 import binascii
-- 
2.52.0