python-terminusgps 1.0.2__tar.gz → 1.1.1__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.

Files changed (27) hide show
  1. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/PKG-INFO +4 -2
  2. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/pyproject.toml +4 -2
  3. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/requirements.txt +25 -1
  4. python_terminusgps-1.1.1/terminusgps/authorizenet/auth.py +15 -0
  5. python_terminusgps-1.1.1/terminusgps/aws/__init__.py +0 -0
  6. python_terminusgps-1.1.1/terminusgps/aws/secrets.py +9 -0
  7. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/uv.lock +111 -13
  8. python_terminusgps-1.0.2/terminusgps/authorizenet/auth.py +0 -14
  9. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/.gitignore +0 -0
  10. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/COPYING +0 -0
  11. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/README.md +0 -0
  12. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/__init__.py +0 -0
  13. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/authorizenet/__init__.py +0 -0
  14. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/__init__.py +0 -0
  15. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/constants.py +0 -0
  16. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/errors.py +0 -0
  17. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/flags.py +0 -0
  18. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/items/__init__.py +0 -0
  19. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/items/base.py +0 -0
  20. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/items/resource.py +0 -0
  21. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/items/retranslator.py +0 -0
  22. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/items/route.py +0 -0
  23. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/items/unit.py +0 -0
  24. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/items/unit_group.py +0 -0
  25. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/items/user.py +0 -0
  26. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/session.py +0 -0
  27. {python_terminusgps-1.0.2 → python_terminusgps-1.1.1}/terminusgps/wialon/utils.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: python-terminusgps
3
- Version: 1.0.2
4
- Summary: Provides abstractions/utilities for working with Wialon and Authorize.NET APIs.
3
+ Version: 1.1.1
4
+ Summary: Provides abstractions/utilities for working with Wialon API, Authorize.NET API, AWS API, and more.
5
5
  Author-email: Blake Nall <blake@terminusgps.com>
6
6
  Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
7
7
  Classifier: Operating System :: OS Independent
@@ -11,4 +11,6 @@ Classifier: Programming Language :: Python :: 3.13
11
11
  Requires-Python: >=3.12
12
12
  Requires-Dist: argparse>=1.4.0
13
13
  Requires-Dist: authorizenet>=1.1.5
