Skip to content

Commit 434a0c8

Browse files
committed
Add Aurora module
1 parent 64ec70a commit 434a0c8

File tree

5 files changed

+43
-8
lines changed

5 files changed

+43
-8
lines changed

awswrangler/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from awswrangler.cloudwatchlogs import CloudWatchLogs # noqa
1010
from awswrangler.glue import Glue # noqa
1111
from awswrangler.redshift import Redshift # noqa
12+
from awswrangler.aurora import Aurora # noqa
1213
from awswrangler.emr import EMR # noqa
1314
from awswrangler.sagemaker import SageMaker # noqa
1415
import awswrangler.utils # noqa
@@ -38,6 +39,7 @@ def __getattr__(self, name):
3839
pandas = DynamicInstantiate("pandas")
3940
athena = DynamicInstantiate("athena")
4041
redshift = DynamicInstantiate("redshift")
42+
aurora = DynamicInstantiate("aurora")
4143
sagemaker = DynamicInstantiate("sagemaker")
4244
cloudwatchlogs = DynamicInstantiate("cloudwatchlogs")
4345

awswrangler/aurora.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import logging
2+
3+
logger = logging.getLogger(__name__)
4+
5+
6+
class Aurora:
7+
def __init__(self, session):
8+
self._session = session

awswrangler/sagemaker.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
from typing import Any
12
import pickle
23
import tarfile
34
import logging
45

5-
from typing import Any
66
from awswrangler.exceptions import InvalidParameters
77

88
logger = logging.getLogger(__name__)
@@ -12,7 +12,7 @@ class SageMaker:
1212
def __init__(self, session):
1313
self._session = session
1414
self._client_s3 = session.boto3_session.client(service_name="s3", use_ssl=True, config=session.botocore_config)
15-
self._client_sagemaker = session.boto3_session.client(service_name="sagemaker")
15+
self._client_sagemaker = session.boto3_session.client(service_name="sagemaker", use_ssl=True, config=session.botocore_config)
1616

1717
@staticmethod
1818
def _parse_path(path):

