python-terminusgps 20.6.2__tar.gz → 21.0.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.
Files changed (58) hide show
  1. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/PKG-INFO +1 -1
  2. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/pyproject.toml +1 -1
  3. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/items/__init__.py +0 -1
  4. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/items/resource.py +146 -1
  5. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/items/unit.py +1 -0
  6. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/uv.lock +48 -48
  7. python_terminusgps-20.6.2/terminusgps/wialon/items/geofence.py +0 -60
  8. python_terminusgps-20.6.2/terminusgps/wialon/items/notification.py +0 -4
  9. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/.gitignore +0 -0
  10. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/.readthedocs.yaml +0 -0
  11. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/COPYING +0 -0
  12. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/README.md +0 -0
  13. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/Makefile +0 -0
  14. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/make.bat +0 -0
  15. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/authorizenet/auth.rst +0 -0
  16. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/authorizenet/index.rst +0 -0
  17. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/authorizenet/profiles.rst +0 -0
  18. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/aws/index.rst +0 -0
  19. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/aws/secrets.rst +0 -0
  20. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/conf.py +0 -0
  21. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/index.rst +0 -0
  22. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/settings.rst +0 -0
  23. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/twilio/caller.rst +0 -0
  24. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/twilio/index.rst +0 -0
  25. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/wialon/constants.rst +0 -0
  26. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/wialon/errors.rst +0 -0
  27. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/wialon/examples.rst +0 -0
  28. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/wialon/flags.rst +0 -0
  29. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/wialon/index.rst +0 -0
  30. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/wialon/items.rst +0 -0
  31. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/wialon/session.rst +0 -0
  32. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/docs/source/wialon/utils.rst +0 -0
  33. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/__init__.py +0 -0
  34. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/authorizenet/__init__.py +0 -0
  35. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/authorizenet/auth.py +0 -0
  36. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/authorizenet/profiles/__init__.py +0 -0
  37. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/authorizenet/profiles/addresses.py +0 -0
  38. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/authorizenet/profiles/base.py +0 -0
  39. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/authorizenet/profiles/customers.py +0 -0
  40. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/authorizenet/profiles/payments.py +0 -0
  41. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/authorizenet/subscriptions.py +0 -0
  42. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/aws/__init__.py +0 -0
  43. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/aws/secrets.py +0 -0
  44. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/aws/ses.py +0 -0
  45. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/settings.py +0 -0
  46. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/twilio/__init__.py +0 -0
  47. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/twilio/caller.py +0 -0
  48. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/__init__.py +0 -0
  49. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/constants.py +0 -0
  50. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/flags.py +0 -0
  51. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/items/base.py +0 -0
  52. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/items/retranslator.py +0 -0
  53. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/items/route.py +0 -0
  54. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/items/unit_group.py +0 -0
  55. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/items/user.py +0 -0
  56. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/logger.py +0 -0
  57. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/session.py +0 -0
  58. {python_terminusgps-20.6.2 → python_terminusgps-21.0.0}/terminusgps/wialon/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-terminusgps
3
- Version: 20.6.2
3
+ Version: 21.0.0
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-terminusgps"
3
- version = "20.6.2"
3
+ version = "21.0.0"
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" } ]
@@ -1,4 +1,3 @@
1
- from .notification import WialonNotification
2
1
  from .resource import WialonResource
3
2
  from .retranslator import WialonRetranslator
4
3
  from .route import WialonRoute
@@ -1,9 +1,13 @@
1
+ from urllib.parse import quote_plus
2
+
1
3
  from terminusgps.wialon import flags
2
4
  from terminusgps.wialon.items.base import WialonBase
3
5
 
4
6
 
5
7
  class WialonResource(WialonBase):