14
+ Requires-Dist: boto3>=1.35.80
15
+ Requires-Dist: django>=5.1.4
14
16
  Requires-Dist: python-wialon>=1.2.4
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "python-terminusgps"
3
- version = "1.0.2"
4
- description = "Provides abstractions/utilities for working with Wialon and Authorize.NET APIs."
3
+ version = "1.1.1"
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" } ]
7
7
  classifiers = [
@@ -15,6 +15,8 @@ requires-python = ">=3.12"
15
15
  dependencies = [
16
16
  "argparse>=1.4.0",
17
17
  "authorizenet>=1.1.5",
18
+ "boto3>=1.35.80",
19
+ "django>=5.1.4",
18
20
  "python-wialon>=1.2.4",
19
21
  ]
20
22
 
@@ -2,25 +2,49 @@
2
2
  # uv pip compile pyproject.toml -o requirements.txt
3
3
  argparse==1.4.0
4
4
  # via python-terminusgps (pyproject.toml)
5
+ asgiref==3.8.1
6
+ # via django
5
7
  authorizenet==1.1.5
6
8
  # via python-terminusgps (pyproject.toml)
9
+ boto3==1.35.80
10
+ # via python-terminusgps (pyproject.toml)
11
+ botocore==1.35.80
12
+ # via
13
+ # boto3
14
+ # s3transfer
7
15
  certifi==2024.8.30
8
16
  # via requests
9
17
  charset-normalizer==3.4.0
10
18
  # via requests
19
+ django==5.1.4
20
+ # via python-terminusgps (pyproject.toml)
11
21
  future==1.0.0
12
22
  # via python-wialon
13
23
  idna==3.10
14
24
  # via requests
25
+ jmespath==1.0.1
26
+ # via
27
+ # boto3
28
+ # botocore
15
29
  lxml==4.9.4
16
30
  # via authorizenet
31
+ python-dateutil==2.9.0.post0
32
+ # via botocore
17
33
  python-wialon==1.2.4
18
34
  # via python-terminusgps (pyproject.toml)
19
35
  pyxb-x==1.2.6.2
20
36
  # via authorizenet
21
37
  requests==2.32.3
22
38
  # via authorizenet
39
+ s3transfer==0.10.4
40
+ # via boto3
23
41
  simplejson==3.19.3
24
42
  # via python-wialon
43
+ six==1.17.0
44
+ # via python-dateutil
45
+ sqlparse==0.5.3
46
+ # via django
25
47
  urllib3==2.2.3
26
- # via requests
48
+ # via
49
+ # botocore
50
+ # requests
@@ -0,0 +1,15 @@
1
+ from authorizenet.apicontractsv1 import merchantAuthenticationType
2
+ from authorizenet.constants import constants
3
+
4
+ from django.conf import settings
5
+
6
+
7
+ def get_merchant_auth() -> merchantAuthenticationType:
8
+ return merchantAuthenticationType(
9
+ name=settings.MERCHANT_AUTH_LOGIN_ID,
10
+ transactionKey=settings.MERCHANT_AUTH_TRANSACTION_KEY,
11
+ )
12
+
13
+
14
+ def get_environment() -> str:
15
+ return constants.SANDBOX if settings.DEBUG else constants.PRODUCTION
File without changes
@@ -0,0 +1,9 @@
1
+ import boto3
2
+ import json
3
+
4
+
5
+ def get_secret(name: str, region: str = "us-east-1") -> dict[str, str]:
6
+ """Logs into the default AWS CLI session and returns a secret value."""
7
+ client = boto3.Session().client(service_name="secretsmanager", region_name=region)
8
+ secret = client.get_secret_value(SecretId=name)["SecretString"]
9
+ return json.loads(secret)
@@ -10,6 +10,15 @@ wheels = [
10
10
  { url = "https://files.pythonhosted.org/packages/f2/94/3af39d34be01a24a6e65433d19e107099374224905f1e0cc6bbe1fd22a2f/argparse-1.4.0-py2.py3-none-any.whl", hash = "sha256:c31647edb69fd3d465a847ea3157d37bed1f95f19760b11a47aa91c04b666314", size = 23000 },
11
11
  ]
12
12
 
13
+ [[package]]
14
+ name = "asgiref"
15
+ version = "3.8.1"
16
+ source = { registry = "https://pypi.org/simple" }
17
+ sdist = { url = "https://files.pythonhosted.org/packages/29/38/b3395cc9ad1b56d2ddac9970bc8f4141312dbaec28bc7c218b0dfafd0f42/asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590", size = 35186 }
18
+ wheels = [
19
+ { url = "https://files.pythonhosted.org/packages/39/e3/893e8757be2612e6c266d9bb58ad2e3651524b5b40cf56761e985a28b13e/asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47", size = 23828 },
20
+ ]
21
+
13
22
  [[package]]
14
23
  name = "authorizenet"
15
24
  version = "1.1.5"
@@ -21,6 +30,34 @@ dependencies = [
21
30
  ]
22
31
  sdist = { url = "https://files.pythonhosted.org/packages/2d/9a/61c151f508a9b32014b622c9c65b614c7c32068201eee1d93c93010558bc/authorizenet-1.1.5.tar.gz", hash = "sha256:ba8b538028201c01d7ed097ea0842f7732c220472006d105b4a6b948ddcaf4dc", size = 158959 }
23
32
 
33
+ [[package]]
34
+ name = "boto3"
35
+ version = "1.35.80"
36
+ source = { registry = "https://pypi.org/simple" }
37
+ dependencies = [
38
+ { name = "botocore" },
39
+ { name = "jmespath" },
40
+ { name = "s3transfer" },
41
+ ]
42
+ sdist = { url = "https://files.pythonhosted.org/packages/81/cd/58de9a4e792176bca4f2e4b4248a9db4a47ae217bc20ac6adb3052b029d3/boto3-1.35.80.tar.gz", hash = "sha256:50dae461ab5fbedfb81b690895d48a918fed0d5fdff37be1c4232770c0dc9712", size = 111009 }
43
+ wheels = [
44
+ { url = "https://files.pythonhosted.org/packages/0a/72/f6724a19acaac7a7cdfc088ac95d2d0ea3626c00d5a5197a99e49bde474d/boto3-1.35.80-py3-none-any.whl", hash = "sha256:21a3b18c3a7fd20e463708fe3fa035983105dc7f3a1c274e1903e1583ab91159", size = 139179 },
45
+ ]
46
+
47
+ [[package]]
48
+ name = "botocore"
49
+ version = "1.35.80"
50
+ source = { registry = "https://pypi.org/simple" }
51
+ dependencies = [
52
+ { name = "jmespath" },
53
+ { name = "python-dateutil" },
54
+ { name = "urllib3" },
55
+ ]
56
+ sdist = { url = "https://files.pythonhosted.org/packages/81/e3/b10f8c2c58fd144d99de10e5f964bd1b0e609d27cb05513bebfdfa47e3eb/botocore-1.35.80.tar.gz", hash = "sha256:b8dfceca58891cb2711bd6455ec4f7159051f3796e0f64adef9bb334f19d8a92", size = 13456944 }
57
+ wheels = [
58
+ { url = "https://files.pythonhosted.org/packages/f6/cc/7ecef0f0e883f4bd8e23a04e86d98f8c7d6aa6a821efcec67b3547388d2e/botocore-1.35.80-py3-none-any.whl", hash = "sha256:36e589dccb62380abd628b08fecfa2f7c89b99f41ec9fc42c467c94008c0be4a", size = 13263229 },
59
+ ]
60
+
24
61
  [[package]]
25
62
  name = "certifi"
26
63
  version = "2024.8.30"
@@ -69,6 +106,20 @@ wheels = [
69
106
  { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 },
70
107
  ]
71
108
 
109
+ [[package]]
110
+ name = "django"
111
+ version = "5.1.4"
112
+ source = { registry = "https://pypi.org/simple" }
113
+ dependencies = [
114
+ { name = "asgiref" },
115
+ { name = "sqlparse" },
116
+ { name = "tzdata", marker = "sys_platform == 'win32'" },
117
+ ]
118
+ sdist = { url = "https://files.pythonhosted.org/packages/d3/e8/536555596dbb79f6e77418aeb40bdc1758c26725aba31919ba449e6d5e6a/Django-5.1.4.tar.gz", hash = "sha256:de450c09e91879fa5a307f696e57c851955c910a438a35e6b4c895e86bedc82a", size = 10716397 }
119
+ wheels = [
120
+ { url = "https://files.pythonhosted.org/packages/58/0b/8a4ab2c02982df4ed41e29f28f189459a7eba37899438e6bea7f39db793b/Django-5.1.4-py3-none-any.whl", hash = "sha256:236e023f021f5ce7dee5779de7b286565fdea5f4ab86bae5338e3f7b69896cf0", size = 8276471 },
121
+ ]
122
+
72
123
  [[package]]
73
124
  name = "future"
74
125
  version = "1.0.0"
@@ -87,6 +138,15 @@ wheels = [
87
138
  { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
88
139
  ]
89
140
 
141
+ [[package]]
142
+ name = "jmespath"
143
+ version = "1.0.1"
144
+ source = { registry = "https://pypi.org/simple" }
145
+ sdist = { url = "https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe", size = 25843 }
146
+ wheels = [
147
+ { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256 },
148
+ ]
149
+
90
150
  [[package]]
91
151
  name = "lxml"
92
152
  version = "4.9.4"
@@ -102,31 +162,39 @@ wheels = [
102
162
  { url = "https://files.pythonhosted.org/packages/5f/df/6d15cc415e04724ba4c141051cf43709e09bbcdd9868a6c2e7a7073ef498/lxml-4.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:f1faee2a831fe249e1bae9cbc68d3cd8a30f7e37851deee4d7962b17c410dd56", size = 3773977 },
103
163
  ]
104
164
 
165
+ [[package]]
166
+ name = "python-dateutil"
167
+ version = "2.9.0.post0"
168
+ source = { registry = "https://pypi.org/simple" }
169
+ dependencies = [
170
+ { name = "six" },
171
+ ]
172
+ sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 }
173
+ wheels = [
174
+ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 },
175
+ ]
176
+
105
177
  [[package]]
