asyncdbus 0.7.2__tar.gz → 0.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/Makefile +1 -3
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/PKG-INFO +7 -23
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/__init__.py +1 -1
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/message_bus.py +8 -8
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/service.py +3 -4
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/signature.py +9 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus.egg-info/PKG-INFO +7 -23
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus.egg-info/SOURCES.txt +1 -1
- asyncdbus-0.8.0/asyncdbus.egg-info/requires.txt +1 -0
- asyncdbus-0.8.0/pyproject.toml +44 -0
- asyncdbus-0.7.2/asyncdbus.egg-info/requires.txt +0 -1
- asyncdbus-0.7.2/setup.py +0 -71
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/.flake8 +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/.gitignore +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/.style.yapf +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/.travis.yml +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/CHANGELOG.md +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/Dockerfile +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/LICENSE +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/MANIFEST.in +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/README.md +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/_private/__init__.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/_private/address.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/_private/constants.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/_private/marshaller.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/_private/unmarshaller.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/_private/util.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/auth.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/constants.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/errors.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/introspection.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/message.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/proxy_object.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/py.typed +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus/validators.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus.egg-info/dependency_links.txt +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/asyncdbus.egg-info/top_level.txt +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/bench/unmarshall.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/dbus_next/glib/message_bus.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/Makefile +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/_static/.gitignore +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/_templates/.gitignore +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/authentication.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/conf.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/constants.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/errors.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/high-level-client/index.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/high-level-client/proxy-interface.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/high-level-client/proxy-object.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/high-level-service/index.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/high-level-service/service-interface.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/index.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/introspection.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/low-level-interface/index.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/low-level-interface/message.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/message-bus/index.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/message-bus/message-bus.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/type-system/index.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/type-system/signature-tree.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/type-system/signature-type.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/type-system/variant.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/docs/validators.rst +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/examples/aio-list-names.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/examples/aio-tcp-notification.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/examples/dbus-name.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/examples/dbus-next-send.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/examples/example-service.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/examples/mpris.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/pytest.ini +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/requirements-dev.txt +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/requirements.txt +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/setup.cfg +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/__init__.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/client/test_methods.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/client/test_properties.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/client/test_signals.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/conftest.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/data/introspection.xml +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/data/messages.json +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/service/__init__.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/service/test_decorators.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/service/test_export.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/service/test_methods.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/service/test_properties.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/service/test_signals.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/service/test_standard_interfaces.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_address_parser.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_aio_low_level.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_big_message.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_disconnect.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_fd_passing.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_introspection.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_marshaller.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_request_name.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_signature.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_tcp_address.py +0 -0
- {asyncdbus-0.7.2 → asyncdbus-0.8.0}/test/test_validators.py +0 -0
|
@@ -30,7 +30,7 @@ clean:
|
|
|
30
30
|
rm -rf `find -type d -name __pycache__`
|
|
31
31
|
|
|
32
32
|
publish:
|
|
33
|
-
python3
|
|
33
|
+
python3 -m build --sdist
|
|
34
34
|
twine upload dist/${PYPI}-$(shell git describe --tags --exact-match).tar.gz
|
|
35
35
|
#python3 -m twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
|
|
36
36
|
|
|
@@ -45,8 +45,6 @@ all: format lint test
|
|
|
45
45
|
pypi: tagged
|
|
46
46
|
if test -f dist/${PYPI}-$(shell git describe --tags --exact-match).tar.gz ; then \
|
|
47
47
|
echo "Source package exists."; \
|
|
48
|
-
elif test -f setup.py ; then \
|
|
49
|
-
python3 setup.py sdist bdist_wheel ; \
|
|
50
48
|
else \
|
|
51
49
|
python3 -mbuild -snw ; \
|
|
52
50
|
fi
|
|
@@ -1,43 +1,27 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: asyncdbus
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.0
|
|
4
4
|
Summary: A zero-dependency async DBus library
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Classifier: Development Status :: 3 - Alpha
|
|
5
|
+
Author-email: Matthias Urlichs <matthias@urlichs.de>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/M-o-a-T/asyncdbus
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
9
|
Classifier: Environment :: X11 Applications
|
|
11
10
|
Classifier: Environment :: X11 Applications :: Gnome
|
|
12
11
|
Classifier: Topic :: Desktop Environment :: Gnome
|
|
13
12
|
Classifier: Topic :: Software Development :: Embedded Systems
|
|
14
13
|
Classifier: Framework :: AsyncIO
|
|
15
14
|
Classifier: Framework :: Trio
|
|
16
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
17
15
|
Classifier: Programming Language :: Python
|
|
18
16
|
Classifier: Programming Language :: Python :: 3
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
22
17
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
23
18
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
24
19
|
Classifier: Typing :: Typed
|
|
25
|
-
Requires-Python: >=3.
|
|
20
|
+
Requires-Python: >=3.10
|
|
26
21
|
Description-Content-Type: text/markdown
|
|
27
22
|
License-File: LICENSE
|
|
28
|
-
Requires-Dist: anyio>=
|
|
29
|
-
Dynamic: author
|
|
30
|
-
Dynamic: author-email
|
|
31
|
-
Dynamic: classifier
|
|
32
|
-
Dynamic: description
|
|
33
|
-
Dynamic: description-content-type
|
|
34
|
-
Dynamic: home-page
|
|
35
|
-
Dynamic: license
|
|
23
|
+
Requires-Dist: anyio>=4
|
|
36
24
|
Dynamic: license-file
|
|
37
|
-
Dynamic: requires-dist
|
|
38
|
-
Dynamic: requires-python
|
|
39
|
-
Dynamic: summary
|
|
40
|
-
|
|
41
25
|
|
|
42
26
|
# asyncdbus
|
|
43
27
|
|
|
@@ -10,7 +10,7 @@ from .message import Message
|
|
|
10
10
|
from .message_bus import MessageBus
|
|
11
11
|
from .proxy_object import ProxyObject, ProxyInterface
|
|
12
12
|
from . import service
|
|
13
|
-
from .signature import SignatureType, SignatureTree, Variant
|
|
13
|
+
from .signature import SignatureType, SignatureTree, Variant, DbusType
|
|
14
14
|
from .validators import (is_bus_name_valid, is_object_path_valid, is_interface_name_valid,
|
|
15
15
|
is_member_name_valid, assert_bus_name_valid, assert_object_path_valid,
|
|
16
16
|
assert_interface_name_valid, assert_member_name_valid)
|
|
@@ -994,7 +994,7 @@ class MessageBus:
|
|
|
994
994
|
sock.setblocking(False)
|
|
995
995
|
sock.connect(filename)
|
|
996
996
|
except (BlockingIOError, InterruptedError):
|
|
997
|
-
await anyio.
|
|
997
|
+
await anyio.wait_writable(sock)
|
|
998
998
|
e = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
|
|
999
999
|
if e:
|
|
1000
1000
|
if err is None:
|
|
@@ -1020,7 +1020,7 @@ class MessageBus:
|
|
|
1020
1020
|
sock = socket.create_connection((ip_addr, ip_port))
|
|
1021
1021
|
sock.setblocking(False)
|
|
1022
1022
|
except (BlockingIOError, InterruptedError):
|
|
1023
|
-
await anyio.
|
|
1023
|
+
await anyio.wait_writable(sock)
|
|
1024
1024
|
e = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
|
|
1025
1025
|
if e:
|
|
1026
1026
|
if err is None:
|
|
@@ -1136,7 +1136,7 @@ class MessageBus:
|
|
|
1136
1136
|
task_status.started()
|
|
1137
1137
|
while True:
|
|
1138
1138
|
# data = await self._sock.receive()
|
|
1139
|
-
await anyio.
|
|
1139
|
+
await anyio.wait_readable(self._sock)
|
|
1140
1140
|
if self._sock is None:
|
|
1141
1141
|
return
|
|
1142
1142
|
data, aux, *_ = self._sock.recvmsg(8192, 4096)
|
|
@@ -1154,7 +1154,7 @@ class MessageBus:
|
|
|
1154
1154
|
buf = memoryview(buf)
|
|
1155
1155
|
done = 0
|
|
1156
1156
|
while done < len(buf) or (unix_fds and self._negotiate_unix_fd):
|
|
1157
|
-
await anyio.
|
|
1157
|
+
await anyio.wait_writable(self._sock)
|
|
1158
1158
|
if self._sock is None:
|
|
1159
1159
|
raise EOFError
|
|
1160
1160
|
if unix_fds and self._negotiate_unix_fd:
|
|
@@ -1171,7 +1171,7 @@ class MessageBus:
|
|
|
1171
1171
|
async def _auth_readline(self):
|
|
1172
1172
|
buf = b''
|
|
1173
1173
|
while buf[-2:] != b'\r\n':
|
|
1174
|
-
await anyio.
|
|
1174
|
+
await anyio.wait_readable(self._sock)
|
|
1175
1175
|
data = self._sock.recv(1024)
|
|
1176
1176
|
if not data:
|
|
1177
1177
|
raise EOFError
|
|
@@ -1179,7 +1179,7 @@ class MessageBus:
|
|
|
1179
1179
|
return buf[:-2].decode()
|
|
1180
1180
|
|
|
1181
1181
|
async def _authenticate(self):
|
|
1182
|
-
await anyio.
|
|
1182
|
+
await anyio.wait_writable(self._sock)
|
|
1183
1183
|
done = self._sock.send(b'\0')
|
|
1184
1184
|
if not done:
|
|
1185
1185
|
raise EOFError
|
|
@@ -1189,13 +1189,13 @@ class MessageBus:
|
|
|
1189
1189
|
if first_line is not None:
|
|
1190
1190
|
if not isinstance(first_line, str):
|
|
1191
1191
|
raise AuthError('authenticator response is %r not str' % (first_line))
|
|
1192
|
-
await anyio.
|
|
1192
|
+
await anyio.wait_writable(self._sock)
|
|
1193
1193
|
done = self._sock.send(Authenticator._format_line(first_line))
|
|
1194
1194
|
|
|
1195
1195
|
while True:
|
|
1196
1196
|
response = self._auth._receive_line(await self._auth_readline())
|
|
1197
1197
|
if response is not None:
|
|
1198
|
-
await anyio.
|
|
1198
|
+
await anyio.wait_writable(self._sock)
|
|
1199
1199
|
done = self._sock.send(Authenticator._format_line(response))
|
|
1200
1200
|
if response == 'BEGIN':
|
|
1201
1201
|
break
|
|
@@ -6,7 +6,7 @@ from ._private.util import signature_contains_type, replace_fds_with_idx, replac
|
|
|
6
6
|
|
|
7
7
|
from functools import wraps
|
|
8
8
|
import inspect
|
|
9
|
-
from typing import
|
|
9
|
+
from typing import Dict, List, Any
|
|
10
10
|
import copy
|
|
11
11
|
|
|
12
12
|
|
|
@@ -30,6 +30,8 @@ class _Method:
|
|
|
30
30
|
sig = param.annotation
|
|
31
31
|
if hasattr(sig, 'tree'):
|
|
32
32
|
sig = sig.tree.signature
|
|
33
|
+
if sig.startswith("DbusType[") and sig[-1]=="]":
|
|
34
|
+
sig= sig[9:-1]
|
|
33
35
|
if sig and sig[0] in "'\"":
|
|
34
36
|
sig = sig[1:-1]
|
|
35
37
|
in_signature += sig
|
|
@@ -88,7 +90,6 @@ def method(name: str = None, disabled: bool = False):
|
|
|
88
90
|
if type(disabled) is not bool:
|
|
89
91
|
raise TypeError('disabled must be a bool')
|
|
90
92
|
|
|
91
|
-
@no_type_check_decorator
|
|
92
93
|
def decorator(fn):
|
|
93
94
|
@wraps(fn)
|
|
94
95
|
def wrapped(*args, **kwargs):
|
|
@@ -163,7 +164,6 @@ def signal(name: str = None, disabled: bool = False):
|
|
|
163
164
|
if type(disabled) is not bool:
|
|
164
165
|
raise TypeError('disabled must be a bool')
|
|
165
166
|
|
|
166
|
-
@no_type_check_decorator
|
|
167
167
|
def decorator(fn):
|
|
168
168
|
fn_name = name if name else fn.__name__
|
|
169
169
|
signal = _Signal(fn, fn_name, disabled)
|
|
@@ -296,7 +296,6 @@ def dbus_property(access: PropertyAccess = PropertyAccess.READWRITE,
|
|
|
296
296
|
if type(disabled) is not bool:
|
|
297
297
|
raise TypeError('disabled must be a bool')
|
|
298
298
|
|
|
299
|
-
@no_type_check_decorator
|
|
300
299
|
def decorator(fn):
|
|
301
300
|
options = {'name': name, 'access': access, 'disabled': disabled}
|
|
302
301
|
return _Property(fn, options=options)
|
|
@@ -5,6 +5,13 @@ from typing import Any, List as _List, Union, Tuple as _Tuple, Dict as _Dict, Ge
|
|
|
5
5
|
from functools import lru_cache
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
class DbusType:
|
|
9
|
+
"""
|
|
10
|
+
A wrapper so our signatures work with the rest of Python's typing
|
|
11
|
+
infrastructure.
|
|
12
|
+
"""
|
|
13
|
+
pass
|
|
14
|
+
|
|
8
15
|
class SignatureType:
|
|
9
16
|
"""A class that represents a single complete type within a signature.
|
|
10
17
|
|
|
@@ -59,6 +66,8 @@ class SignatureType:
|
|
|
59
66
|
def _parse_next(signature):
|
|
60
67
|
if not signature or signature in ('""',"''"):
|
|
61
68
|
return (None, '')
|
|
69
|
+
if signature.startswith("DbusType[") and signature[-1]=="]":
|
|
70
|
+
signature = signature[9:-1]
|
|
62
71
|
if signature[0] in "'\"":
|
|
63
72
|
signature = signature[1:-1]
|
|
64
73
|
|
|
@@ -1,43 +1,27 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: asyncdbus
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.0
|
|
4
4
|
Summary: A zero-dependency async DBus library
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Classifier: Development Status :: 3 - Alpha
|
|
5
|
+
Author-email: Matthias Urlichs <matthias@urlichs.de>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/M-o-a-T/asyncdbus
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
9
|
Classifier: Environment :: X11 Applications
|
|
11
10
|
Classifier: Environment :: X11 Applications :: Gnome
|
|
12
11
|
Classifier: Topic :: Desktop Environment :: Gnome
|
|
13
12
|
Classifier: Topic :: Software Development :: Embedded Systems
|
|
14
13
|
Classifier: Framework :: AsyncIO
|
|
15
14
|
Classifier: Framework :: Trio
|
|
16
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
17
15
|
Classifier: Programming Language :: Python
|
|
18
16
|
Classifier: Programming Language :: Python :: 3
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
22
17
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
23
18
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
24
19
|
Classifier: Typing :: Typed
|
|
25
|
-
Requires-Python: >=3.
|
|
20
|
+
Requires-Python: >=3.10
|
|
26
21
|
Description-Content-Type: text/markdown
|
|
27
22
|
License-File: LICENSE
|
|
28
|
-
Requires-Dist: anyio>=
|
|
29
|
-
Dynamic: author
|
|
30
|
-
Dynamic: author-email
|
|
31
|
-
Dynamic: classifier
|
|
32
|
-
Dynamic: description
|
|
33
|
-
Dynamic: description-content-type
|
|
34
|
-
Dynamic: home-page
|
|
35
|
-
Dynamic: license
|
|
23
|
+
Requires-Dist: anyio>=4
|
|
36
24
|
Dynamic: license-file
|
|
37
|
-
Dynamic: requires-dist
|
|
38
|
-
Dynamic: requires-python
|
|
39
|
-
Dynamic: summary
|
|
40
|
-
|
|
41
25
|
|
|
42
26
|
# asyncdbus
|
|
43
27
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
anyio>=4
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77", "setuptools-scm>=8"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "asyncdbus"
|
|
7
|
+
description = "A zero-dependency async DBus library"
|
|
8
|
+
readme = "README.md"
|
|
9
|
+
license = "MIT"
|
|
10
|
+
license-files = ["LICENSE"]
|
|
11
|
+
authors = [{ name = "Matthias Urlichs", email = "matthias@urlichs.de" }]
|
|
12
|
+
requires-python = ">=3.10"
|
|
13
|
+
dependencies = ["anyio >= 4"]
|
|
14
|
+
dynamic = ["version"]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 4 - Beta",
|
|
17
|
+
"Environment :: X11 Applications",
|
|
18
|
+
"Environment :: X11 Applications :: Gnome",
|
|
19
|
+
"Topic :: Desktop Environment :: Gnome",
|
|
20
|
+
"Topic :: Software Development :: Embedded Systems",
|
|
21
|
+
"Framework :: AsyncIO",
|
|
22
|
+
"Framework :: Trio",
|
|
23
|
+
"Programming Language :: Python",
|
|
24
|
+
"Programming Language :: Python :: 3",
|
|
25
|
+
"Programming Language :: Python :: Implementation :: CPython",
|
|
26
|
+
"Programming Language :: Python :: Implementation :: PyPy",
|
|
27
|
+
"Typing :: Typed",
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
[project.urls]
|
|
31
|
+
Homepage = "https://github.com/M-o-a-T/asyncdbus"
|
|
32
|
+
|
|
33
|
+
[tool.setuptools]
|
|
34
|
+
include-package-data = true
|
|
35
|
+
|
|
36
|
+
[tool.setuptools.packages.find]
|
|
37
|
+
include = ["asyncdbus*"]
|
|
38
|
+
|
|
39
|
+
[tool.setuptools.package-data]
|
|
40
|
+
asyncdbus = ["py.typed"]
|
|
41
|
+
|
|
42
|
+
[tool.setuptools_scm]
|
|
43
|
+
version_scheme = "guess-next-dev"
|
|
44
|
+
local_scheme = "dirty-tag"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
anyio>=3
|
asyncdbus-0.7.2/setup.py
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
# -*- coding: utf-8 -*-
|
|
3
|
-
|
|
4
|
-
import io
|
|
5
|
-
import os
|
|
6
|
-
|
|
7
|
-
from setuptools import setup
|
|
8
|
-
|
|
9
|
-
# Package meta-data.
|
|
10
|
-
DESCRIPTION = 'A zero-dependency async DBus library'
|
|
11
|
-
REQUIRES_PYTHON = '>=3.7.0'
|
|
12
|
-
|
|
13
|
-
# What packages are required for this module to be executed?
|
|
14
|
-
REQUIRED = ["anyio>=3"]
|
|
15
|
-
|
|
16
|
-
# What packages are optional?
|
|
17
|
-
EXTRAS = {}
|
|
18
|
-
|
|
19
|
-
# The rest you shouldn't have to touch too much :)
|
|
20
|
-
# ------------------------------------------------
|
|
21
|
-
# Except, perhaps the License and Trove Classifiers!
|
|
22
|
-
# If you do change the License, remember to change the Trove Classifier for that!
|
|
23
|
-
|
|
24
|
-
here = os.path.abspath(os.path.dirname(__file__))
|
|
25
|
-
|
|
26
|
-
__title__ = 'asyncdbus'
|
|
27
|
-
__description__ = 'A zero-dependency async DBus library'
|
|
28
|
-
__url__ = 'https://github.com/M-o-a-T/asyncdbus'
|
|
29
|
-
__author__ = 'Matthias Urlichs'
|
|
30
|
-
__author_email__ = 'matthias@urlichs.de'
|
|
31
|
-
__license__ = 'MIT'
|
|
32
|
-
__copyright__ = 'Copyright 2019 Tony Crisci, 2021 Matthias Urlichs'
|
|
33
|
-
|
|
34
|
-
with io.open(os.path.join(here, 'README.md'), encoding='utf-8') as f:
|
|
35
|
-
long_description = '\n' + f.read()
|
|
36
|
-
|
|
37
|
-
setup(
|
|
38
|
-
name=__title__,
|
|
39
|
-
use_scm_version={"version_scheme": "guess-next-dev", "local_scheme": "dirty-tag"},
|
|
40
|
-
setup_requires=["setuptools_scm"],
|
|
41
|
-
description=DESCRIPTION,
|
|
42
|
-
long_description=long_description,
|
|
43
|
-
long_description_content_type='text/markdown',
|
|
44
|
-
author=__author__,
|
|
45
|
-
author_email=__author_email__,
|
|
46
|
-
python_requires=REQUIRES_PYTHON,
|
|
47
|
-
url=__url__,
|
|
48
|
-
packages=["asyncdbus"],
|
|
49
|
-
install_requires=REQUIRED,
|
|
50
|
-
extras_require=EXTRAS,
|
|
51
|
-
include_package_data=True,
|
|
52
|
-
license='MIT',
|
|
53
|
-
classifiers=[
|
|
54
|
-
# Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers
|
|
55
|
-
'Development Status :: 3 - Alpha',
|
|
56
|
-
'Environment :: X11 Applications',
|
|
57
|
-
'Environment :: X11 Applications :: Gnome',
|
|
58
|
-
'Topic :: Desktop Environment :: Gnome',
|
|
59
|
-
'Topic :: Software Development :: Embedded Systems',
|
|
60
|
-
'Framework :: AsyncIO',
|
|
61
|
-
'Framework :: Trio',
|
|
62
|
-
'License :: OSI Approved :: MIT License',
|
|
63
|
-
'Programming Language :: Python',
|
|
64
|
-
'Programming Language :: Python :: 3',
|
|
65
|
-
'Programming Language :: Python :: 3.7',
|
|
66
|
-
'Programming Language :: Python :: 3.8',
|
|
67
|
-
'Programming Language :: Python :: 3.9',
|
|
68
|
-
'Programming Language :: Python :: Implementation :: CPython',
|
|
69
|
-
'Programming Language :: Python :: Implementation :: PyPy',
|
|
70
|
-
'Typing :: Typed'
|
|
71
|
-
])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|