boto3-assist 0.2.6__py3-none-any.whl → 0.2.8__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.
- boto3_assist/dynamodb/dynamodb_model_base.py +33 -0
- boto3_assist/version.py +1 -1
- {boto3_assist-0.2.6.dist-info → boto3_assist-0.2.8.dist-info}/METADATA +8 -8
- {boto3_assist-0.2.6.dist-info → boto3_assist-0.2.8.dist-info}/RECORD +7 -7
- {boto3_assist-0.2.6.dist-info → boto3_assist-0.2.8.dist-info}/WHEEL +1 -1
- {boto3_assist-0.2.6.dist-info → boto3_assist-0.2.8.dist-info}/licenses/LICENSE-EXPLAINED.txt +0 -0
- {boto3_assist-0.2.6.dist-info → boto3_assist-0.2.8.dist-info}/licenses/LICENSE.txt +0 -0
|
@@ -18,6 +18,7 @@ from boto3_assist.dynamodb.dynamodb_index import (
|
|
|
18
18
|
DynamoDBIndex,
|
|
19
19
|
)
|
|
20
20
|
from boto3_assist.dynamodb.dynamodb_reserved_words import DynamoDBReservedWords
|
|
21
|
+
from boto3_assist.utilities.datetime_utility import DatetimeUtility
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
def exclude_from_serialization(method):
|
|
@@ -214,6 +215,38 @@ class DynamoDBModelBase:
|
|
|
214
215
|
|
|
215
216
|
return values
|
|
216
217
|
|
|
218
|
+
def to_timestamp_or_none(self, value: str | dt.datetime | None) -> float | None:
|
|
219
|
+
"""
|
|
220
|
+
Convert a value to a timestamp (float) or None
|
|
221
|
+
|
|
222
|
+
Exceptions:
|
|
223
|
+
ValueError: If the value is not a datetime string or datetime
|
|
224
|
+
"""
|
|
225
|
+
|
|
226
|
+
if isinstance(value, str):
|
|
227
|
+
# value = dt.datetime.fromisoformat(value)
|
|
228
|
+
value = DatetimeUtility.to_datetime_utc(value)
|
|
229
|
+
|
|
230
|
+
if value is None:
|
|
231
|
+
return None
|
|
232
|
+
|
|
233
|
+
if isinstance(value, dt.datetime):
|
|
234
|
+
return value.timestamp()
|
|
235
|
+
|
|
236
|
+
raise ValueError(
|
|
237
|
+
"Value must be a None, a string in a valid datetime format or datetime"
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
def to_utc(self, value: str | dt.datetime | None) -> dt.datetime | None:
|
|
241
|
+
"""
|
|
242
|
+
Convert a datetime to UTC. This ensures all datetimes are stored in UTC format
|
|
243
|
+
|
|
244
|
+
Exceptions:
|
|
245
|
+
ValueError: If the value is not a datetime string or datetime
|
|
246
|
+
"""
|
|
247
|
+
|
|
248
|
+
value = DatetimeUtility.to_datetime_utc(value)
|
|
249
|
+
|
|
217
250
|
|
|
218
251
|
class DynamoDBSerializer:
|
|
219
252
|
"""Library to Serialize object to a DynamoDB Format"""
|
boto3_assist/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '0.2.
|
|
1
|
+
__version__ = '0.2.8'
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: boto3_assist
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.8
|
|
4
4
|
Summary: Additional boto3 wrappers to make your life a little easier
|
|
5
5
|
Author-email: Eric Wilson <boto3-assist@geekcafe.com>
|
|
6
|
+
License-File: LICENSE-EXPLAINED.txt
|
|
7
|
+
License-File: LICENSE.txt
|
|
6
8
|
Classifier: License :: Other/Proprietary License
|
|
7
9
|
Classifier: Operating System :: OS Independent
|
|
8
10
|
Classifier: Programming Language :: Python :: 3
|
|
9
11
|
Requires-Python: >=3.10
|
|
10
|
-
Requires-Dist: aws-lambda-powertools
|
|
12
|
+
Requires-Dist: aws-lambda-powertools
|
|
11
13
|
Requires-Dist: aws-xray-sdk
|
|
12
|
-
Requires-Dist: boto3
|
|
13
|
-
Requires-Dist: jsons
|
|
14
|
+
Requires-Dist: boto3
|
|
15
|
+
Requires-Dist: jsons
|
|
14
16
|
Requires-Dist: python-dateutil
|
|
15
17
|
Requires-Dist: python-dotenv
|
|
16
|
-
Requires-Dist: python-dotenv==1.0.1
|
|
17
18
|
Requires-Dist: pytz
|
|
18
|
-
Requires-Dist:
|
|
19
|
-
Requires-Dist: requests==2.31.0
|
|
19
|
+
Requires-Dist: requests
|
|
20
20
|
Requires-Dist: types-python-dateutil
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
|
|
@@ -2,7 +2,7 @@ boto3_assist/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
2
2
|
boto3_assist/boto3session.py,sha256=NWhWtYR3143thEbTpoklkwdz77-fTMs-QsoQdqfRm6E,6430
|
|
3
3
|
boto3_assist/connection.py,sha256=EJlGueLIYqMSKs7aQlThK1S0Zkb8dOYBWch1iRZdgUI,3233
|
|
4
4
|
boto3_assist/connection_tracker.py,sha256=_s1t7h2DOi3CCIHIr_HIKyGjku65WR-HJ_v8vJHDvO0,2977
|
|
5
|
-
boto3_assist/version.py,sha256=
|
|
5
|
+
boto3_assist/version.py,sha256=QS1piWKz3Mys2vOiR2kTlrqfdbiwJYEfhOlgbh73Sg8,22
|
|
6
6
|
boto3_assist/cloudwatch/cloudwatch_connection.py,sha256=mnGWaLSQpHh5EeY7Ek_2o9JKHJxOELIYtQVMX1IaHn4,2480
|
|
7
7
|
boto3_assist/cloudwatch/cloudwatch_connection_tracker.py,sha256=mzRtO1uHrcfJNh1XrGEiXdTqxwEP8d1RqJkraMNkgK0,410
|
|
8
8
|
boto3_assist/cloudwatch/cloudwatch_log_connection.py,sha256=qQMZHjUJ6gA8wU9utjQhOURXNSPH2RjxSoAy83bvoCs,1737
|
|
@@ -16,7 +16,7 @@ boto3_assist/dynamodb/dynamodb_importer.py,sha256=nCKsyRQeMqDSf0Q5mQ_X_oVIg4PRnu
|
|
|
16
16
|
boto3_assist/dynamodb/dynamodb_index.py,sha256=7xa2bN3o8P7XIN9CcJiU7_i1MVjZPl6ZPVZqbZr8pS4,7747
|
|
17
17
|
boto3_assist/dynamodb/dynamodb_iservice.py,sha256=O9Aj0PFEvcuk2vhARifWTFnUwcQW5EXzwZS478Hm-N0,796
|
|
18
18
|
boto3_assist/dynamodb/dynamodb_key.py,sha256=YD7o1EUlwVBQ55p9YCTKqAUU_np4nqtLIHnmp-BeolM,1803
|
|
19
|
-
boto3_assist/dynamodb/dynamodb_model_base.py,sha256=
|
|
19
|
+
boto3_assist/dynamodb/dynamodb_model_base.py,sha256=RpVhh88Bvg0aPO5Ux1yliFc8-INQfWdMsXo3mk_Clw8,15351
|
|
20
20
|
boto3_assist/dynamodb/dynamodb_model_base_interfaces.py,sha256=yT4zDRI8vP15WVOHnCvY3FsEy_QSIta5-bnUby70Xow,747
|
|
21
21
|
boto3_assist/dynamodb/dynamodb_reindexer.py,sha256=bCj6KIU0fQOgjkkiq9yF51PFZZr4Y9Lu3-hPlmsPG0Y,6164
|
|
22
22
|
boto3_assist/dynamodb/dynamodb_reserved_words.py,sha256=p0irNBSqGe4rd2FwWQqbRJWrNr4svdbWiyIXmz9lj4c,1937
|
|
@@ -36,8 +36,8 @@ boto3_assist/utilities/http_utility.py,sha256=koFv7Va-8ng-47Nt1K2Sh7Ti95e62IYs9V
|
|
|
36
36
|
boto3_assist/utilities/logging_utility.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
37
|
boto3_assist/utilities/serialization_utility.py,sha256=s_QQRIhtwIE7xN5nU13mNk2wtWyErBX_Sg7n0gbHj-M,4308
|
|
38
38
|
boto3_assist/utilities/string_utility.py,sha256=w8l063UT3GE48tuJopETyZrjG4CgAzWkyDWMAYMg5Og,7432
|
|
39
|
-
boto3_assist-0.2.
|
|
40
|
-
boto3_assist-0.2.
|
|
41
|
-
boto3_assist-0.2.
|
|
42
|
-
boto3_assist-0.2.
|
|
43
|
-
boto3_assist-0.2.
|
|
39
|
+
boto3_assist-0.2.8.dist-info/METADATA,sha256=02gGiQ9dx4RVazzHz3Hx3jv6lQuGgb2KtoOHrQykw5w,1707
|
|
40
|
+
boto3_assist-0.2.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
41
|
+
boto3_assist-0.2.8.dist-info/licenses/LICENSE-EXPLAINED.txt,sha256=WFREvTpfTjPjDHpOLADxJpCKpIla3Ht87RUUGii4ODU,606
|
|
42
|
+
boto3_assist-0.2.8.dist-info/licenses/LICENSE.txt,sha256=PXDhFWS5L5aOTkVhNvoitHKbAkgxqMI2uUPQyrnXGiI,1105
|
|
43
|
+
boto3_assist-0.2.8.dist-info/RECORD,,
|
{boto3_assist-0.2.6.dist-info → boto3_assist-0.2.8.dist-info}/licenses/LICENSE-EXPLAINED.txt
RENAMED
|
File without changes
|
|
File without changes
|