python-terminusgps 21.2.0__py3-none-any.whl → 22.0.1__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-terminusgps
3
- Version: 21.2.0
3
+ Version: 22.0.1
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
@@ -16,5 +16,9 @@ Requires-Dist: argparse>=1.4.0
16
16
  Requires-Dist: authorizenet>=1.1.5
17
17
  Requires-Dist: boto3>=1.34.144
18
18
  Requires-Dist: django>=5.1.5
19
+ Requires-Dist: matplotlib>=3.10.1
20
+ Requires-Dist: opencv-python>=4.11.0.86
21
+ Requires-Dist: pyqt6>=6.8.1
19
22
  Requires-Dist: python-wialon>=1.2.4
23
+ Requires-Dist: pyzbar>=0.1.9
20
24
  Requires-Dist: twilio>=9.4.5
@@ -11,6 +11,8 @@ terminusgps/authorizenet/profiles/payments.py,sha256=qOWp-gO6qBCADP98WjoNCHm-jtq
11
11
  terminusgps/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  terminusgps/aws/secrets.py,sha256=kgRA77rs0mD4berWRLkPtJLOe4Grf--o5f8NzwQqXCk,360
13
13
  terminusgps/aws/ses.py,sha256=sDca2GjMaZvUt3kUPtGCpcqHiOkij9lMV1ogZofgYUU,2372
14
+ terminusgps/opencv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ terminusgps/opencv/barcodes.py,sha256=NmdpUnixlGJI-6shbKGcb6-M_IZvgSZJRDVSsI7pcFg,669
14
16
  terminusgps/twilio/__init__.py,sha256=dYo41F2jft_eHDWSUtSpKGSRG1bewq_qClqilUJZkYM,33
15
17
  terminusgps/twilio/caller.py,sha256=nHCIwUulo-C_v2orsp6OY0nuJA6YetSkxpMTwrRQ-uA,1831
16
18
  terminusgps/wialon/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -21,13 +23,13 @@ terminusgps/wialon/session.py,sha256=6xg65LZz6cebWclTQp1KRLvPss0aM-bWhAmmwiDOlMg
21
23
  terminusgps/wialon/utils.py,sha256=HUuBgkqJzzsFHGKPgf_YAE0e5Oui8xdaYtb9fv_ibOc,6344
22
24
  terminusgps/wialon/items/__init__.py,sha256=3BVthghekMvhMQSzQgBMlD_phxmKSmp3Zvmo-z0O8Bs,211
23
25
  terminusgps/wialon/items/base.py,sha256=EAtzlnCvB7WTu3iX1bV1-S9TvwXc-Eez7e0X4TMiK9U,6943
24
- terminusgps/wialon/items/resource.py,sha256=J2HRSbGwGcfTcaurMI0oms5XcmUjf887GJVaXLfyA-o,14551
26
+ terminusgps/wialon/items/resource.py,sha256=qmQKEakJa9LH5YkI9-iBDA0hsotc5ctcwdb7kZuXdfQ,14549
25
27
  terminusgps/wialon/items/retranslator.py,sha256=8q9EDc92w92MElnHIeEzH3Ra4kiPXrx4t9V5nPDZuRU,3728
26
28
  terminusgps/wialon/items/route.py,sha256=PTJx1gmT_PGz7nlSSUS2VzjYD-aAuvkEOIdIFneUSSQ,1148
27
- terminusgps/wialon/items/unit.py,sha256=oNqLdblY6uWd08FCInSix9gzDYk-O1YdgbkENZ-1vjs,8541
29
+ terminusgps/wialon/items/unit.py,sha256=-jQL5Alvz77FZWteYNM9VNX15jtCufI-DWRRj3hRsgA,8539
28
30
  terminusgps/wialon/items/unit_group.py,sha256=vGVJMBY1BrKK0tP-C1DCIz4Bh6P-HKRnKY1g8g95UIs,5031
29
31
  terminusgps/wialon/items/user.py,sha256=INwAibQVmjNNelepQXMfDevgJqMvIjHHgEjAMLRvhB0,7082
30
- python_terminusgps-21.2.0.dist-info/METADATA,sha256=eSyk_vdKqPA1np55nwimM-J2Wnq8c9j0pZdlK5XgQs8,912
31
- python_terminusgps-21.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
32
- python_terminusgps-21.2.0.dist-info/licenses/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
33
- python_terminusgps-21.2.0.dist-info/RECORD,,
32
+ python_terminusgps-22.0.1.dist-info/METADATA,sha256=Fxgmi-UVZ2EBE7GoUh51nlqkmP5sSz8NG1IIAK93Tsk,1043
33
+ python_terminusgps-22.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
34
+ python_terminusgps-22.0.1.dist-info/licenses/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
35
+ python_terminusgps-22.0.1.dist-info/RECORD,,
File without changes
@@ -0,0 +1,31 @@
1
+ import cv2 as cv
2
+ from pyzbar.pyzbar import decode
3
+
4
+
5
+ def read_barcode(filepath: str) -> None:
6
+ img = cv.imread(filepath)
7
+ barcodes = decode(img)
8
+
9
+ if not barcodes:
10
+ raise ValueError("No barcodes detected.")
11
+
12
+ for barcode in barcodes:
13
+ (x, y, w, h) = barcode.rect
14
+ cv.rectangle(img, (x - 10, y - 10), (x + w + 10, y + h + 10), (255, 0, 0), 2)
15
+
16
+ print(f"{barcode.data = }")
17
+ print(f"{barcode.type = }")
18
+
19
+ cv.imshow("Image", img)
20
+ cv.waitKey(0)
21
+ cv.destroyAllWindows()
22
+
23
+
24
+ def main() -> None:
25
+ filepath = "/home/blake/sift_keypoints.jpg"
26
+ read_barcode(filepath)
27
+ return
28
+
29
+
30
+ if __name__ == "__main__":
31
+ main()
@@ -58,12 +58,14 @@ class WialonResource(WialonBase):
58
58
  :type: :py:obj:`bool`
59
59
 
60
60
  """
61
- if not self.is_account:
62
- return False # Resources cannot have dealer rights
63
- return bool(
64
- self.session.wialon_api.get_account_data(
65
- **{"itemId": self.id, "type": 1}
66
- ).get("dealerRights")
61
+ return (
62
+ bool(
63
+ self.session.wialon_api.get_account_data(
64
+ **{"itemId": self.id, "type": 1}
65
+ ).get("dealerRights")
66
+ )
67
+ if self.is_account
68
+ else False
67
69
  )
68
70
 
69
71
  @property
@@ -249,5 +249,5 @@ class WialonUnit(WialonBase):
249
249
  **{"unitId": self.id}
250
250
  )
251
251
  if response:
252
- dirty_phones = [driver[0].get("ph") for _, driver in response.items()]
252
+ dirty_phones = [driver[0].get("ph") for driver in response.values()]
253
253
  return self.clean_phone_numbers(dirty_phones)