awswrangler/session.py

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from awswrangler.pandas import Pandas
1313
from awswrangler.glue import Glue
1414
from awswrangler.redshift import Redshift
15+
from awswrangler.aurora import Aurora
1516
from awswrangler.emr import EMR
1617
from awswrangler.sagemaker import SageMaker
1718
from awswrangler.exceptions import AWSCredentialsNotFound
@@ -52,7 +53,8 @@ def __init__(self,
5253
athena_kms_key: Optional[str] = None,
5354
athena_database: str = "default",
5455
athena_ctas_approach: bool = False,
55-
redshift_temp_s3_path: Optional[str] = None):
56+
redshift_temp_s3_path: Optional[str] = None,
57+
aurora_temp_s3_path: Optional[str] = None):
5658
"""
5759
Most parameters inherit from Boto3 or Pyspark.
5860
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html
@@ -76,7 +78,8 @@ def __init__(self,
7678
:param athena_s3_output: AWS S3 path
7779
:param athena_encryption: None|'SSE_S3'|'SSE_KMS'|'CSE_KMS'
7880
:param athena_kms_key: For SSE-KMS and CSE-KMS , this is the KMS key ARN or ID.
79-
:param redshift_temp_s3_path: redshift_temp_s3_path: AWS S3 path to write temporary data (e.g. s3://...)
81+
:param redshift_temp_s3_path: AWS S3 path to write temporary data (e.g. s3://...)
82+
:param aurora_temp_s3_path: AWS S3 path to write temporary data (e.g. s3://...)
8083
"""
8184
self._profile_name: Optional[str] = (boto3_session.profile_name if boto3_session else profile_name)
8285
self._aws_access_key_id: Optional[str] = (boto3_session.get_credentials().access_key
@@ -100,6 +103,7 @@ def __init__(self,
100103
self._athena_database: str = athena_database
101104
self._athena_ctas_approach: bool = athena_ctas_approach
102105
self._redshift_temp_s3_path: Optional[str] = redshift_temp_s3_path
106+
self._aurora_temp_s3_path: Optional[str] = aurora_temp_s3_path
103107
self._primitives = None
104108
self._load_new_primitives()
105109
if boto3_session:
@@ -113,6 +117,7 @@ def __init__(self,
113117
self._pandas = None
114118
self._glue = None
115119
self._redshift = None
120+
self._aurora = None
116121
self._spark = None
117122
self._sagemaker = None
118123

@@ -160,7 +165,8 @@ def _load_new_primitives(self):
160165
athena_kms_key=self._athena_kms_key,
161166
athena_database=self._athena_database,
162167
athena_ctas_approach=self._athena_ctas_approach,
163-
redshift_temp_s3_path=self._redshift_temp_s3_path)
168+
redshift_temp_s3_path=self._redshift_temp_s3_path,
169+
aurora_temp_s3_path=self._aurora_temp_s3_path)
164170

165171
@property
166172
def profile_name(self):
@@ -238,6 +244,10 @@ def athena_ctas_approach(self) -> bool:
238244
def redshift_temp_s3_path(self) -> Optional[str]:
239245
return self._redshift_temp_s3_path
240246

247+
@property
248+
def aurora_temp_s3_path(self) -> Optional[str]:
249+
return self._aurora_temp_s3_path
250+
241251
@property
242252
def boto3_session(self):
243253
return self._boto3_session
@@ -288,6 +298,12 @@ def redshift(self):
288298
self._redshift = Redshift(session=self)
289299
return self._redshift
290300

301+
@property
302+
def aurora(self):
303+
if not self._aurora:
304+
self._aurora = Aurora(session=self)
305+
return self._aurora
306+
291307
@property
292308
def sagemaker(self):
293309
if not self._sagemaker:
@@ -326,7 +342,8 @@ def __init__(self,
326342
athena_kms_key: Optional[str] = None,
327343
athena_database: Optional[str] = None,
328344
athena_ctas_approach: bool = False,
329-
redshift_temp_s3_path: Optional[str] = None):
345+
redshift_temp_s3_path: Optional[str] = None,
346+
aurora_temp_s3_path: Optional[str] = None):
330347
"""
331348
Most parameters inherit from Boto3.
332349
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html
@@ -348,6 +365,7 @@ def __init__(self,
348365
:param athena_encryption: None|'SSE_S3'|'SSE_KMS'|'CSE_KMS'
349366
:param athena_kms_key: For SSE-KMS and CSE-KMS , this is the KMS key ARN or ID.
350367
:param redshift_temp_s3_path: AWS S3 path to write temporary data (e.g. s3://...)
368+
:param aurora_temp_s3_path: AWS S3 path to write temporary data (e.g. s3://...)
351369
"""
352370
self._profile_name: Optional[str] = profile_name
353371
self._aws_access_key_id: Optional[str] = aws_access_key_id
@@ -366,6 +384,7 @@ def __init__(self,
366384
self._athena_database: Optional[str] = athena_database
367385
self._athena_ctas_approach: bool = athena_ctas_approach
368386
self._redshift_temp_s3_path: Optional[str] = redshift_temp_s3_path
387+
self._aurora_temp_s3_path: Optional[str] = aurora_temp_s3_path
369388

370389
@property
371390
def profile_name(self):
@@ -435,6 +454,10 @@ def athena_ctas_approach(self) -> bool:
435454
def redshift_temp_s3_path(self) -> Optional[str]:
436455
return self._redshift_temp_s3_path
437456

457+
@property
458+
def aurora_temp_s3_path(self) -> Optional[str]:
459+
return self._aurora_temp_s3_path
460+
438461
@property
439462
def session(self):
440463
"""
@@ -456,4 +479,5 @@ def session(self):
456479
athena_kms_key=self._athena_kms_key,
457480
athena_database=self._athena_database,
458481
athena_ctas_approach=self._athena_ctas_approach,
459-
redshift_temp_s3_path=self._redshift_temp_s3_path)
482+
redshift_temp_s3_path=self._redshift_temp_s3_path,
483+
aurora_temp_s3_path=self._aurora_temp_s3_path)

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ botocore~=1.13.45
55
boto3~=1.10.45
66
s3fs~=0.4.0
77
tenacity~=6.0.0
8-
pg8000~=1.13.2
8+
pg8000~=1.13.2
9+
pymysql~=0.9.3

0 commit comments

Comments
 (0)