6
- def create(self, creator_id: str | int, name: str) -> int | None:
8
+ def create(
9
+ self, creator_id: str | int, name: str, skip_creator_check: bool = False
10
+ ) -> int | None:
7
11
  """
8
12
  Creates a new Wialon resource.
9
13
 
@@ -11,6 +15,8 @@ class WialonResource(WialonBase):
11
15
  :type creator_id: :py:obj:`int` | :py:obj:`str`
12
16
  :param name: A name for the resource.
13
17
  :type name: :py:obj:`str`
18
+ :param skip_creator_check: Bypass object creation restrictions while creating the resource.
19
+ :type skip_creator_check: :py:obj:`bool`
14
20
  :raises ValueError: If ``creator_id`` is not a digit.
15
21
  :raises WialonError: If something goes wrong with Wialon.
16
22
  :returns: The Wialon id for the new resource, if it was created.
@@ -25,6 +31,7 @@ class WialonResource(WialonBase):
25
31
  "creatorId": creator_id,
26
32
  "name": name,
27
33
  "dataFlags": flags.DATAFLAG_UNIT_BASE,
34
+ "skipCreatorCheck": int(skip_creator_check),
28
35
  }
29
36
  )
30
37
  return int(response.get("item", {}).get("id")) if response.get("item") else None
@@ -272,3 +279,141 @@ class WialonResource(WialonBase):
272
279
  "denyBalance": deny_balance_val,
273
280
  }
274
281
  )
282
+
283
+ def create_driver(
284
+ self,
285
+ name: str,
286
+ code: str = "",
287
+ desc: str = "",
288
+ phone: str = "",
289
+ mobile_auth_code: str = "",
290
+ custom_fields: dict[str, str] | None = None,
291
+ ) -> None:
292
+ """
293
+ Creates a driver for the resource.
294
+
295
+ :param name: A name for the new driver.
296
+ :type name: :py:obj:`str`
297
+ :param code: A unique code for the new driver.
298
+ :type code: :py:obj:`str`
299
+ :param desc: Description for the driver.
300
+ :type desc: :py:obj:`str`
301
+ :param phone: A phone number beginning in a country code. No spaces.
302
+ :type phone: :py:obj:`str`
303
+ :param mobile_auth_code: Authentication code for Wialon mobile app.
304
+ :type mobile_auth_code: :py:obj:`str`
305
+ :param image_checksum: Checksum for driver image.
306
+ :type image_checksum: :py:obj:`str`
307
+ :param image_ratio: Driver image aspect ratio.
308
+ :type image_ratio: :py:obj:`float` | :py:obj:`None`
309
+ :param custom_fields: Additional custom fields to add to the driver.
310
+ :type custom_fields: :py:obj:`dict` | :py:obj:`None`
311
+ :raises WialonError: If something goes wrong calling the Wialon API.
312
+ :returns: Nothing.
313
+ :rtype: :py:obj:`None`
314
+
315
+ """
316
+ params = {
317
+ "itemId": self.id,
318
+ "id": 0,
319
+ "callMode": "create",
320
+ "ej": {"apps": []},
321
+ "c": code,
322
+ "ds": desc,
323
+ "n": name,
324
+ "f": 1,
325
+ "pwd": mobile_auth_code,
326
+ }
327
+
328
+ if phone:
329
+ params.update({"p": quote_plus(phone)})
330
+ if custom_fields:
331
+ params.update({"jp": custom_fields})
332
+ self.session.wialon_api.resource_update_driver(**params)
333
+
334
+ def create_passenger(
335
+ self,
336
+ name: str,
337
+ code: str,
338
+ phone: str = "",
339
+ custom_fields: dict[str, str] | None = None,
340
+ ) -> None:
341
+ """
342
+ Creates a passenger/tag for the resource.
343
+
344
+ :param name: A name for the new passenger.
345
+ :type name: :py:obj:`str`
346
+ :param code: A unique code for the new passenger.
347
+ :type code: :py:obj:`str`
348
+ :param phone: A phone number beginning in a country code. No spaces.
349
+ :type phone: :py:obj:`str`
350
+ :param custom_fields: Additional custom fields to add to the passenger.
351
+ :type custom_fields: :py:obj:`dict` | :py:obj:`None`
352
+ :raises WialonError: If something goes wrong calling the Wialon API.
353
+ :returns: Nothing.
354
+ :rtype: :py:obj:`None`
355
+
356
+ """
357
+ params = {
358
+ "itemId": self.id,
359
+ "id": 0,
360
+ "callMode": "create",
361
+ "c": code,
362
+ "n": name,
363
+ }
364
+ if phone:
365
+ params.update({"p": quote_plus(phone)})
366
+ if custom_fields:
367
+ params.update({"jp": custom_fields})
368
+ self.session.wialon_api.resource_update_tag(**params)
369
+
370
+ def update_attachable_drivers(self, units: list[str | int]) -> None:
371
+ """Updates the pool of units for the resource to attach drivers to the new unit list."""
372
+ self.session.wialon_api.update_driver_units(
373
+ **{"itemId": self.id, "units": units}
374
+ )
375
+
376
+ def update_attachable_passengers(self, units: list[str | int]) -> None:
377
+ """Updates the pool of units for the resource to attach passengers to the new unit list."""
378
+ self.session.wialon_api.update_tag_units(**{"itemId": self.id, "units": units})
379
+
380
+ def create_trailer(
381
+ self,
382
+ name: str,
383
+ code: str,
384
+ desc: str = "",
385
+ phone: str = "",
386
+ custom_fields: dict[str, str] | None = None,
387
+ ) -> None:
388
+ """
389
+ Creates a trailer for the resource.
390
+
391
+ :param name: A name for the new trailer.
392
+ :type name: :py:obj:`str`
393
+ :param code: A unique code for the new trailer.
394
+ :type code: :py:obj:`str`
395
+ :param desc: A description for the trailer.
396
+ :type desc: :py:obj:`str`
397
+ :param phone: A phone number beginning in a country code. No spaces.
398
+ :type phone: :py:obj:`str`
399
+ :param custom_fields: Additional custom fields to add to the trailer.
400
+ :type custom_fields: :py:obj:`dict` | :py:obj:`None`
401
+ :raises WialonError: If something goes wrong calling the Wialon API.
402
+ :returns: Nothing.
403
+ :rtype: :py:obj:`None`
404
+
405
+ """
406
+ params = {
407
+ "itemId": self.id,
408
+ "id": 0,
409
+ "callMode": "create",
410
+ "c": code,
411
+ "ds": desc,
412
+ "n": name,
413
+ "f": 1,
414
+ }
415
+ if phone:
416
+ params.update({"p": quote_plus(phone)})
417
+ if custom_fields:
418
+ params.update({"jp": custom_fields})
419
+ self.session.wialon_api.resource_update_trailer(**params)
@@ -199,6 +199,7 @@ class WialonUnit(WialonBase):
199
199
  return list(dict.fromkeys(phone_numbers)) # Removes duplicate phone numbers
200
200
 
201
201
  def clean_phone_numbers(self, phones: list[str]) -> list[str]:
202
+ """Takes a list of phone numbers and returns a list of clean phone numbers."""
202
203
  cleaned_phones = []
203
204
  for num in phones:
204
205
  if "," in num:
@@ -12,7 +12,7 @@ wheels = [
12
12
 
13
13
  [[package]]
14
14
  name = "aiohttp"
15
- version = "3.11.12"
15
+ version = "3.11.13"
16
16
  source = { registry = "https://pypi.org/simple" }
17
17
  dependencies = [
18
18
  { name = "aiohappyeyeballs" },
@@ -23,40 +23,40 @@ dependencies = [
23
23
  { name = "propcache" },
24
24
  { name = "yarl" },
25
25
  ]
26
- sdist = { url = "https://files.pythonhosted.org/packages/37/4b/952d49c73084fb790cb5c6ead50848c8e96b4980ad806cf4d2ad341eaa03/aiohttp-3.11.12.tar.gz", hash = "sha256:7603ca26d75b1b86160ce1bbe2787a0b706e592af5b2504e12caa88a217767b0", size = 7673175 }
27
- wheels = [
28
- { url = "https://files.pythonhosted.org/packages/4d/d0/94346961acb476569fca9a644cc6f9a02f97ef75961a6b8d2b35279b8d1f/aiohttp-3.11.12-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e392804a38353900c3fd8b7cacbea5132888f7129f8e241915e90b85f00e3250", size = 704837 },
29
- { url = "https://files.pythonhosted.org/packages/a9/af/05c503f1cc8f97621f199ef4b8db65fb88b8bc74a26ab2adb74789507ad3/aiohttp-3.11.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8fa1510b96c08aaad49303ab11f8803787c99222288f310a62f493faf883ede1", size = 464218 },
30
- { url = "https://files.pythonhosted.org/packages/f2/48/b9949eb645b9bd699153a2ec48751b985e352ab3fed9d98c8115de305508/aiohttp-3.11.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dc065a4285307607df3f3686363e7f8bdd0d8ab35f12226362a847731516e42c", size = 456166 },
31
- { url = "https://files.pythonhosted.org/packages/14/fb/980981807baecb6f54bdd38beb1bd271d9a3a786e19a978871584d026dcf/aiohttp-3.11.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddb31f8474695cd61fc9455c644fc1606c164b93bff2490390d90464b4655df", size = 1682528 },
32
- { url = "https://files.pythonhosted.org/packages/90/cb/77b1445e0a716914e6197b0698b7a3640590da6c692437920c586764d05b/aiohttp-3.11.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9dec0000d2d8621d8015c293e24589d46fa218637d820894cb7356c77eca3259", size = 1737154 },
33
- { url = "https://files.pythonhosted.org/packages/ff/24/d6fb1f4cede9ccbe98e4def6f3ed1e1efcb658871bbf29f4863ec646bf38/aiohttp-3.11.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3552fe98e90fdf5918c04769f338a87fa4f00f3b28830ea9b78b1bdc6140e0d", size = 1793435 },
34
- { url = "https://files.pythonhosted.org/packages/17/e2/9f744cee0861af673dc271a3351f59ebd5415928e20080ab85be25641471/aiohttp-3.11.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dfe7f984f28a8ae94ff3a7953cd9678550dbd2a1f9bda5dd9c5ae627744c78e", size = 1692010 },
35
- { url = "https://files.pythonhosted.org/packages/90/c4/4a1235c1df544223eb57ba553ce03bc706bdd065e53918767f7fa1ff99e0/aiohttp-3.11.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a481a574af914b6e84624412666cbfbe531a05667ca197804ecc19c97b8ab1b0", size = 1619481 },
36
- { url = "https://files.pythonhosted.org/packages/60/70/cf12d402a94a33abda86dd136eb749b14c8eb9fec1e16adc310e25b20033/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1987770fb4887560363b0e1a9b75aa303e447433c41284d3af2840a2f226d6e0", size = 1641578 },
37
- { url = "https://files.pythonhosted.org/packages/1b/25/7211973fda1f5e833fcfd98ccb7f9ce4fbfc0074e3e70c0157a751d00db8/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:a4ac6a0f0f6402854adca4e3259a623f5c82ec3f0c049374133bcb243132baf9", size = 1684463 },
38
- { url = "https://files.pythonhosted.org/packages/93/60/b5905b4d0693f6018b26afa9f2221fefc0dcbd3773fe2dff1a20fb5727f1/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c96a43822f1f9f69cc5c3706af33239489a6294be486a0447fb71380070d4d5f", size = 1646691 },
39
- { url = "https://files.pythonhosted.org/packages/b4/fc/ba1b14d6fdcd38df0b7c04640794b3683e949ea10937c8a58c14d697e93f/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a5e69046f83c0d3cb8f0d5bd9b8838271b1bc898e01562a04398e160953e8eb9", size = 1702269 },
40
- { url = "https://files.pythonhosted.org/packages/5e/39/18c13c6f658b2ba9cc1e0c6fb2d02f98fd653ad2addcdf938193d51a9c53/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:68d54234c8d76d8ef74744f9f9fc6324f1508129e23da8883771cdbb5818cbef", size = 1734782 },
41
- { url = "https://files.pythonhosted.org/packages/9f/d2/ccc190023020e342419b265861877cd8ffb75bec37b7ddd8521dd2c6deb8/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c9fd9dcf9c91affe71654ef77426f5cf8489305e1c66ed4816f5a21874b094b9", size = 1694740 },
42
- { url = "https://files.pythonhosted.org/packages/3f/54/186805bcada64ea90ea909311ffedcd74369bfc6e880d39d2473314daa36/aiohttp-3.11.12-cp312-cp312-win32.whl", hash = "sha256:0ed49efcd0dc1611378beadbd97beb5d9ca8fe48579fc04a6ed0844072261b6a", size = 411530 },
43
- { url = "https://files.pythonhosted.org/packages/3d/63/5eca549d34d141bcd9de50d4e59b913f3641559460c739d5e215693cb54a/aiohttp-3.11.12-cp312-cp312-win_amd64.whl", hash = "sha256:54775858c7f2f214476773ce785a19ee81d1294a6bedc5cc17225355aab74802", size = 437860 },
44
- { url = "https://files.pythonhosted.org/packages/c3/9b/cea185d4b543ae08ee478373e16653722c19fcda10d2d0646f300ce10791/aiohttp-3.11.12-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:413ad794dccb19453e2b97c2375f2ca3cdf34dc50d18cc2693bd5aed7d16f4b9", size = 698148 },
45
- { url = "https://files.pythonhosted.org/packages/91/5c/80d47fe7749fde584d1404a68ade29bcd7e58db8fa11fa38e8d90d77e447/aiohttp-3.11.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a93d28ed4b4b39e6f46fd240896c29b686b75e39cc6992692e3922ff6982b4c", size = 460831 },
46
- { url = "https://files.pythonhosted.org/packages/8e/f9/de568f8a8ca6b061d157c50272620c53168d6e3eeddae78dbb0f7db981eb/aiohttp-3.11.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d589264dbba3b16e8951b6f145d1e6b883094075283dafcab4cdd564a9e353a0", size = 453122 },
47
- { url = "https://files.pythonhosted.org/packages/8b/fd/b775970a047543bbc1d0f66725ba72acef788028fce215dc959fd15a8200/aiohttp-3.11.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5148ca8955affdfeb864aca158ecae11030e952b25b3ae15d4e2b5ba299bad2", size = 1665336 },
48
- { url = "https://files.pythonhosted.org/packages/82/9b/aff01d4f9716245a1b2965f02044e4474fadd2bcfe63cf249ca788541886/aiohttp-3.11.12-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:525410e0790aab036492eeea913858989c4cb070ff373ec3bc322d700bdf47c1", size = 1718111 },
49
- { url = "https://files.pythonhosted.org/packages/e0/a9/166fd2d8b2cc64f08104aa614fad30eee506b563154081bf88ce729bc665/aiohttp-3.11.12-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bd8695be2c80b665ae3f05cb584093a1e59c35ecb7d794d1edd96e8cc9201d7", size = 1775293 },
50
- { url = "https://files.pythonhosted.org/packages/13/c5/0d3c89bd9e36288f10dc246f42518ce8e1c333f27636ac78df091c86bb4a/aiohttp-3.11.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0203433121484b32646a5f5ea93ae86f3d9559d7243f07e8c0eab5ff8e3f70e", size = 1677338 },
51
- { url = "https://files.pythonhosted.org/packages/72/b2/017db2833ef537be284f64ead78725984db8a39276c1a9a07c5c7526e238/aiohttp-3.11.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40cd36749a1035c34ba8d8aaf221b91ca3d111532e5ccb5fa8c3703ab1b967ed", size = 1603365 },
52
- { url = "https://files.pythonhosted.org/packages/fc/72/b66c96a106ec7e791e29988c222141dd1219d7793ffb01e72245399e08d2/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7442662afebbf7b4c6d28cb7aab9e9ce3a5df055fc4116cc7228192ad6cb484", size = 1618464 },
53
- { url = "https://files.pythonhosted.org/packages/3f/50/e68a40f267b46a603bab569d48d57f23508801614e05b3369898c5b2910a/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:8a2fb742ef378284a50766e985804bd6adb5adb5aa781100b09befdbfa757b65", size = 1657827 },
54
- { url = "https://files.pythonhosted.org/packages/c5/1d/aafbcdb1773d0ba7c20793ebeedfaba1f3f7462f6fc251f24983ed738aa7/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2cee3b117a8d13ab98b38d5b6bdcd040cfb4181068d05ce0c474ec9db5f3c5bb", size = 1616700 },
55
- { url = "https://files.pythonhosted.org/packages/b0/5e/6cd9724a2932f36e2a6b742436a36d64784322cfb3406ca773f903bb9a70/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f6a19bcab7fbd8f8649d6595624856635159a6527861b9cdc3447af288a00c00", size = 1685643 },
56
- { url = "https://files.pythonhosted.org/packages/8b/38/ea6c91d5c767fd45a18151675a07c710ca018b30aa876a9f35b32fa59761/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e4cecdb52aaa9994fbed6b81d4568427b6002f0a91c322697a4bfcc2b2363f5a", size = 1715487 },
57
- { url = "https://files.pythonhosted.org/packages/8e/24/e9edbcb7d1d93c02e055490348df6f955d675e85a028c33babdcaeda0853/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:30f546358dfa0953db92ba620101fefc81574f87b2346556b90b5f3ef16e55ce", size = 1672948 },
58
- { url = "https://files.pythonhosted.org/packages/25/be/0b1fb737268e003198f25c3a68c2135e76e4754bf399a879b27bd508a003/aiohttp-3.11.12-cp313-cp313-win32.whl", hash = "sha256:ce1bb21fc7d753b5f8a5d5a4bae99566386b15e716ebdb410154c16c91494d7f", size = 410396 },
59
- { url = "https://files.pythonhosted.org/packages/68/fd/677def96a75057b0a26446b62f8fbb084435b20a7d270c99539c26573bfd/aiohttp-3.11.12-cp313-cp313-win_amd64.whl", hash = "sha256:f7914ab70d2ee8ab91c13e5402122edbc77821c66d2758abb53aabe87f013287", size = 436234 },
26
+ sdist = { url = "https://files.pythonhosted.org/packages/b3/3f/c4a667d184c69667b8f16e0704127efc5f1e60577df429382b4d95fd381e/aiohttp-3.11.13.tar.gz", hash = "sha256:8ce789231404ca8fff7f693cdce398abf6d90fd5dae2b1847477196c243b1fbb", size = 7674284 }
27
+ wheels = [
28
+ { url = "https://files.pythonhosted.org/packages/9a/a9/6657664a55f78db8767e396cc9723782ed3311eb57704b0a5dacfa731916/aiohttp-3.11.13-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2eabb269dc3852537d57589b36d7f7362e57d1ece308842ef44d9830d2dc3c90", size = 705054 },
29
+ { url = "https://files.pythonhosted.org/packages/3b/06/f7df1fe062d16422f70af5065b76264f40b382605cf7477fa70553a9c9c1/aiohttp-3.11.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7b77ee42addbb1c36d35aca55e8cc6d0958f8419e458bb70888d8c69a4ca833d", size = 464440 },
30
+ { url = "https://files.pythonhosted.org/packages/22/3a/8773ea866735754004d9f79e501fe988bdd56cfac7fdecbc8de17fc093eb/aiohttp-3.11.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55789e93c5ed71832e7fac868167276beadf9877b85697020c46e9a75471f55f", size = 456394 },
31
+ { url = "https://files.pythonhosted.org/packages/7f/61/8e2f2af2327e8e475a2b0890f15ef0bbfd117e321cce1e1ed210df81bbac/aiohttp-3.11.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c929f9a7249a11e4aa5c157091cfad7f49cc6b13f4eecf9b747104befd9f56f2", size = 1682752 },
32
+ { url = "https://files.pythonhosted.org/packages/24/ed/84fce816bc8da39aa3f6c1196fe26e47065fea882b1a67a808282029c079/aiohttp-3.11.13-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d33851d85537bbf0f6291ddc97926a754c8f041af759e0aa0230fe939168852b", size = 1737375 },
33
+ { url = "https://files.pythonhosted.org/packages/d9/de/35a5ba9e3d21ebfda1ebbe66f6cc5cbb4d3ff9bd6a03e5e8a788954f8f27/aiohttp-3.11.13-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9229d8613bd8401182868fe95688f7581673e1c18ff78855671a4b8284f47bcb", size = 1793660 },
34
+ { url = "https://files.pythonhosted.org/packages/ff/fe/0f650a8c7c72c8a07edf8ab164786f936668acd71786dd5885fc4b1ca563/aiohttp-3.11.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:669dd33f028e54fe4c96576f406ebb242ba534dd3a981ce009961bf49960f117", size = 1692233 },
35
+ { url = "https://files.pythonhosted.org/packages/a8/20/185378b3483f968c6303aafe1e33b0da0d902db40731b2b2b2680a631131/aiohttp-3.11.13-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c1b20a1ace54af7db1f95af85da530fe97407d9063b7aaf9ce6a32f44730778", size = 1619708 },
36
+ { url = "https://files.pythonhosted.org/packages/a4/f9/d9c181750980b17e1e13e522d7e82a8d08d3d28a2249f99207ef5d8d738f/aiohttp-3.11.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5724cc77f4e648362ebbb49bdecb9e2b86d9b172c68a295263fa072e679ee69d", size = 1641802 },
37
+ { url = "https://files.pythonhosted.org/packages/50/c7/1cb46b72b1788710343b6e59eaab9642bd2422f2d87ede18b1996e0aed8f/aiohttp-3.11.13-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:aa36c35e94ecdb478246dd60db12aba57cfcd0abcad43c927a8876f25734d496", size = 1684678 },
38
+ { url = "https://files.pythonhosted.org/packages/71/87/89b979391de840c5d7c34e78e1148cc731b8aafa84b6a51d02f44b4c66e2/aiohttp-3.11.13-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9b5b37c863ad5b0892cc7a4ceb1e435e5e6acd3f2f8d3e11fa56f08d3c67b820", size = 1646921 },
39
+ { url = "https://files.pythonhosted.org/packages/a7/db/a463700ac85b72f8cf68093e988538faaf4e865e3150aa165cf80ee29d6e/aiohttp-3.11.13-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e06cf4852ce8c4442a59bae5a3ea01162b8fcb49ab438d8548b8dc79375dad8a", size = 1702493 },
40
+ { url = "https://files.pythonhosted.org/packages/b8/32/1084e65da3adfb08c7e1b3e94f3e4ded8bd707dee265a412bc377b7cd000/aiohttp-3.11.13-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5194143927e494616e335d074e77a5dac7cd353a04755330c9adc984ac5a628e", size = 1735004 },
41
+ { url = "https://files.pythonhosted.org/packages/a0/bb/a634cbdd97ce5d05c2054a9a35bfc32792d7e4f69d600ad7e820571d095b/aiohttp-3.11.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:afcb6b275c2d2ba5d8418bf30a9654fa978b4f819c2e8db6311b3525c86fe637", size = 1694964 },
42
+ { url = "https://files.pythonhosted.org/packages/fd/cf/7d29db4e5c28ec316e5d2ac9ac9df0e2e278e9ea910e5c4205b9b64c2c42/aiohttp-3.11.13-cp312-cp312-win32.whl", hash = "sha256:7104d5b3943c6351d1ad7027d90bdd0ea002903e9f610735ac99df3b81f102ee", size = 411746 },
43
+ { url = "https://files.pythonhosted.org/packages/65/a9/13e69ad4fd62104ebd94617f9f2be58231b50bb1e6bac114f024303ac23b/aiohttp-3.11.13-cp312-cp312-win_amd64.whl", hash = "sha256:47dc018b1b220c48089b5b9382fbab94db35bef2fa192995be22cbad3c5730c8", size = 438078 },
44
+ { url = "https://files.pythonhosted.org/packages/87/dc/7d58d33cec693f1ddf407d4ab975445f5cb507af95600f137b81683a18d8/aiohttp-3.11.13-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9862d077b9ffa015dbe3ce6c081bdf35135948cb89116e26667dd183550833d1", size = 698372 },
45
+ { url = "https://files.pythonhosted.org/packages/84/e7/5d88514c9e24fbc8dd6117350a8ec4a9314f4adae6e89fe32e3e639b0c37/aiohttp-3.11.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fbfef0666ae9e07abfa2c54c212ac18a1f63e13e0760a769f70b5717742f3ece", size = 461057 },
46
+ { url = "https://files.pythonhosted.org/packages/96/1a/8143c48a929fa00c6324f85660cb0f47a55ed9385f0c1b72d4b8043acf8e/aiohttp-3.11.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:93a1f7d857c4fcf7cabb1178058182c789b30d85de379e04f64c15b7e88d66fb", size = 453340 },
47
+ { url = "https://files.pythonhosted.org/packages/2f/1c/b8010e4d65c5860d62681088e5376f3c0a940c5e3ca8989cae36ce8c3ea8/aiohttp-3.11.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba40b7ae0f81c7029583a338853f6607b6d83a341a3dcde8bed1ea58a3af1df9", size = 1665561 },
48
+ { url = "https://files.pythonhosted.org/packages/19/ed/a68c3ab2f92fdc17dfc2096117d1cfaa7f7bdded2a57bacbf767b104165b/aiohttp-3.11.13-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b5b95787335c483cd5f29577f42bbe027a412c5431f2f80a749c80d040f7ca9f", size = 1718335 },
49
+ { url = "https://files.pythonhosted.org/packages/27/4f/3a0b6160ce663b8ebdb65d1eedff60900cd7108838c914d25952fe2b909f/aiohttp-3.11.13-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7d474c5c1f0b9405c1565fafdc4429fa7d986ccbec7ce55bc6a330f36409cad", size = 1775522 },
50
+ { url = "https://files.pythonhosted.org/packages/0b/58/9da09291e19696c452e7224c1ce8c6d23a291fe8cd5c6b247b51bcda07db/aiohttp-3.11.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e83fb1991e9d8982b3b36aea1e7ad27ea0ce18c14d054c7a404d68b0319eebb", size = 1677566 },
51
+ { url = "https://files.pythonhosted.org/packages/3d/18/6184f2bf8bbe397acbbbaa449937d61c20a6b85765f48e5eddc6d84957fe/aiohttp-3.11.13-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4586a68730bd2f2b04a83e83f79d271d8ed13763f64b75920f18a3a677b9a7f0", size = 1603590 },
52
+ { url = "https://files.pythonhosted.org/packages/04/94/91e0d1ca0793012ccd927e835540aa38cca98bdce2389256ab813ebd64a3/aiohttp-3.11.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fe4eb0e7f50cdb99b26250d9328faef30b1175a5dbcfd6d0578d18456bac567", size = 1618688 },
53
+ { url = "https://files.pythonhosted.org/packages/71/85/d13c3ea2e48a10b43668305d4903838834c3d4112e5229177fbcc23a56cd/aiohttp-3.11.13-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2a8a6bc19818ac3e5596310ace5aa50d918e1ebdcc204dc96e2f4d505d51740c", size = 1658053 },
54
+ { url = "https://files.pythonhosted.org/packages/12/6a/3242a35100de23c1e8d9e05e8605e10f34268dee91b00d9d1e278c58eb80/aiohttp-3.11.13-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7f27eec42f6c3c1df09cfc1f6786308f8b525b8efaaf6d6bd76c1f52c6511f6a", size = 1616917 },
55
+ { url = "https://files.pythonhosted.org/packages/f5/b3/3f99b6f0a9a79590a7ba5655dbde8408c685aa462247378c977603464d0a/aiohttp-3.11.13-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2a4a13dfbb23977a51853b419141cd0a9b9573ab8d3a1455c6e63561387b52ff", size = 1685872 },
56
+ { url = "https://files.pythonhosted.org/packages/8a/2e/99672181751f280a85e24fcb9a2c2469e8b1a0de1746b7b5c45d1eb9a999/aiohttp-3.11.13-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:02876bf2f69b062584965507b07bc06903c2dc93c57a554b64e012d636952654", size = 1715719 },
57
+ { url = "https://files.pythonhosted.org/packages/7a/cd/68030356eb9a7d57b3e2823c8a852709d437abb0fbff41a61ebc351b7625/aiohttp-3.11.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b992778d95b60a21c4d8d4a5f15aaab2bd3c3e16466a72d7f9bfd86e8cea0d4b", size = 1673166 },
58
+ { url = "https://files.pythonhosted.org/packages/03/61/425397a9a2839c609d09fdb53d940472f316a2dbeaa77a35b2628dae6284/aiohttp-3.11.13-cp313-cp313-win32.whl", hash = "sha256:507ab05d90586dacb4f26a001c3abf912eb719d05635cbfad930bdbeb469b36c", size = 410615 },
59
+ { url = "https://files.pythonhosted.org/packages/9c/54/ebb815bc0fe057d8e7a11c086c479e972e827082f39aeebc6019dd4f0862/aiohttp-3.11.13-cp313-cp313-win_amd64.whl", hash = "sha256:5ceb81a4db2decdfa087381b5fc5847aa448244f973e5da232610304e199e7b2", size = 436452 },
60
60
  ]
61
61
 
62
62
  [[package]]
@@ -168,30 +168,30 @@ wheels = [
168
168
 
169
169
  [[package]]
170
170
  name = "boto3"
171
- version = "1.36.25"
171
+ version = "1.36.26"
172
172
  source = { registry = "https://pypi.org/simple" }
173
173
  dependencies = [
174
174
  { name = "botocore" },
175
175
  { name = "jmespath" },
176
176
  { name = "s3transfer" },
177
177
  ]
178
- sdist = { url = "https://files.pythonhosted.org/packages/0d/4d/1ea0720c173814f2055bf9ac6937a74b559169fa66602be7f37e809dda1e/boto3-1.36.25.tar.gz", hash = "sha256:a057c19adffb48737c192bdb10f9d85e0d9dcecd21327f51520c15db9022a835", size = 111018 }
178
+ sdist = { url = "https://files.pythonhosted.org/packages/79/af/2082fde2cbd81f8b60fd46e3ac07a0f841abfdb9818b818d560e42b5c444/boto3-1.36.26.tar.gz", hash = "sha256:523b69457eee55ac15aa707c0e768b2a45ca1521f95b2442931090633ec72458", size = 111027 }
179
179
  wheels = [
180
- { url = "https://files.pythonhosted.org/packages/36/0d/cc521e7b0ffe37b099f9183ced90e8f93e75910611c8b9b10968a30a2715/boto3-1.36.25-py3-none-any.whl", hash = "sha256:41fb90a516995946563ec91b9d891e2516c58617e9556d5e86dfa62da3fdebe6", size = 139181 },
180
+ { url = "https://files.pythonhosted.org/packages/b1/a7/9081049e432f5130c6bd4d86f4db7a7729f812ebceda59baff69a06b19a5/boto3-1.36.26-py3-none-any.whl", hash = "sha256:f67d014a7c5a3cd540606d64d7cb9eec3600cf42acab1ac0518df9751ae115e2", size = 139178 },
181
181
  ]
182
182
 
183
183
  [[package]]
184
184
  name = "botocore"
185
- version = "1.36.25"
185
+ version = "1.36.26"
186
186
  source = { registry = "https://pypi.org/simple" }
187
187
  dependencies = [
188
188
  { name = "jmespath" },
189
189
  { name = "python-dateutil" },
190
190
  { name = "urllib3" },
191
191
  ]
192
- sdist = { url = "https://files.pythonhosted.org/packages/17/e7/3d93e2b5be18486a9c14fc3fda1597c5f3835a9766eb7f2ba9f144fca73f/botocore-1.36.25.tar.gz", hash = "sha256:3b0a857d2621c336fb82a36cb6da4b6e062d346451ac46d110b074e5e5fd7cfc", size = 13573787 }
192
+ sdist = { url = "https://files.pythonhosted.org/packages/69/db/caa8778cf98ecbe0ad0efd7fbf673e2d036373386582e15dffff80bf16e1/botocore-1.36.26.tar.gz", hash = "sha256:4a63bcef7ecf6146fd3a61dc4f9b33b7473b49bdaf1770e9aaca6eee0c9eab62", size = 13574958 }
193
193
  wheels = [
194
- { url = "https://files.pythonhosted.org/packages/b5/e9/107e5ab6b0b02c3d766a850238741c02723ae249dcfe76c72b9c76d7b67b/botocore-1.36.25-py3-none-any.whl", hash = "sha256:04c8ff03531e8d92baa8c98d1850bdf01668a805467f4222b65e5325f94aa8af", size = 13360625 },
194
+ { url = "https://files.pythonhosted.org/packages/dd/0c/a3eeca35b22ac8f441d412881582a5f3b8665de0269baf9fdeb8e86d7f1c/botocore-1.36.26-py3-none-any.whl", hash = "sha256:4e3f19913887a58502e71ef8d696fe7eaa54de7813ff73390cd5883f837dfa6e", size = 13360675 },
195
195
  ]
196
196
 
197
197
  [[package]]
@@ -556,7 +556,7 @@ wheels = [
556
556
 
557
557
  [[package]]
558
558
  name = "python-terminusgps"
559
- version = "20.6.2"
559
+ version = "21.0.0"
560
560
  source = { editable = "." }
561
561
  dependencies = [
562
562
  { name = "argparse" },
@@ -630,11 +630,11 @@ wheels = [
630
630
 
631
631
  [[package]]
632
632
  name = "roman-numerals-py"
633
- version = "3.0.0"
633
+ version = "3.1.0"
634
634
  source = { registry = "https://pypi.org/simple" }
635
- sdist = { url = "https://files.pythonhosted.org/packages/9e/78/9491ab144c9cb2d97aa74d6f632bd6f4be67957de03f945a23a67415d859/roman_numerals_py-3.0.0.tar.gz", hash = "sha256:91199c4373658c03d87d9fe004f4a5120a20f6cb192be745c2377cce274ef41c", size = 8970 }
635
+ sdist = { url = "https://files.pythonhosted.org/packages/30/76/48fd56d17c5bdbdf65609abbc67288728a98ed4c02919428d4f52d23b24b/roman_numerals_py-3.1.0.tar.gz", hash = "sha256:be4bf804f083a4ce001b5eb7e3c0862479d10f94c936f6c4e5f250aa5ff5bd2d", size = 9017 }
636
636
  wheels = [
637
- { url = "https://files.pythonhosted.org/packages/27/d0/a3a2fed015e95b9e81619182adc472540f9786183febfaef8b7c5e909418/roman_numerals_py-3.0.0-py3-none-any.whl", hash = "sha256:a1421ce66b3eab7e8735065458de3fa5c4a46263d50f9f4ac8f0e5e7701dd125", size = 4416 },
637
+ { url = "https://files.pythonhosted.org/packages/53/97/d2cbbaa10c9b826af0e10fdf836e1bf344d9f0abb873ebc34d1f49642d3f/roman_numerals_py-3.1.0-py3-none-any.whl", hash = "sha256:9da2ad2fb670bcf24e81070ceb3be72f6c11c440d73bd579fbeca1e9f330954c", size = 7742 },
638
638
  ]
639
639
 
640
640
  [[package]]
@@ -713,7 +713,7 @@ wheels = [
713
713
 
714
714
  [[package]]
715
715
  name = "sphinx"
716
- version = "8.2.0"
716
+ version = "8.2.1"
717
717
  source = { registry = "https://pypi.org/simple" }
718
718
  dependencies = [
719
719
  { name = "alabaster" },
@@ -734,9 +734,9 @@ dependencies = [
734
734
  { name = "sphinxcontrib-qthelp" },
735
735
  { name = "sphinxcontrib-serializinghtml" },
736
736
  ]
737
- sdist = { url = "https://files.pythonhosted.org/packages/81/46/08fe30fc7a6b0e8ff1f502e44133d3a1bd9453d7ab884c2ac7f0ef280920/sphinx-8.2.0.tar.gz", hash = "sha256:5b0067853d6e97f3fa87563e3404ebd008fce03525b55b25da90706764da6215", size = 8321764 }
737
+ sdist = { url = "https://files.pythonhosted.org/packages/99/4b/95bdb36eaee30698f2d244d52e1b9e58642af56525d4b02fcd0f7312c27c/sphinx-8.2.1.tar.gz", hash = "sha256:e4b932951b9c18b039f73b72e4e63afe967d90408700ec222b981ac24647c01e", size = 8321376 }
738
738
  wheels = [
739
- { url = "https://files.pythonhosted.org/packages/ef/4d/bbe0250199b9dfa8b25a1949ff13d81e7a6f3bfde37fe373a881bd78a37a/sphinx-8.2.0-py3-none-any.whl", hash = "sha256:3c0a40ff71ace28b316bde7387d93b9249a3688c202181519689b66d5d0aed53", size = 3589193 },
739
+ { url = "https://files.pythonhosted.org/packages/cf/aa/282768cff0039b227a923cb65686539bb606e448c594d4fdee4d2c7765a1/sphinx-8.2.1-py3-none-any.whl", hash = "sha256:b5d2bb3cdf6207fcacde9f92085d2b97667b05b9c346eaec426ca4be8af505e9", size = 3589415 },
740
740
  ]
741
741
 
742
742
  [[package]]
@@ -1,60 +0,0 @@
1
- from django.db import models
2
-
3
- from terminusgps.wialon.items.base import WialonBase
4
-
5
-
6
- class WialonGeofence(WialonBase):
7
- def __new__(cls) -> "WialonGeofence":
8
- raise NotImplementedError()
9
-
10
- class WialonGeofenceShape(models.IntegerChoices):
11
- LINE = 1
12
- POLYGON = 2
13
- CIRCLE = 3
14
-
15
- class WialonGeofenceColor(models.IntegerChoices):
16
- RED = int("ff0000", 16)
17
- ORANGE = int("ff7b00", 16)
18
- YELLOW = int("fffb00", 16)
19
- GREEN = int("20ff00", 16)
20
- BLUE = int("0090ff", 16)
21
- PURPLE = int("7000ff", 16)
22
- WHITE = int("f3f3f3", 16)
23
- BLACK = int("030303", 16)
24
-
25
- def create(
26
- self,
27
- resource_id: str | int,
28
- name: str,
29
- xpos: float,
30
- ypos: float,
31
- desc: str | None = None,
32
- shape: int = WialonGeofenceShape.CIRCLE,
33
- width: int = 100,
34
- flags: int = 0x04,
35
- color: int = WialonGeofenceColor.GREEN,
36
- text_color: int = WialonGeofenceColor.BLACK,
37
- text_size: int = 12,
38
- min_zoom: int = 2,
39
- max_zoom: int = 19,
40
- ) -> int | None:
41
- response = self.session.wialon_api.resource_update_zone(
42
- **{
43
- "itemId": resource_id,
44
- "id": 0,
45
- "callMode": "create",
46
- "n": name,
47
- "d": desc if desc else name,
48
- "t": shape,
49
- "w": width,
50
- "f": flags,
51
- "c": color,
52
- "tc": text_color,
53
- "ts": text_size,
54
- "min": min_zoom,
55
- "max": max_zoom,
56
- "p": [{"x": xpos, "y": ypos, "r": width}],
57
- }
58
- )
59
- if response:
60
- return int(response[0])
@@ -1,4 +0,0 @@
1
- from terminusgps.wialon.items.base import WialonBase
2
-
3
-
4
- class WialonNotification(WialonBase): ...