boto3-assist 0.2.5__py3-none-any.whl → 0.2.7__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.
@@ -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,28 @@ 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 string in a valid datetime format or datetime"
238
+ )
239
+
217
240
 
218
241
  class DynamoDBSerializer:
219
242
  """Library to Serialize object to a DynamoDB Format"""
boto3_assist/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '0.2.5'
1
+ __version__ = '0.2.7'
@@ -1,22 +1,22 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: boto3_assist
3
- Version: 0.2.5
3
+ Version: 0.2.7
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==2.38.1
12
+ Requires-Dist: aws-lambda-powertools
11
13
  Requires-Dist: aws-xray-sdk
12
- Requires-Dist: boto3==1.34.110
13
- Requires-Dist: jsons==1.6.3
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: pytz==2024.1
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=8f4ummWTPl6PtdE9DzSUgZhPjGioA_NDC-hDpqzB9qI,22
5
+ boto3_assist/version.py,sha256=e3cfQy_iVs9ILsymUalJnJu5D_dd7HuUVoVwKKurcL0,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=9zRSu6XDghy5DvEXignZL0HbjfzbU47TIjZFgLZgtuY,14280
19
+ boto3_assist/dynamodb/dynamodb_model_base.py,sha256=ni8WGWMVW_238lo9UrgONbHu-to2_PfcuPtFDQ-0mgk,15003
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.5.dist-info/METADATA,sha256=hggHfXBaekU-StXveMPM2AI3Q8WYz1ZeC--FqMsPDiY,1742
40
- boto3_assist-0.2.5.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
41
- boto3_assist-0.2.5.dist-info/licenses/LICENSE-EXPLAINED.txt,sha256=WFREvTpfTjPjDHpOLADxJpCKpIla3Ht87RUUGii4ODU,606
42
- boto3_assist-0.2.5.dist-info/licenses/LICENSE.txt,sha256=PXDhFWS5L5aOTkVhNvoitHKbAkgxqMI2uUPQyrnXGiI,1105
43
- boto3_assist-0.2.5.dist-info/RECORD,,
39
+ boto3_assist-0.2.7.dist-info/METADATA,sha256=BpAKDCRt1Rnl6IZQIpvJCWznzr3TzXlsISLEv_NIJYw,1707
40
+ boto3_assist-0.2.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
41
+ boto3_assist-0.2.7.dist-info/licenses/LICENSE-EXPLAINED.txt,sha256=WFREvTpfTjPjDHpOLADxJpCKpIla3Ht87RUUGii4ODU,606
42
+ boto3_assist-0.2.7.dist-info/licenses/LICENSE.txt,sha256=PXDhFWS5L5aOTkVhNvoitHKbAkgxqMI2uUPQyrnXGiI,1105
43
+ boto3_assist-0.2.7.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.26.3
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any