106
178
  name = "python-terminusgps"
107
- version = "1.0.0"
179
+ version = "1.1.0"
108
180
  source = { editable = "." }
109
181
  dependencies = [
110
182
  { name = "argparse" },
111
183
  { name = "authorizenet" },
184
+ { name = "boto3" },
185
+ { name = "django" },
112
186
  { name = "python-wialon" },
113
187
  ]
114
188
 
115
- [package.dev-dependencies]
116
- dev = [
117
- { name = "setuptools" },
118
- ]
119
-
120
189
  [package.metadata]
121
190
  requires-dist = [
122
191
  { name = "argparse", specifier = ">=1.4.0" },
123
192
  { name = "authorizenet", specifier = ">=1.1.5" },
193
+ { name = "boto3", specifier = ">=1.35.80" },
194
+ { name = "django", specifier = ">=5.1.4" },
124
195
  { name = "python-wialon", specifier = ">=1.2.4" },
125
196
  ]
126
197
 
127
- [package.metadata.requires-dev]
128
- dev = [{ name = "setuptools", specifier = ">=75.6.0" }]
129
-
130
198
  [[package]]
131
199
  name = "python-wialon"
132
200
  version = "1.2.4"
@@ -165,12 +233,15 @@ wheels = [
165
233
  ]
