my-aws-helpers 5.7.0__tar.gz → 5.9.0__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 my-aws-helpers might be problematic. Click here for more details.
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/PKG-INFO +1 -1
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/s3.py +45 -3
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers.egg-info/PKG-INFO +1 -1
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/setup.py +1 -1
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/MANIFEST.in +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/README.md +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/api.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/auth.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/bedrock.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/cognito.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/dynamo.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/errors.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/event.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/logging.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/prompts/__init__.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/prompts/markdown_system_prompt.txt +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/prompts/transactions_headers_prompt.txt +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/prompts/transactions_headers_prompt_v2.txt +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/prompts/transactions_prompt.txt +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/sfn.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers.egg-info/SOURCES.txt +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers.egg-info/dependency_links.txt +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers.egg-info/requires.txt +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers.egg-info/top_level.txt +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers.egg-info/zip-safe +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/setup.cfg +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/tests/test_cognito.py +0 -0
- {my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/tests/test_event.py +0 -0
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
import boto3
|
|
3
3
|
import io
|
|
4
4
|
import json
|
|
5
|
+
from concurrent.futures import Future, ThreadPoolExecutor
|
|
5
6
|
from abc import ABC, abstractmethod
|
|
6
7
|
from typing import Optional, Any, Dict, List
|
|
7
8
|
from datetime import datetime, date
|
|
@@ -100,11 +101,35 @@ class S3:
|
|
|
100
101
|
)
|
|
101
102
|
|
|
102
103
|
def list_objects_by_prefix(self, bucket_name: str, prefix: str) -> List[S3Location]:
|
|
104
|
+
"""
|
|
105
|
+
list objects by prefix gets 1000 items at a time, if theres more, I want em
|
|
106
|
+
"""
|
|
107
|
+
objects = list()
|
|
103
108
|
try:
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
continuation_token = None
|
|
110
|
+
while True:
|
|
111
|
+
if continuation_token:
|
|
112
|
+
response = self.client.list_objects_v2(
|
|
113
|
+
Bucket=bucket_name,
|
|
114
|
+
Prefix=prefix,
|
|
115
|
+
ContinuationToken=continuation_token
|
|
116
|
+
)
|
|
117
|
+
else:
|
|
118
|
+
response = self.client.list_objects_v2(
|
|
119
|
+
Bucket=bucket_name,
|
|
120
|
+
Prefix=prefix
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
# Append current batch
|
|
124
|
+
objects.extend(response.get("Contents", []))
|
|
125
|
+
|
|
126
|
+
# Check if more results exist
|
|
127
|
+
if response.get("IsTruncated"): # True if more pages available
|
|
128
|
+
continuation_token = response["NextContinuationToken"]
|
|
129
|
+
else:
|
|
130
|
+
break
|
|
106
131
|
locations = [
|
|
107
|
-
S3Location(bucket=bucket_name, file_name=c["Key"]) for c in
|
|
132
|
+
S3Location(bucket=bucket_name, file_name=c["Key"]) for c in objects
|
|
108
133
|
]
|
|
109
134
|
return locations
|
|
110
135
|
except Exception as e:
|
|
@@ -296,6 +321,23 @@ class BaseS3Queries:
|
|
|
296
321
|
self.s3_client = s3_client
|
|
297
322
|
self.bucket_name = bucket_name
|
|
298
323
|
|
|
324
|
+
def _concurrent_s3_dict_read(
|
|
325
|
+
self, locations: List[S3Location], max_workers: int = 10
|
|
326
|
+
) -> List[BaseS3Object]:
|
|
327
|
+
results: List[BaseS3Object] = list()
|
|
328
|
+
futures: List[Future] = list()
|
|
329
|
+
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
|
330
|
+
for location in locations:
|
|
331
|
+
future = executor.submit(
|
|
332
|
+
self.s3_client.read_dict_from_s3,
|
|
333
|
+
s3_location=location,
|
|
334
|
+
)
|
|
335
|
+
futures.append(future)
|
|
336
|
+
for f in futures:
|
|
337
|
+
results.append(f.result())
|
|
338
|
+
results = [r for r in results if r is not None]
|
|
339
|
+
return results
|
|
340
|
+
|
|
299
341
|
def save_s3_object_to_s3(self, object: BaseS3Object) -> Optional[S3Location]:
|
|
300
342
|
try:
|
|
301
343
|
obj = object.to_s3_representation()
|
|
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
|
{my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/prompts/markdown_system_prompt.txt
RENAMED
|
File without changes
|
{my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/prompts/transactions_headers_prompt.txt
RENAMED
|
File without changes
|
|
File without changes
|
{my_aws_helpers-5.7.0 → my_aws_helpers-5.9.0}/my_aws_helpers/prompts/transactions_prompt.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
|