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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
diff --git a/libagent/age/__init__.py b/libagent/age/__init__.py
index dd2fbe66..e20cb3c4 100644
--- a/libagent/age/__init__.py
+++ b/libagent/age/__init__.py
@@ -13,9 +13,9 @@
import logging
import os
import sys
+from importlib import metadata
import bech32
-import pkg_resources
from cryptography.exceptions import InvalidTag
from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305
@@ -150,9 +150,8 @@ def main(device_type):
p = argparse.ArgumentParser()
agent_package = device_type.package_name()
- resources_map = {r.key: r for r in pkg_resources.require(agent_package)}
- resources = [resources_map[agent_package], resources_map['libagent']]
- versions = '\n'.join('{}={}'.format(r.key, r.version) for r in resources)
+ resources = [metadata.distribution(agent_package), metadata.distribution('libagent')]
+ versions = '\n'.join('{}={}'.format(r.metadata['Name'], r.version) for r in resources)
p.add_argument('--version', help='print the version info',
action='version', version=versions)
diff --git a/libagent/gpg/__init__.py b/libagent/gpg/__init__.py
index 6bad4f65..4f1b166d 100644
--- a/libagent/gpg/__init__.py
+++ b/libagent/gpg/__init__.py
@@ -17,13 +17,13 @@
import stat
import subprocess
import sys
+from importlib import metadata
try:
# TODO: Not supported on Windows. Use daemoniker instead?
import daemon
except ImportError:
daemon = None
-import pkg_resources
import semver
from .. import device, formats, server, util
@@ -308,9 +308,8 @@ def main(device_type):
parser = argparse.ArgumentParser(epilog=epilog)
agent_package = device_type.package_name()
- resources_map = {r.key: r for r in pkg_resources.require(agent_package)}
- resources = [resources_map[agent_package], resources_map['libagent']]
- versions = '\n'.join('{}={}'.format(r.key, r.version) for r in resources)
+ resources = [metadata.distribution(agent_package), metadata.distribution('libagent')]
+ versions = '\n'.join('{}={}'.format(r.metadata['Name'], r.version) for r in resources)
parser.add_argument('--version', help='print the version info',
action='version', version=versions)
diff --git a/libagent/ssh/__init__.py b/libagent/ssh/__init__.py
index dee3ee24..14f2656d 100644
--- a/libagent/ssh/__init__.py
+++ b/libagent/ssh/__init__.py
@@ -13,6 +13,7 @@
import sys
import tempfile
import threading
+from importlib import metadata
import configargparse
@@ -21,7 +22,6 @@
import daemon
except ImportError:
daemon = None
-import pkg_resources
from .. import device, formats, server, util
from . import client, protocol
@@ -83,9 +83,8 @@ def create_agent_parser(device_type):
p.add_argument('-v', '--verbose', default=0, action='count')
agent_package = device_type.package_name()
- resources_map = {r.key: r for r in pkg_resources.require(agent_package)}
- resources = [resources_map[agent_package], resources_map['libagent']]
- versions = '\n'.join('{}={}'.format(r.key, r.version) for r in resources)
+ resources = [metadata.distribution(agent_package), metadata.distribution('libagent')]
+ versions = '\n'.join('{}={}'.format(r.metadata['Name'], r.version) for r in resources)
p.add_argument('--version', help='print the version info',
action='version', version=versions)
diff --git a/setup.py b/setup.py
index 10586f2e..4c21923a 100755
--- a/setup.py
+++ b/setup.py
@@ -8,6 +8,7 @@
author='Roman Zeyde',
author_email='dev@romanzey.de',
url='http://github.com/romanz/trezor-agent',
+ python_requires='>=3.8',
packages=[
'libagent',
'libagent.age',
|