166
234
 
167
235
  [[package]]
168
- name = "setuptools"
169
- version = "75.6.0"
236
+ name = "s3transfer"
237
+ version = "0.10.4"
170
238
  source = { registry = "https://pypi.org/simple" }
171
- sdist = { url = "https://files.pythonhosted.org/packages/43/54/292f26c208734e9a7f067aea4a7e282c080750c4546559b58e2e45413ca0/setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6", size = 1337429 }
239
+ dependencies = [
240
+ { name = "botocore" },
241
+ ]
242
+ sdist = { url = "https://files.pythonhosted.org/packages/c0/0a/1cdbabf9edd0ea7747efdf6c9ab4e7061b085aa7f9bfc36bb1601563b069/s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7", size = 145287 }
172
243
  wheels = [
173
- { url = "https://files.pythonhosted.org/packages/55/21/47d163f615df1d30c094f6c8bbb353619274edccf0327b185cc2493c2c33/setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d", size = 1224032 },
244
+ { url = "https://files.pythonhosted.org/packages/66/05/7957af15543b8c9799209506df4660cba7afc4cf94bfb60513827e96bed6/s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e", size = 83175 },
174
245
  ]
175
246
 
176
247
  [[package]]
@@ -208,6 +279,33 @@ wheels = [
208
279
  { url = "https://files.pythonhosted.org/packages/0d/e7/f9fafbd4f39793a20cc52e77bbd766f7384312526d402c382928dc7667f6/simplejson-3.19.3-py3-none-any.whl", hash = "sha256:49cc4c7b940d43bd12bf87ec63f28cbc4964fc4e12c031cc8cd01650f43eb94e", size = 57004 },
209
280
  ]
210
281
 
282
+ [[package]]
283
+ name = "six"
284
+ version = "1.17.0"
285
+ source = { registry = "https://pypi.org/simple" }
286
+ sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 }
287
+ wheels = [
288
+ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 },
289
+ ]
290
+
291
+ [[package]]
292
+ name = "sqlparse"
293
+ version = "0.5.3"
294
+ source = { registry = "https://pypi.org/simple" }
295
+ sdist = { url = "https://files.pythonhosted.org/packages/e5/40/edede8dd6977b0d3da179a342c198ed100dd2aba4be081861ee5911e4da4/sqlparse-0.5.3.tar.gz", hash = "sha256:09f67787f56a0b16ecdbde1bfc7f5d9c3371ca683cfeaa8e6ff60b4807ec9272", size = 84999 }
296
+ wheels = [
297
+ { url = "https://files.pythonhosted.org/packages/a9/5c/bfd6bd0bf979426d405cc6e71eceb8701b148b16c21d2dc3c261efc61c7b/sqlparse-0.5.3-py3-none-any.whl", hash = "sha256:cf2196ed3418f3ba5de6af7e82c694a9fbdbfecccdfc72e281548517081f16ca", size = 44415 },
298
+ ]
299
+
300
+ [[package]]
301
+ name = "tzdata"
302
+ version = "2024.2"
303
+ source = { registry = "https://pypi.org/simple" }
304
+ sdist = { url = "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", size = 193282 }
305
+ wheels = [
306
+ { url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 },
307
+ ]
308
+
211
309
  [[package]]
212
310
  name = "urllib3"
213
311
  version = "2.2.3"
@@ -1,14 +0,0 @@
1
- from os import getenv
2
-
3
- from authorizenet.apicontractsv1 import merchantAuthenticationType
4
- from authorizenet.constants import constants
5
-
6
-
7
- def get_merchant_auth() -> merchantAuthenticationType:
8
- name: str = getenv("MERCHANT_AUTH_LOGIN_ID", "")
9
- transactionKey: str = getenv("MERCHANT_AUTH_TRANSACTION_KEY", "")
10
- return merchantAuthenticationType(name=name, transactionKey=transactionKey)
11
-
12
-
13
- def get_environment(debug: bool = False) -> str:
14
- return constants.SANDBOX if debug else constants.PRODUCTION