python-terminusgps 1.5.5__tar.gz → 1.5.7__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.
Potentially problematic release.
This version of python-terminusgps might be problematic. Click here for more details.
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/PKG-INFO +2 -2
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/pyproject.toml +2 -2
- python_terminusgps-1.5.7/terminusgps/wialon/errors.py +53 -0
- python_terminusgps-1.5.7/terminusgps/wialon/items/retranslator.py +117 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/session.py +46 -28
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/uv.lock +54 -58
- python_terminusgps-1.5.5/terminusgps/wialon/errors.py +0 -35
- python_terminusgps-1.5.5/terminusgps/wialon/items/retranslator.py +0 -22
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/.gitignore +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/COPYING +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/README.md +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/requirements.txt +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/__init__.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/authorizenet/__init__.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/authorizenet/auth.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/aws/__init__.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/aws/secrets.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/settings.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/__init__.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/constants.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/flags.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/items/__init__.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/items/base.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/items/resource.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/items/route.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/items/unit.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/items/unit_group.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/items/user.py +0 -0
- {python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-terminusgps
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.7
|
|
4
4
|
Summary: Provides abstractions/utilities for working with Wialon API, Authorize.NET API, AWS API, and more.
|
|
5
5
|
Project-URL: Documentation, https://app.terminusgps.com/docs/apps/python-terminusgps/index.html
|
|
6
6
|
Project-URL: Repository, https://github.com/terminusgps/python-terminusgps
|
|
@@ -15,5 +15,5 @@ Requires-Python: >=3.12
|
|
|
15
15
|
Requires-Dist: argparse>=1.4.0
|
|
16
16
|
Requires-Dist: authorizenet>=1.1.5
|
|
17
17
|
Requires-Dist: boto3>=1.34.144
|
|
18
|
-
Requires-Dist: django>=5.1.
|
|
18
|
+
Requires-Dist: django>=5.1.5
|
|
19
19
|
Requires-Dist: python-wialon>=1.2.4
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "python-terminusgps"
|
|
3
|
-
version = "1.5.
|
|
3
|
+
version = "1.5.7"
|
|
4
4
|
description = "Provides abstractions/utilities for working with Wialon API, Authorize.NET API, AWS API, and more."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [ {name = "Blake Nall", email = "blake@terminusgps.com" } ]
|
|
@@ -16,7 +16,7 @@ dependencies = [
|
|
|
16
16
|
"argparse>=1.4.0",
|
|
17
17
|
"authorizenet>=1.1.5",
|
|
18
18
|
"boto3>=1.34.144",
|
|
19
|
-
"django>=5.1.
|
|
19
|
+
"django>=5.1.5",
|
|
20
20
|
"python-wialon>=1.2.4",
|
|
21
21
|
]
|
|
22
22
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from wialon.api import WialonError
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class WialonBaseError(Exception):
|
|
5
|
+
def __init__(
|
|
6
|
+
self, message: str, wialon_err: WialonError | AssertionError | None = None
|
|
7
|
+
) -> None:
|
|
8
|
+
self.wialon_err = wialon_err
|
|
9
|
+
return super().__init__(message)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class WialonLoginError(WialonBaseError):
|
|
13
|
+
def __init__(
|
|
14
|
+
self, token: str | None, wialon_err: WialonError | AssertionError | None = None
|
|
15
|
+
) -> None:
|
|
16
|
+
message = f"Failed to login to the Wialon API using token: '{token}'\n"
|
|
17
|
+
if wialon_err:
|
|
18
|
+
message += str(wialon_err)
|
|
19
|
+
return super().__init__(message, wialon_err)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class WialonSessionDuplicationError(WialonBaseError):
|
|
23
|
+
def __init__(
|
|
24
|
+
self,
|
|
25
|
+
session_id: str | None,
|
|
26
|
+
wialon_err: WialonError | AssertionError | None = None,
|
|
27
|
+
) -> None:
|
|
28
|
+
message = f"Failed to duplicate the Wialon session: '#{session_id}'\n"
|
|
29
|
+
if wialon_err:
|
|
30
|
+
message += str(wialon_err)
|
|
31
|
+
return super().__init__(message, wialon_err)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class WialonLogoutError(WialonBaseError):
|
|
35
|
+
def __init__(
|
|
36
|
+
self, session_id: str, wialon_err: WialonError | AssertionError | None = None
|
|
37
|
+
) -> None:
|
|
38
|
+
message = f"Failed to logout of the Wialon API session: '{session_id}'\n"
|
|
39
|
+
if wialon_err:
|
|
40
|
+
message += str(wialon_err)
|
|
41
|
+
return super().__init__(message, wialon_err)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class WialonSessionInvalidError(WialonBaseError):
|
|
45
|
+
def __init__(
|
|
46
|
+
self,
|
|
47
|
+
session_id: str | None,
|
|
48
|
+
wialon_err: WialonError | AssertionError | None = None,
|
|
49
|
+
) -> None:
|
|
50
|
+
message = f"The session was invalid/expired: '{session_id}'\n"
|
|
51
|
+
if wialon_err:
|
|
52
|
+
message += str(wialon_err)
|
|
53
|
+
return super().__init__(message, wialon_err)
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
from terminusgps.wialon import flags
|
|
2
|
+
from terminusgps.wialon.items.base import WialonBase
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class WialonRetranslator(WialonBase):
|
|
6
|
+
def create(self, **kwargs) -> int | None:
|
|
7
|
+
"""
|
|
8
|
+
Creates a Wialon retranslator.
|
|
9
|
+
|
|
10
|
+
:param creator_id: A Wialon user that will create the retranslator.
|
|
11
|
+
:type creator_id: :py:obj:`str`
|
|
12
|
+
:param name: A name for the new retranslator.
|
|
13
|
+
:type name: :py:obj:`str`
|
|
14
|
+
:param config: A Wialon retranslator configuration object.
|
|
15
|
+
:type config: :py:obj:`dict`
|
|
16
|
+
:raises ValueError: If a required parameter was not provided.
|
|
17
|
+
:raises WialonError: If something went wrong with Wialon.
|
|
18
|
+
:returns: Nothing.
|
|
19
|
+
:rtype: :py:obj:`None`
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
if not kwargs.get("creator_id"):
|
|
23
|
+
raise ValueError("'creator_id' is required on creation.")
|
|
24
|
+
if not kwargs.get("name"):
|
|
25
|
+
raise ValueError("'name' is required on creation.")
|
|
26
|
+
if not kwargs.get("config"):
|
|
27
|
+
raise ValueError("'config' is required on creation.")
|
|
28
|
+
|
|
29
|
+
response = self.session.wialon_api.core_create_retranslator(
|
|
30
|
+
**{
|
|
31
|
+
"creatorId": kwargs["creator_id"],
|
|
32
|
+
"name": kwargs["name"],
|
|
33
|
+
"config": kwargs["config"],
|
|
34
|
+
"dataFlags": flags.DATAFLAG_UNIT_BASE,
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
return response.get("item", {}).get("id")
|
|
38
|
+
|
|
39
|
+
def update_config(self, new_config: dict) -> None:
|
|
40
|
+
"""
|
|
41
|
+
Updates the retranslator config to the new config.
|
|
42
|
+
|
|
43
|
+
:param new_config: A Wialon retranslator configuration.
|
|
44
|
+
:type units: :py:obj:`dict`
|
|
45
|
+
:raises WialonError: If something went wrong with Wialon.
|
|
46
|
+
:returns: Nothing.
|
|
47
|
+
:rtype: :py:obj:`None`
|
|
48
|
+
|
|
49
|
+
"""
|
|
50
|
+
self.session.wialon_api.retranslator_update_config(
|
|
51
|
+
**{"itemId": self.id, "config": new_config}
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
def add_units(self, units: list[WialonBase]) -> None:
|
|
55
|
+
"""
|
|
56
|
+
Adds a list of units to the Wialon retranslator.
|
|
57
|
+
|
|
58
|
+
:param units: A list of Wialon unit objects.
|
|
59
|
+
:type units: :py:obj:`list`
|
|
60
|
+
:raises WialonError: If something went wrong with Wialon.
|
|
61
|
+
:returns: Nothing.
|
|
62
|
+
:rtype: :py:obj:`None`
|
|
63
|
+
|
|
64
|
+
"""
|
|
65
|
+
self.session.wialon_api.retranslator_update_units(
|
|
66
|
+
**{
|
|
67
|
+
"itemId": self.id,
|
|
68
|
+
"units": [{"a": unit.id, "i": unit.hw_type} for unit in units],
|
|
69
|
+
"callMode": "add",
|
|
70
|
+
}
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
def rm_units(self, units: list[WialonBase]) -> None:
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
Naively removes a list of units from the Wialon retranslator.
|
|
77
|
+
|
|
78
|
+
:param units: A list of Wialon unit objects.
|
|
79
|
+
:type units: :py:obj:`list`
|
|
80
|
+
:raises WialonError: If something went wrong with Wialon.
|
|
81
|
+
:returns: Nothing.
|
|
82
|
+
:rtype: :py:obj:`None`
|
|
83
|
+
|
|
84
|
+
"""
|
|
85
|
+
self.session.wialon_api.retranslator_update_units(
|
|
86
|
+
**{
|
|
87
|
+
"itemId": self.id,
|
|
88
|
+
"units": [{"a": unit.id, "i": unit.hw_type} for unit in units],
|
|
89
|
+
"callMode": "remove",
|
|
90
|
+
}
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
def start(self, stop: int | None = None) -> None:
|
|
94
|
+
"""
|
|
95
|
+
Starts the Wialon retranslator.
|
|
96
|
+
|
|
97
|
+
:raises WialonError: If something went wrong with Wialon.
|
|
98
|
+
:returns: Nothing.
|
|
99
|
+
:rtype: :py:obj:`None`
|
|
100
|
+
|
|
101
|
+
"""
|
|
102
|
+
self.session.wialon_api.retranslator_update_operating(
|
|
103
|
+
**{"itemId": self.id, "operate": int(True), "stopTime": stop}
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
def stop(self) -> None:
|
|
107
|
+
"""
|
|
108
|
+
Stops the Wialon retranslator.
|
|
109
|
+
|
|
110
|
+
:raises WialonError: If something went wrong with Wialon.
|
|
111
|
+
:returns: Nothing.
|
|
112
|
+
:rtype: :py:obj:`None`
|
|
113
|
+
|
|
114
|
+
"""
|
|
115
|
+
self.session.wialon_api.retranslator_update_operating(
|
|
116
|
+
**{"itemId": self.id, "operate": int(False)}
|
|
117
|
+
)
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
from wialon.api import Wialon, WialonError
|
|
2
|
-
from pprint import pprint
|
|
3
2
|
from django.conf import settings
|
|
4
3
|
from django.core.exceptions import ImproperlyConfigured
|
|
5
4
|
|
|
6
|
-
from .errors import
|
|
5
|
+
from .errors import (
|
|
6
|
+
WialonLogoutError,
|
|
7
|
+
WialonLoginError,
|
|
8
|
+
WialonSessionDuplicationError,
|
|
9
|
+
WialonSessionInvalidError,
|
|
10
|
+
)
|
|
7
11
|
|
|
8
12
|
|
|
9
13
|
class WialonSession:
|
|
@@ -33,7 +37,6 @@ class WialonSession:
|
|
|
33
37
|
raise ImproperlyConfigured("'WIALON_ADMIN_ID' setting is required.")
|
|
34
38
|
|
|
35
39
|
self.wialon_api = Wialon(scheme=scheme, host=host, port=port, sid=sid)
|
|
36
|
-
self.active = bool(sid)
|
|
37
40
|
self.token = token
|
|
38
41
|
self._username = None
|
|
39
42
|
self._gis_sid = None
|
|
@@ -49,6 +52,24 @@ class WialonSession:
|
|
|
49
52
|
def __exit__(self, *args, **kwargs) -> None:
|
|
50
53
|
self.logout()
|
|
51
54
|
|
|
55
|
+
@property
|
|
56
|
+
def active(self) -> bool:
|
|
57
|
+
"""
|
|
58
|
+
Whether or not the Wialon session is currently active.
|
|
59
|
+
|
|
60
|
+
:type: :py:obj:`bool`
|
|
61
|
+
:value: :py:obj:`False`
|
|
62
|
+
"""
|
|
63
|
+
is_active = False
|
|
64
|
+
|
|
65
|
+
try:
|
|
66
|
+
response = self.wialon_api.core_duplicate(**{"restore": 1})
|
|
67
|
+
is_active = bool(response)
|
|
68
|
+
except WialonError as e:
|
|
69
|
+
raise WialonSessionInvalidError(self.id, e)
|
|
70
|
+
finally:
|
|
71
|
+
return is_active
|
|
72
|
+
|
|
52
73
|
@property
|
|
53
74
|
def gis_geocode(self) -> str | None:
|
|
54
75
|
"""
|
|
@@ -199,32 +220,31 @@ class WialonSession:
|
|
|
199
220
|
def token(self, value: str | None = None) -> None:
|
|
200
221
|
self._token = value if value else settings.WIALON_TOKEN
|
|
201
222
|
|
|
202
|
-
def duplicate(
|
|
203
|
-
self, user_id: str | None = None, continue_session: bool = False
|
|
204
|
-
) -> None:
|
|
223
|
+
def duplicate(self, username: str | None = None, continued: bool = False) -> str:
|
|
205
224
|
"""
|
|
206
225
|
Duplicates the active Wialon API session.
|
|
207
226
|
|
|
208
|
-
:param
|
|
209
|
-
:type
|
|
227
|
+
:param username: A Wialon user to operate as in the session.
|
|
228
|
+
:type username: :py:obj:`str` | :py:obj:`None`
|
|
210
229
|
:param continue_session: Whether or not the original session id should be valid after duplication.
|
|
211
230
|
:type continue_session: :py:obj:`bool`
|
|
212
231
|
:raises WialonSessionDuplicationError: If the Wialon session was not duplicated.
|
|
213
|
-
:
|
|
214
|
-
:
|
|
232
|
+
:raises AssertionError: If the session was already active.
|
|
233
|
+
:returns: The new session id.
|
|
234
|
+
:rtype: :py:obj:`str`
|
|
215
235
|
|
|
216
236
|
"""
|
|
217
237
|
try:
|
|
218
|
-
|
|
219
|
-
|
|
238
|
+
assert self.active, "Cannot duplicate an inactive session."
|
|
239
|
+
response = self.wialon_api.core_duplicate(
|
|
240
|
+
**{"operateAs": username, "continueCurrentSession": continued}
|
|
220
241
|
)
|
|
221
|
-
|
|
242
|
+
self._set_login_response(response)
|
|
243
|
+
return response.get("eid")
|
|
244
|
+
except (WialonError, AssertionError) as e:
|
|
222
245
|
raise WialonSessionDuplicationError(self.id, e)
|
|
223
|
-
else:
|
|
224
|
-
self._set_login_response(login_response)
|
|
225
|
-
self.active = True
|
|
226
246
|
|
|
227
|
-
def login(self, token: str, flags: int = sum([0x1, 0x2, 0x20])) ->
|
|
247
|
+
def login(self, token: str, flags: int = sum([0x1, 0x2, 0x20])) -> str:
|
|
228
248
|
"""
|
|
229
249
|
Logs into the Wialon API and starts a new session.
|
|
230
250
|
|
|
@@ -236,19 +256,17 @@ class WialonSession:
|
|
|
236
256
|
:type flags: :py:obj:`int`
|
|
237
257
|
:raises WialonLoginError: If the login fails.
|
|
238
258
|
:raises AssertionError: If the session was already active.
|
|
239
|
-
:returns:
|
|
240
|
-
:rtype: :py:obj:`
|
|
259
|
+
:returns: The new session id.
|
|
260
|
+
:rtype: :py:obj:`str`
|
|
241
261
|
|
|
242
262
|
"""
|
|
243
|
-
assert not self.active, "Cannot login to an active session."
|
|
244
263
|
try:
|
|
264
|
+
assert not self.active, "Cannot login to an active session."
|
|
245
265
|
response = self.wialon_api.token_login(**{"token": token, "fl": flags})
|
|
246
|
-
pprint(response)
|
|
247
|
-
except WialonError as e:
|
|
248
|
-
raise WialonLoginError(token, e)
|
|
249
|
-
else:
|
|
250
266
|
self._set_login_response(response)
|
|
251
|
-
|
|
267
|
+
return response.get("eid")
|
|
268
|
+
except (WialonError, AssertionError) as e:
|
|
269
|
+
raise WialonLoginError(token, e)
|
|
252
270
|
|
|
253
271
|
def logout(self) -> None:
|
|
254
272
|
"""
|
|
@@ -267,7 +285,7 @@ class WialonSession:
|
|
|
267
285
|
"""
|
|
268
286
|
Sets the Wialon API session's attributes based on a login response.
|
|
269
287
|
|
|
270
|
-
:param login_response: A
|
|
288
|
+
:param login_response: A response returned from :py:meth:`login` or :py:meth:`duplicate`.
|
|
271
289
|
:type login_response: :py:obj:`dict`
|
|
272
290
|
:returns: Nothing.
|
|
273
291
|
:rtype: :py:obj:`None`
|
|
@@ -291,8 +309,8 @@ class WialonSession:
|
|
|
291
309
|
|
|
292
310
|
def main() -> None:
|
|
293
311
|
session = WialonSession()
|
|
294
|
-
session.login(settings.WIALON_TOKEN)
|
|
295
|
-
session.duplicate(
|
|
312
|
+
session.login(token=settings.WIALON_TOKEN)
|
|
313
|
+
session.duplicate(username="chrissyron@gmail.com", continued=False)
|
|
296
314
|
session.logout()
|
|
297
315
|
return
|
|
298
316
|
|
|
@@ -50,78 +50,74 @@ wheels = [
|
|
|
50
50
|
|
|
51
51
|
[[package]]
|
|
52
52
|
name = "boto3"
|
|
53
|
-
version = "1.
|
|
53
|
+
version = "1.36.2"
|
|
54
54
|
source = { registry = "https://pypi.org/simple" }
|
|
55
55
|
dependencies = [
|
|
56
56
|
{ name = "botocore" },
|
|
57
57
|
{ name = "jmespath" },
|
|
58
58
|
{ name = "s3transfer" },
|
|
59
59
|
]
|
|
60
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
60
|
+
sdist = { url = "https://files.pythonhosted.org/packages/3a/e9/c0b2fa75efc4007ea1af21bc2fcbedf6e545c517fb90904d7f59850e02bf/boto3-1.36.2.tar.gz", hash = "sha256:fde1c29996b77274a60b7bc9f741525afa6267bb1716eb644a764fb7c124a0d2", size = 110998 }
|
|
61
61
|
wheels = [
|
|
62
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
62
|
+
{ url = "https://files.pythonhosted.org/packages/17/c2/72a92794237b43f64141e156bc3a58bc36d18631f1a614e1e97a48b56447/boto3-1.36.2-py3-none-any.whl", hash = "sha256:76cfc9a705be46e8d22607efacc8d688c064f923d785a01c00b28e9a96425d1a", size = 139166 },
|
|
63
63
|
]
|
|
64
64
|
|
|
65
65
|
[[package]]
|
|
66
66
|
name = "botocore"
|
|
67
|
-
version = "1.
|
|
67
|
+
version = "1.36.2"
|
|
68
68
|
source = { registry = "https://pypi.org/simple" }
|
|
69
69
|
dependencies = [
|
|
70
70
|
{ name = "jmespath" },
|
|
71
71
|
{ name = "python-dateutil" },
|
|
72
72
|
{ name = "urllib3" },
|
|
73
73
|
]
|
|
74
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
74
|
+
sdist = { url = "https://files.pythonhosted.org/packages/c6/93/353b70cea6447e37789fc2d6f761fc12ae36fb4adb6f558055de8cdf655f/botocore-1.36.2.tar.gz", hash = "sha256:a1fe6610983f0214b0c7655fe6990b6a731746baf305b182976fc7b568fc3cb0", size = 13505440 }
|
|
75
75
|
wheels = [
|
|
76
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
76
|
+
{ url = "https://files.pythonhosted.org/packages/0c/fe/c066e8cb069027c12dbcf9066a7a4f3e9d2a31b10c7b174a8455ef1d0f46/botocore-1.36.2-py3-none-any.whl", hash = "sha256:bc3b7e3b573a48af2bd7116b80fe24f9a335b0b67314dcb2697a327d009abf29", size = 13302324 },
|
|
77
77
|
]
|
|
78
78
|
|
|
79
79
|
[[package]]
|
|
80
80
|
name = "certifi"
|
|
81
|
-
version = "2024.
|
|
81
|
+
version = "2024.12.14"
|
|
82
82
|
source = { registry = "https://pypi.org/simple" }
|
|
83
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
83
|
+
sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 }
|
|
84
84
|
wheels = [
|
|
85
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
85
|
+
{ url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 },
|
|
86
86
|
]
|
|
87
87
|
|
|
88
88
|
[[package]]
|
|
89
89
|
name = "charset-normalizer"
|
|
90
|
-
version = "3.4.
|
|
91
|
-
source = { registry = "https://pypi.org/simple" }
|
|
92
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
93
|
-
wheels = [
|
|
94
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
95
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
96
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
97
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
98
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
99
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
100
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
101
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
102
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
103
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
104
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
105
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
106
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
107
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
108
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
109
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
110
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
111
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
112
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
113
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
114
|
-
{ url = "https://files.pythonhosted.org/packages/fb/
|
|
115
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
116
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
117
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
118
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
119
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
120
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
121
|
-
{ url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 },
|
|
122
|
-
{ url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 },
|
|
123
|
-
{ url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 },
|
|
124
|
-
{ url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 },
|
|
90
|
+
version = "3.4.1"
|
|
91
|
+
source = { registry = "https://pypi.org/simple" }
|
|
92
|
+
sdist = { url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", size = 123188 }
|
|
93
|
+
wheels = [
|
|
94
|
+
{ url = "https://files.pythonhosted.org/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545", size = 196105 },
|
|
95
|
+
{ url = "https://files.pythonhosted.org/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7", size = 140404 },
|
|
96
|
+
{ url = "https://files.pythonhosted.org/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757", size = 150423 },
|
|
97
|
+
{ url = "https://files.pythonhosted.org/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa", size = 143184 },
|
|
98
|
+
{ url = "https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d", size = 145268 },
|
|
99
|
+
{ url = "https://files.pythonhosted.org/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616", size = 147601 },
|
|
100
|
+
{ url = "https://files.pythonhosted.org/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b", size = 141098 },
|
|
101
|
+
{ url = "https://files.pythonhosted.org/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d", size = 149520 },
|
|
102
|
+
{ url = "https://files.pythonhosted.org/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a", size = 152852 },
|
|
103
|
+
{ url = "https://files.pythonhosted.org/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9", size = 150488 },
|
|
104
|
+
{ url = "https://files.pythonhosted.org/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1", size = 146192 },
|
|
105
|
+
{ url = "https://files.pythonhosted.org/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35", size = 95550 },
|
|
106
|
+
{ url = "https://files.pythonhosted.org/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f", size = 102785 },
|
|
107
|
+
{ url = "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", size = 195698 },
|
|
108
|
+
{ url = "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", size = 140162 },
|
|
109
|
+
{ url = "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", size = 150263 },
|
|
110
|
+
{ url = "https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b", size = 142966 },
|
|
111
|
+
{ url = "https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11", size = 144992 },
|
|
112
|
+
{ url = "https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f", size = 147162 },
|
|
113
|
+
{ url = "https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd", size = 140972 },
|
|
114
|
+
{ url = "https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2", size = 149095 },
|
|
115
|
+
{ url = "https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886", size = 152668 },
|
|
116
|
+
{ url = "https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601", size = 150073 },
|
|
117
|
+
{ url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732 },
|
|
118
|
+
{ url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391 },
|
|
119
|
+
{ url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702 },
|
|
120
|
+
{ url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767 },
|
|
125
121
|
]
|
|
126
122
|
|
|
127
123
|
[[package]]
|
|
@@ -135,16 +131,16 @@ wheels = [
|
|
|
135
131
|
|
|
136
132
|
[[package]]
|
|
137
133
|
name = "django"
|
|
138
|
-
version = "5.1.
|
|
134
|
+
version = "5.1.5"
|
|
139
135
|
source = { registry = "https://pypi.org/simple" }
|
|
140
136
|
dependencies = [
|
|
141
137
|
{ name = "asgiref" },
|
|
142
138
|
{ name = "sqlparse" },
|
|
143
139
|
{ name = "tzdata", marker = "sys_platform == 'win32'" },
|
|
144
140
|
]
|
|
145
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
141
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e4/17/834e3e08d590dcc27d4cc3c5cd4e2fb757b7a92bab9de8ee402455732952/Django-5.1.5.tar.gz", hash = "sha256:19bbca786df50b9eca23cee79d495facf55c8f5c54c529d9bf1fe7b5ea086af3", size = 10700031 }
|
|
146
142
|
wheels = [
|
|
147
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
143
|
+
{ url = "https://files.pythonhosted.org/packages/11/e6/e92c8c788b83d109f34d933c5e817095d85722719cb4483472abc135f44e/Django-5.1.5-py3-none-any.whl", hash = "sha256:c46eb936111fffe6ec4bc9930035524a8be98ec2f74d8a0ff351226a3e52f459", size = 8276957 },
|
|
148
144
|
]
|
|
149
145
|
|
|
150
146
|
[[package]]
|
|
@@ -289,7 +285,7 @@ wheels = [
|
|
|
289
285
|
|
|
290
286
|
[[package]]
|
|
291
287
|
name = "python-terminusgps"
|
|
292
|
-
version = "1.5.
|
|
288
|
+
version = "1.5.7"
|
|
293
289
|
source = { editable = "." }
|
|
294
290
|
dependencies = [
|
|
295
291
|
{ name = "argparse" },
|
|
@@ -310,7 +306,7 @@ requires-dist = [
|
|
|
310
306
|
{ name = "argparse", specifier = ">=1.4.0" },
|
|
311
307
|
{ name = "authorizenet", specifier = ">=1.1.5" },
|
|
312
308
|
{ name = "boto3", specifier = ">=1.34.144" },
|
|
313
|
-
{ name = "django", specifier = ">=5.1.
|
|
309
|
+
{ name = "django", specifier = ">=5.1.5" },
|
|
314
310
|
{ name = "python-wialon", specifier = ">=1.2.4" },
|
|
315
311
|
]
|
|
316
312
|
|
|
@@ -335,11 +331,11 @@ wheels = [
|
|
|
335
331
|
|
|
336
332
|
[[package]]
|
|
337
333
|
name = "pyxb-x"
|
|
338
|
-
version = "1.2.6.
|
|
334
|
+
version = "1.2.6.3"
|
|
339
335
|
source = { registry = "https://pypi.org/simple" }
|
|
340
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
336
|
+
sdist = { url = "https://files.pythonhosted.org/packages/de/de/2556352e8e4092d835852af63c34500681ba5ab6a5a3047e5daabb6d9ca9/pyxb_x-1.2.6.3.tar.gz", hash = "sha256:bf401fa8d3e6bd6ea6648f49f02c7dc7ef460b4c61dc34bc2f1c4c3a952037b5", size = 1275136 }
|
|
341
337
|
wheels = [
|
|
342
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
338
|
+
{ url = "https://files.pythonhosted.org/packages/8c/03/8154462b23ce8ed229d9be4eee17b8132b746e6a1f1dbfe57b72139ce5a0/PyXB_X-1.2.6.3-py3-none-any.whl", hash = "sha256:4c4a55d6b8c61c2d84ab4c2cb49ee74185599242bbfd1cf0bdd6be4a8a874006", size = 310097 },
|
|
343
339
|
]
|
|
344
340
|
|
|
345
341
|
[[package]]
|
|
@@ -359,14 +355,14 @@ wheels = [
|
|
|
359
355
|
|
|
360
356
|
[[package]]
|
|
361
357
|
name = "s3transfer"
|
|
362
|
-
version = "0.
|
|
358
|
+
version = "0.11.1"
|
|
363
359
|
source = { registry = "https://pypi.org/simple" }
|
|
364
360
|
dependencies = [
|
|
365
361
|
{ name = "botocore" },
|
|
366
362
|
]
|
|
367
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
363
|
+
sdist = { url = "https://files.pythonhosted.org/packages/1a/aa/fdd958c626b00e3f046d4004363e7f1a2aba4354f78d65ceb3b217fa5eb8/s3transfer-0.11.1.tar.gz", hash = "sha256:3f25c900a367c8b7f7d8f9c34edc87e300bde424f779dc9f0a8ae4f9df9264f6", size = 146952 }
|
|
368
364
|
wheels = [
|
|
369
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
365
|
+
{ url = "https://files.pythonhosted.org/packages/5f/ce/22673f4a85ccc640735b4f8d12178a0f41b5d3c6eda7f33756d10ce56901/s3transfer-0.11.1-py3-none-any.whl", hash = "sha256:8fa0aa48177be1f3425176dfe1ab85dcd3d962df603c3dbfc585e6bf857ef0ff", size = 84111 },
|
|
370
366
|
]
|
|
371
367
|
|
|
372
368
|
[[package]]
|
|
@@ -549,9 +545,9 @@ wheels = [
|
|
|
549
545
|
|
|
550
546
|
[[package]]
|
|
551
547
|
name = "urllib3"
|
|
552
|
-
version = "2.
|
|
548
|
+
version = "2.3.0"
|
|
553
549
|
source = { registry = "https://pypi.org/simple" }
|
|
554
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
550
|
+
sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268 }
|
|
555
551
|
wheels = [
|
|
556
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
552
|
+
{ url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369 },
|
|
557
553
|
]
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
from wialon.api import WialonError
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class WialonBaseError(Exception):
|
|
5
|
-
def __init__(self, message: str, wialon_err: WialonError | None = None) -> None:
|
|
6
|
-
self.wialon_err = wialon_err
|
|
7
|
-
super().__init__(message)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class WialonLoginError(WialonBaseError):
|
|
11
|
-
def __init__(
|
|
12
|
-
self, token: str | None, wialon_err: WialonError | None = None
|
|
13
|
-
) -> None:
|
|
14
|
-
message = f"Failed to login to the Wialon API using token: '{token}'\n"
|
|
15
|
-
if wialon_err:
|
|
16
|
-
message += str(wialon_err)
|
|
17
|
-
super().__init__(message, wialon_err)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
class WialonSessionDuplicationError(WialonBaseError):
|
|
21
|
-
def __init__(
|
|
22
|
-
self, session_id: str | None, wialon_err: WialonError | None = None
|
|
23
|
-
) -> None:
|
|
24
|
-
message = f"Failed to duplicate the Wialon session: '#{session_id}'\n"
|
|
25
|
-
if wialon_err:
|
|
26
|
-
message += str(wialon_err)
|
|
27
|
-
super().__init__(message, wialon_err)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
class WialonLogoutError(WialonBaseError):
|
|
31
|
-
def __init__(self, session_id: str, wialon_err: WialonError | None = None) -> None:
|
|
32
|
-
message = f"Failed to logout of the Wialon API session: '{session_id}'\n"
|
|
33
|
-
if wialon_err:
|
|
34
|
-
message += str(wialon_err)
|
|
35
|
-
super().__init__(message, wialon_err)
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
from terminusgps.wialon import flags
|
|
2
|
-
from terminusgps.wialon.items.base import WialonBase
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class WialonRetranslator(WialonBase):
|
|
6
|
-
def create(self, **kwargs) -> int | None:
|
|
7
|
-
if not kwargs.get("creator_id"):
|
|
8
|
-
raise ValueError("'creator_id' is required on creation.")
|
|
9
|
-
if not kwargs.get("name"):
|
|
10
|
-
raise ValueError("'name' is required on creation.")
|
|
11
|
-
if not kwargs.get("config"):
|
|
12
|
-
raise ValueError("'config' is required on creation.")
|
|
13
|
-
|
|
14
|
-
response = self.session.wialon_api.core_create_retranslator(
|
|
15
|
-
**{
|
|
16
|
-
"creatorId": kwargs["creator_id"],
|
|
17
|
-
"name": kwargs["name"],
|
|
18
|
-
"config": kwargs["config"],
|
|
19
|
-
"dataFlags": flags.DATAFLAG_UNIT_BASE,
|
|
20
|
-
}
|
|
21
|
-
)
|
|
22
|
-
return response.get("item", {}).get("id")
|
|
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
|
{python_terminusgps-1.5.5 → python_terminusgps-1.5.7}/terminusgps/wialon/items/unit_group.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|