boto3-assist 0.2.1__tar.gz → 0.2.3__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.
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/PKG-INFO +1 -1
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/pyproject.toml +1 -1
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/s3/s3.py +71 -22
- boto3_assist-0.2.3/src/boto3_assist/version.py +1 -0
- boto3_assist-0.2.1/src/boto3_assist/version.py +0 -1
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/.env.docker +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/.env.docker.001 +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/.env.docker.nosql.workbench +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/.env.unittest +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/.gitignore +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/.vscode/launch.json +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/.vscode/settings.json +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/.vscode/tasks.json +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/LICENSE-EXPLAINED.txt +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/LICENSE.txt +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/README.md +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/aws_regions_with_status.csv +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/aws_regions_with_status.json +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/devops/build.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/devops/readme.md +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/__init__.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/cloudwatch/log_report.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/models/order_item_model.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/models/order_model.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/models/product_model.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/models/user_model.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/models/user_post_model.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/order_example/main.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/order_example/products.json +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/services/order_item_service.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/services/order_service.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/services/product_service.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/services/table_service.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/services/user_post_service.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/services/user_service.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/services/user_service_client_example.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/services/user_service_resource_example.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/user_post_example/main.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/ec2/regions_report.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/module-headers.txt +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/mypy.ini +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/requirements-dev.txt +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/requirements.txt +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/run-checks.sh +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/__init__.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/boto3session.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/cloudwatch/cloudwatch_connection.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/cloudwatch/cloudwatch_connection_tracker.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/cloudwatch/cloudwatch_log_connection.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/cloudwatch/cloudwatch_logs.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/cloudwatch/cloudwatch_query.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/connection.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/connection_tracker.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_connection.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_connection_tracker.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_helpers.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_importer.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_index.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_iservice.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_key.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_model_base.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_model_base_interfaces.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_reindexer.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_reserved_words.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_reserved_words.txt +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/readme.md +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/troubleshooting.md +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/ec2/ec2_connection.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/environment_services/__init__.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/environment_services/environment_loader.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/environment_services/environment_variables.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/errors/custom_exceptions.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/s3/s3_connection.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/utilities/datetime_utility.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/utilities/file_operations.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/utilities/http_utility.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/utilities/logging_utility.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/utilities/serialization_utility.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/utilities/string_utility.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/__init__.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/__top/__init__.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/__init__.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/dynamodb_model_base_test.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/dynamodb_model_projections_test.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/dynamodb_model_serializtion_test.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/dynamodb_moto_sorting_test.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/dynamodb_reindex_test.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/models/cms/base.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/models/cms/content_block.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/models/cms/page.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/models/cms/template.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/models/simple_model.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/models/user_model.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/examples_test/__init__.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/examples_test/user_service_test.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/utilities/__init__.py +0 -0
- {boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/utilities/serialization_utility_test.py +0 -0
|
@@ -89,7 +89,7 @@ class S3(S3Connection):
|
|
|
89
89
|
else:
|
|
90
90
|
meta_data.update(local_meta)
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
key = key_path
|
|
93
93
|
method_type = method_type.upper()
|
|
94
94
|
|
|
95
95
|
signed_url: str | Dict[str, Any]
|
|
@@ -98,7 +98,7 @@ class S3(S3Connection):
|
|
|
98
98
|
"put_object",
|
|
99
99
|
Params={
|
|
100
100
|
"Bucket": f"{bucket_name}",
|
|
101
|
-
"Key": f"{
|
|
101
|
+
"Key": f"{key}",
|
|
102
102
|
# NOTE: if you include the ContentType or Metadata then its required in the when they upload the file
|
|
103
103
|
# Otherwise you will get a `SignatureDoesNotMatch` error
|
|
104
104
|
# for now I'm commenting it out.
|
|
@@ -111,7 +111,7 @@ class S3(S3Connection):
|
|
|
111
111
|
elif method_type == "POST":
|
|
112
112
|
signed_url = self.client.generate_presigned_post(
|
|
113
113
|
bucket_name,
|
|
114
|
-
|
|
114
|
+
key,
|
|
115
115
|
ExpiresIn=expiration, # URL is valid for x seconds
|
|
116
116
|
)
|
|
117
117
|
elif method_type == "GET":
|
|
@@ -119,7 +119,7 @@ class S3(S3Connection):
|
|
|
119
119
|
"get_object",
|
|
120
120
|
Params={
|
|
121
121
|
"Bucket": f"{bucket_name}",
|
|
122
|
-
"Key": f"{
|
|
122
|
+
"Key": f"{key}",
|
|
123
123
|
},
|
|
124
124
|
ExpiresIn=expiration, # URL is valid for x seconds
|
|
125
125
|
)
|
|
@@ -133,12 +133,47 @@ class S3(S3Connection):
|
|
|
133
133
|
|
|
134
134
|
response = {
|
|
135
135
|
"signed_url": signed_url,
|
|
136
|
-
"
|
|
136
|
+
"key": key,
|
|
137
137
|
"meta_data": meta_data,
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
return response
|
|
141
141
|
|
|
142
|
+
def upload_file_obj(self, bucket: str, key: str, file_obj: bytes | str) -> str:
|
|
143
|
+
"""
|
|
144
|
+
Uploads a file object to s3. Returns the full s3 path s3://<bucket>/<key>
|
|
145
|
+
"""
|
|
146
|
+
|
|
147
|
+
if key.startswith("/"):
|
|
148
|
+
# remove the first slash
|
|
149
|
+
key = key[1:]
|
|
150
|
+
|
|
151
|
+
logger.debug(
|
|
152
|
+
{
|
|
153
|
+
"metric_filter": "upload_file_to_s3",
|
|
154
|
+
"bucket": bucket,
|
|
155
|
+
"key": key,
|
|
156
|
+
}
|
|
157
|
+
)
|
|
158
|
+
try:
|
|
159
|
+
# convert if necessary
|
|
160
|
+
file_obj: bytes = (
|
|
161
|
+
file_obj.encode("utf-8") if isinstance(file_obj, str) else file_obj
|
|
162
|
+
)
|
|
163
|
+
self.client.upload_fileobj(Fileobj=file_obj, Bucket=bucket, Key=key)
|
|
164
|
+
|
|
165
|
+
except ClientError as ce:
|
|
166
|
+
error = {
|
|
167
|
+
"metric_filter": "upload_file_to_s3_failure",
|
|
168
|
+
"s3 upload": "failure",
|
|
169
|
+
"bucket": bucket,
|
|
170
|
+
"key": key,
|
|
171
|
+
}
|
|
172
|
+
logger.error(error)
|
|
173
|
+
raise RuntimeError(error) from ce
|
|
174
|
+
|
|
175
|
+
return f"s3://{bucket}/{key}"
|
|
176
|
+
|
|
142
177
|
def upload_file(
|
|
143
178
|
self,
|
|
144
179
|
bucket: str,
|
|
@@ -188,7 +223,7 @@ class S3(S3Connection):
|
|
|
188
223
|
def download_file(
|
|
189
224
|
self,
|
|
190
225
|
bucket: str,
|
|
191
|
-
|
|
226
|
+
key: str,
|
|
192
227
|
local_directory: str | None = None,
|
|
193
228
|
local_file_path: str | None = None,
|
|
194
229
|
retry_attempts: int = 3,
|
|
@@ -205,7 +240,7 @@ class S3(S3Connection):
|
|
|
205
240
|
try:
|
|
206
241
|
path = self.download_file_no_retries(
|
|
207
242
|
bucket=bucket,
|
|
208
|
-
|
|
243
|
+
key=key,
|
|
209
244
|
local_directory=local_directory,
|
|
210
245
|
local_file_path=local_file_path,
|
|
211
246
|
)
|
|
@@ -246,7 +281,7 @@ class S3(S3Connection):
|
|
|
246
281
|
def download_file_no_retries(
|
|
247
282
|
self,
|
|
248
283
|
bucket: str,
|
|
249
|
-
|
|
284
|
+
key: str,
|
|
250
285
|
local_directory: str | None = None,
|
|
251
286
|
local_file_path: str | None = None,
|
|
252
287
|
) -> str:
|
|
@@ -255,7 +290,7 @@ class S3(S3Connection):
|
|
|
255
290
|
|
|
256
291
|
Args:
|
|
257
292
|
bucket (str): s3 bucket
|
|
258
|
-
|
|
293
|
+
key (str): the s3 object key
|
|
259
294
|
local_directory (str, optional): Local directory to download to. Defaults to None.
|
|
260
295
|
If None, we'll use a local tmp directory.
|
|
261
296
|
|
|
@@ -272,13 +307,11 @@ class S3(S3Connection):
|
|
|
272
307
|
{
|
|
273
308
|
"action": "downloading file",
|
|
274
309
|
"bucket": bucket,
|
|
275
|
-
"
|
|
310
|
+
"key": key,
|
|
276
311
|
"local_directory": local_directory,
|
|
277
312
|
}
|
|
278
313
|
)
|
|
279
|
-
return self.__download_file(
|
|
280
|
-
bucket, object_key, local_directory, local_file_path
|
|
281
|
-
)
|
|
314
|
+
return self.__download_file(bucket, key, local_directory, local_file_path)
|
|
282
315
|
except FileNotFoundError:
|
|
283
316
|
logger.warning(
|
|
284
317
|
{
|
|
@@ -286,12 +319,12 @@ class S3(S3Connection):
|
|
|
286
319
|
"error": "FileNotFoundError",
|
|
287
320
|
"message": "attempting to find it decoded",
|
|
288
321
|
"bucket": bucket,
|
|
289
|
-
"
|
|
322
|
+
"key": key,
|
|
290
323
|
}
|
|
291
324
|
)
|
|
292
325
|
|
|
293
|
-
# attempt to decode the
|
|
294
|
-
decoded_object_key = HttpUtility.decode_url(
|
|
326
|
+
# attempt to decode the key
|
|
327
|
+
decoded_object_key = HttpUtility.decode_url(key)
|
|
295
328
|
|
|
296
329
|
logger.error(
|
|
297
330
|
{
|
|
@@ -299,7 +332,7 @@ class S3(S3Connection):
|
|
|
299
332
|
"error": "FileNotFoundError",
|
|
300
333
|
"message": "attempting to find it decoded",
|
|
301
334
|
"bucket": bucket,
|
|
302
|
-
"
|
|
335
|
+
"key": key,
|
|
303
336
|
"decoded_object_key": decoded_object_key,
|
|
304
337
|
}
|
|
305
338
|
)
|
|
@@ -317,7 +350,7 @@ class S3(S3Connection):
|
|
|
317
350
|
)
|
|
318
351
|
raise e
|
|
319
352
|
|
|
320
|
-
def stream_file(self, bucket_name: str,
|
|
353
|
+
def stream_file(self, bucket_name: str, key: str) -> Dict[str, Any]:
|
|
321
354
|
"""
|
|
322
355
|
Gets a file from s3 and returns the response.
|
|
323
356
|
The "Body" is a streaming body object. You can read it like a file.
|
|
@@ -334,7 +367,7 @@ class S3(S3Connection):
|
|
|
334
367
|
"source": "download_file",
|
|
335
368
|
"action": "downloading a file from s3",
|
|
336
369
|
"bucket": bucket_name,
|
|
337
|
-
"key":
|
|
370
|
+
"key": key,
|
|
338
371
|
}
|
|
339
372
|
)
|
|
340
373
|
|
|
@@ -342,7 +375,7 @@ class S3(S3Connection):
|
|
|
342
375
|
error = None
|
|
343
376
|
|
|
344
377
|
try:
|
|
345
|
-
response = dict(self.client.get_object(Bucket=bucket_name, Key=
|
|
378
|
+
response = dict(self.client.get_object(Bucket=bucket_name, Key=key))
|
|
346
379
|
|
|
347
380
|
logger.debug(
|
|
348
381
|
{"metric_filter": "s3_download_response", "response": str(response)}
|
|
@@ -356,7 +389,7 @@ class S3(S3Connection):
|
|
|
356
389
|
"metric_filter": "s3_download_error",
|
|
357
390
|
"error": str(e),
|
|
358
391
|
"bucket": bucket_name,
|
|
359
|
-
"key":
|
|
392
|
+
"key": key,
|
|
360
393
|
}
|
|
361
394
|
) from e
|
|
362
395
|
|
|
@@ -366,7 +399,7 @@ class S3(S3Connection):
|
|
|
366
399
|
"source": "download_file",
|
|
367
400
|
"action": "downloading a file from s3",
|
|
368
401
|
"bucket": bucket_name,
|
|
369
|
-
"key":
|
|
402
|
+
"key": key,
|
|
370
403
|
"response": response,
|
|
371
404
|
"errors": error,
|
|
372
405
|
}
|
|
@@ -474,3 +507,19 @@ class S3(S3Connection):
|
|
|
474
507
|
else:
|
|
475
508
|
# Not in AWS Lambda, use the system's default temp directory
|
|
476
509
|
return tempfile.gettempdir()
|
|
510
|
+
|
|
511
|
+
def encode(
|
|
512
|
+
self, text: str, encoding: str = "utf-8", errors: str = "strict"
|
|
513
|
+
) -> bytes:
|
|
514
|
+
"""
|
|
515
|
+
Encodes a string for s3
|
|
516
|
+
"""
|
|
517
|
+
return text.encode(encoding=encoding, errors=errors)
|
|
518
|
+
|
|
519
|
+
def decode(
|
|
520
|
+
self, file_obj: bytes, encoding: str = "utf-8", errors: str = "strict"
|
|
521
|
+
) -> str:
|
|
522
|
+
"""
|
|
523
|
+
Decodes bytes to a string
|
|
524
|
+
"""
|
|
525
|
+
return file_obj.decode(encoding=encoding, errors=errors)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.2.3'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '0.2.1'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boto3_assist-0.2.1 → boto3_assist-0.2.3}/examples/dynamodb/services/user_service_client_example.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/cloudwatch/cloudwatch_connection.py
RENAMED
|
File without changes
|
|
File without changes
|
{boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/cloudwatch/cloudwatch_log_connection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_connection_tracker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_reserved_words.py
RENAMED
|
File without changes
|
{boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/dynamodb/dynamodb_reserved_words.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boto3_assist-0.2.1 → boto3_assist-0.2.3}/src/boto3_assist/utilities/serialization_utility.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boto3_assist-0.2.1 → boto3_assist-0.2.3}/tests/dynamodb/dynamodb_model_serializtion_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|