Skip to content

Commit b13fcd8

Browse files
authored
Preparing release 2.8.0 (#703)
1 parent 124fa59 commit b13fcd8

23 files changed

+132
-95
lines changed

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 2.7.0
2+
current_version = 2.8.0
33
commit = False
44
tag = False
55
tag_name = {new_version}

CONTRIBUTING_COMMON_ERRORS.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ Requirement already satisfied: pbr!=2.1.0,>=2.0.0 in ./.venv/lib/python3.7/site-
1313
Using legacy 'setup.py install' for python-Levenshtein, since package 'wheel' is not installed.
1414
Installing collected packages: awswrangler, python-Levenshtein
1515
Attempting uninstall: awswrangler
16-
Found existing installation: awswrangler 2.7.0
17-
Uninstalling awswrangler-2.7.0:
18-
Successfully uninstalled awswrangler-2.7.0
16+
Found existing installation: awswrangler 2.8.0
17+
Uninstalling awswrangler-2.8.0:
18+
Successfully uninstalled awswrangler-2.8.0
1919
Running setup.py develop for awswrangler
2020
Running setup.py install for python-Levenshtein ... error
2121
ERROR: Command errored out with exit status 1:

README.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Easy integration with Athena, Glue, Redshift, Timestream, QuickSight, Chime, Clo
88

99
> An [AWS Professional Service](https://aws.amazon.com/professional-services/) open source initiative | [email protected]
1010
11-
[![Release](https://img.shields.io/badge/release-2.7.0-brightgreen.svg)](https://pypi.org/project/awswrangler/)
11+
[![Release](https://img.shields.io/badge/release-2.8.0-brightgreen.svg)](https://pypi.org/project/awswrangler/)
1212
[![Python Version](https://img.shields.io/badge/python-3.6%20%7C%203.7%20%7C%203.8%20%7C%203.9-brightgreen.svg)](https://anaconda.org/conda-forge/awswrangler)
1313
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
1414
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
@@ -24,7 +24,7 @@ Easy integration with Athena, Glue, Redshift, Timestream, QuickSight, Chime, Clo
2424
| **[PyPi](https://pypi.org/project/awswrangler/)** | [![PyPI Downloads](https://pepy.tech/badge/awswrangler)](https://pypi.org/project/awswrangler/) | `pip install awswrangler` |
2525
| **[Conda](https://anaconda.org/conda-forge/awswrangler)** | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/awswrangler.svg)](https://anaconda.org/conda-forge/awswrangler) | `conda install -c conda-forge awswrangler` |
2626

27-
> ⚠️ **For platforms without PyArrow 3 support (e.g. [EMR](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#emr-cluster), [Glue PySpark Job](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#aws-glue-pyspark-jobs), MWAA):**<br>
27+
> ⚠️ **For platforms without PyArrow 3 support (e.g. [EMR](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#emr-cluster), [Glue PySpark Job](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#aws-glue-pyspark-jobs), MWAA):**<br>
2828
➡️ `pip install pyarrow==2 awswrangler`
2929

3030
Powered By [<img src="https://arrow.apache.org/img/arrow.png" width="200">](https://arrow.apache.org/powered_by/)
@@ -42,7 +42,7 @@ Powered By [<img src="https://arrow.apache.org/img/arrow.png" width="200">](http
4242

4343
Installation command: `pip install awswrangler`
4444

45-
> ⚠️ **For platforms without PyArrow 3 support (e.g. [EMR](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#emr-cluster), [Glue PySpark Job](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#aws-glue-pyspark-jobs), MWAA):**<br>
45+
> ⚠️ **For platforms without PyArrow 3 support (e.g. [EMR](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#emr-cluster), [Glue PySpark Job](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#aws-glue-pyspark-jobs), MWAA):**<br>
4646
➡️`pip install pyarrow==2 awswrangler`
4747

4848
```py3
@@ -96,17 +96,17 @@ FROM "sampleDB"."sampleTable" ORDER BY time DESC LIMIT 3
9696

9797
## [Read The Docs](https://aws-data-wrangler.readthedocs.io/)
9898

99-
- [**What is AWS Data Wrangler?**](https://aws-data-wrangler.readthedocs.io/en/2.7.0/what.html)
100-
- [**Install**](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html)
101-
- [PyPi (pip)](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#pypi-pip)
102-
- [Conda](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#conda)
103-
- [AWS Lambda Layer](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#aws-lambda-layer)
104-
- [AWS Glue Python Shell Jobs](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#aws-glue-python-shell-jobs)
105-
- [AWS Glue PySpark Jobs](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#aws-glue-pyspark-jobs)
106-
- [Amazon SageMaker Notebook](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#amazon-sagemaker-notebook)
107-
- [Amazon SageMaker Notebook Lifecycle](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#amazon-sagemaker-notebook-lifecycle)
108-
- [EMR](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#emr)
109-
- [From source](https://aws-data-wrangler.readthedocs.io/en/2.7.0/install.html#from-source)
99+
- [**What is AWS Data Wrangler?**](https://aws-data-wrangler.readthedocs.io/en/2.8.0/what.html)
100+
- [**Install**](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html)
101+
- [PyPi (pip)](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#pypi-pip)
102+
- [Conda](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#conda)
103+
- [AWS Lambda Layer](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#aws-lambda-layer)
104+
- [AWS Glue Python Shell Jobs](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#aws-glue-python-shell-jobs)
105+
- [AWS Glue PySpark Jobs](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#aws-glue-pyspark-jobs)
106+
- [Amazon SageMaker Notebook](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#amazon-sagemaker-notebook)
107+
- [Amazon SageMaker Notebook Lifecycle](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#amazon-sagemaker-notebook-lifecycle)
108+
- [EMR](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#emr)
109+
- [From source](https://aws-data-wrangler.readthedocs.io/en/2.8.0/install.html#from-source)
110110
- [**Tutorials**](https://github.com/awslabs/aws-data-wrangler/tree/main/tutorials)
111111
- [001 - Introduction](https://github.com/awslabs/aws-data-wrangler/blob/main/tutorials/001%20-%20Introduction.ipynb)
112112
- [002 - Sessions](https://github.com/awslabs/aws-data-wrangler/blob/main/tutorials/002%20-%20Sessions.ipynb)
@@ -136,22 +136,22 @@ FROM "sampleDB"."sampleTable" ORDER BY time DESC LIMIT 3
136136
- [026 - Amazon Timestream](https://github.com/awslabs/aws-data-wrangler/blob/main/tutorials/026%20-%20Amazon%20Timestream.ipynb)
137137
- [027 - Amazon Timestream 2](https://github.com/awslabs/aws-data-wrangler/blob/main/tutorials/027%20-%20Amazon%20Timestream%202.ipynb)
138138
- [028 - Amazon DynamoDB](https://github.com/awslabs/aws-data-wrangler/blob/main/tutorials/028%20-%20DynamoDB.ipynb)
139-
- [**API Reference**](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html)
140-
- [Amazon S3](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#amazon-s3)
141-
- [AWS Glue Catalog](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#aws-glue-catalog)
142-
- [Amazon Athena](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#amazon-athena)
143-
- [Amazon Redshift](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#amazon-redshift)
144-
- [PostgreSQL](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#postgresql)
145-
- [MySQL](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#mysql)
146-
- [SQL Server](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#sqlserver)
147-
- [DynamoDB](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#dynamodb)
148-
- [Amazon Timestream](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#amazon-timestream)
149-
- [Amazon EMR](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#amazon-emr)
150-
- [Amazon CloudWatch Logs](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#amazon-cloudwatch-logs)
151-
- [Amazon Chime](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#amazon-chime)
152-
- [Amazon QuickSight](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#amazon-quicksight)
153-
- [AWS STS](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#aws-sts)
154-
- [AWS Secrets Manager](https://aws-data-wrangler.readthedocs.io/en/2.7.0/api.html#aws-secrets-manager)
139+
- [**API Reference**](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html)
140+
- [Amazon S3](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#amazon-s3)
141+
- [AWS Glue Catalog](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#aws-glue-catalog)
142+
- [Amazon Athena](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#amazon-athena)
143+
- [Amazon Redshift](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#amazon-redshift)
144+
- [PostgreSQL](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#postgresql)
145+
- [MySQL](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#mysql)
146+
- [SQL Server](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#sqlserver)
147+
- [DynamoDB](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#dynamodb)
148+
- [Amazon Timestream](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#amazon-timestream)
149+
- [Amazon EMR](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#amazon-emr)
150+
- [Amazon CloudWatch Logs](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#amazon-cloudwatch-logs)
151+
- [Amazon Chime](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#amazon-chime)
152+
- [Amazon QuickSight](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#amazon-quicksight)
153+
- [AWS STS](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#aws-sts)
154+
- [AWS Secrets Manager](https://aws-data-wrangler.readthedocs.io/en/2.8.0/api.html#aws-secrets-manager)
155155
- [**License**](https://github.com/awslabs/aws-data-wrangler/blob/main/LICENSE.txt)
156156
- [**Contributing**](https://github.com/awslabs/aws-data-wrangler/blob/main/CONTRIBUTING.md)
157157
- [**Legacy Docs** (pre-1.0.0)](https://aws-data-wrangler.readthedocs.io/en/0.3.3/)

awswrangler/__metadata__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77

88
__title__: str = "awswrangler"
99
__description__: str = "Pandas on AWS."
10-
__version__: str = "2.7.0"
10+
__version__: str = "2.8.0"
1111
__license__: str = "Apache License 2.0"

awswrangler/athena/_read.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -605,11 +605,11 @@ def read_sql_query(
605605
606606
**Related tutorial:**
607607
608-
- `Amazon Athena <https://aws-data-wrangler.readthedocs.io/en/2.7.0/
608+
- `Amazon Athena <https://aws-data-wrangler.readthedocs.io/en/2.8.0/
609609
tutorials/006%20-%20Amazon%20Athena.html>`_
610-
- `Athena Cache <https://aws-data-wrangler.readthedocs.io/en/2.7.0/
610+
- `Athena Cache <https://aws-data-wrangler.readthedocs.io/en/2.8.0/
611611
tutorials/019%20-%20Athena%20Cache.html>`_
612-
- `Global Configurations <https://aws-data-wrangler.readthedocs.io/en/2.7.0/
612+
- `Global Configurations <https://aws-data-wrangler.readthedocs.io/en/2.8.0/
613613
tutorials/021%20-%20Global%20Configurations.html>`_
614614
615615
**There are two approaches to be defined through ctas_approach parameter:**
@@ -657,7 +657,7 @@ def read_sql_query(
657657
/athena.html#Athena.Client.get_query_execution>`_ .
658658
659659
For a practical example check out the
660-
`related tutorial <https://aws-data-wrangler.readthedocs.io/en/2.7.0/
660+
`related tutorial <https://aws-data-wrangler.readthedocs.io/en/2.8.0/
661661
tutorials/024%20-%20Athena%20Query%20Metadata.html>`_!
662662
663663
@@ -799,8 +799,7 @@ def read_sql_query(
799799
for key, value in params.items():
800800
sql = sql.replace(f":{key};", str(value))
801801

802-
if max_remote_cache_entries > max_local_cache_entries:
803-
max_remote_cache_entries = max_local_cache_entries
802+
max_remote_cache_entries = min(max_remote_cache_entries, max_local_cache_entries)
804803

805804
_cache_manager.max_cache_size = max_local_cache_entries
806805
cache_info: _CacheInfo = _check_for_cached_results(
@@ -873,11 +872,11 @@ def read_sql_table(
873872
874873
**Related tutorial:**
875874
876-
- `Amazon Athena <https://aws-data-wrangler.readthedocs.io/en/2.7.0/
875+
- `Amazon Athena <https://aws-data-wrangler.readthedocs.io/en/2.8.0/
877876
tutorials/006%20-%20Amazon%20Athena.html>`_
878-
- `Athena Cache <https://aws-data-wrangler.readthedocs.io/en/2.7.0/
877+
- `Athena Cache <https://aws-data-wrangler.readthedocs.io/en/2.8.0/
879878
tutorials/019%20-%20Athena%20Cache.html>`_
880-
- `Global Configurations <https://aws-data-wrangler.readthedocs.io/en/2.7.0/
879+
- `Global Configurations <https://aws-data-wrangler.readthedocs.io/en/2.8.0/
881880
tutorials/021%20-%20Global%20Configurations.html>`_
882881
883882
**There are two approaches to be defined through ctas_approach parameter:**
@@ -922,7 +921,7 @@ def read_sql_table(
922921
/athena.html#Athena.Client.get_query_execution>`_ .
923922
924923
For a practical example check out the
925-
`related tutorial <https://aws-data-wrangler.readthedocs.io/en/2.7.0/
924+
`related tutorial <https://aws-data-wrangler.readthedocs.io/en/2.8.0/
926925
tutorials/024%20-%20Athena%20Query%20Metadata.html>`_!
927926
928927

awswrangler/chime.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def post_message(webhook: str, message: str) -> Optional[Any]:
2929
chime_message = {"Content": "Message: %s" % (message)}
3030
req = Request(webhook, json.dumps(chime_message).encode("utf-8"))
3131
try:
32-
response = urlopen(req)
32+
response = urlopen(req) # pylint: disable=R1732
3333
_logger.info("Message posted on Chime. Got respone as %s", response.read())
3434
except HTTPError as e:
3535
_logger.exception("Request failed: %d %s", e.code, e.reason)

awswrangler/s3/_fs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def __init__(self, use_threads: Union[bool, int]):
129129
self._results: List[Dict[str, Union[str, int]]] = []
130130
self._cpus: int = _utils.ensure_cpu_count(use_threads=use_threads)
131131
if self._cpus > 1:
132-
self._exec = concurrent.futures.ThreadPoolExecutor(max_workers=self._cpus)
132+
self._exec = concurrent.futures.ThreadPoolExecutor(max_workers=self._cpus) # pylint: disable=R1732
133133
self._futures: List[Any] = []
134134
else:
135135
self._exec = None

awswrangler/s3/_read_parquet.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,7 @@ def read_parquet_table(
748748
This function MUST return a bool, True to read the partition or False to ignore it.
749749
Ignored if `dataset=False`.
750750
E.g ``lambda x: True if x["year"] == "2020" and x["month"] == "1" else False``
751-
https://aws-data-wrangler.readthedocs.io/en/2.7.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
751+
https://aws-data-wrangler.readthedocs.io/en/2.8.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
752752
columns : List[str], optional
753753
Names of columns to read from the file(s).
754754
validate_schema:

awswrangler/s3/_read_text.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ def read_csv(
224224
This function MUST return a bool, True to read the partition or False to ignore it.
225225
Ignored if `dataset=False`.
226226
E.g ``lambda x: True if x["year"] == "2020" and x["month"] == "1" else False``
227-
https://aws-data-wrangler.readthedocs.io/en/2.7.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
227+
https://aws-data-wrangler.readthedocs.io/en/2.8.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
228228
pandas_kwargs :
229229
KEYWORD arguments forwarded to pandas.read_csv(). You can NOT pass `pandas_kwargs` explicit, just add valid
230230
Pandas arguments in the function call and Wrangler will accept it.
@@ -367,7 +367,7 @@ def read_fwf(
367367
This function MUST return a bool, True to read the partition or False to ignore it.
368368
Ignored if `dataset=False`.
369369
E.g ``lambda x: True if x["year"] == "2020" and x["month"] == "1" else False``
370-
https://aws-data-wrangler.readthedocs.io/en/2.7.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
370+
https://aws-data-wrangler.readthedocs.io/en/2.8.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
371371
pandas_kwargs:
372372
KEYWORD arguments forwarded to pandas.read_fwf(). You can NOT pass `pandas_kwargs` explicit, just add valid
373373
Pandas arguments in the function call and Wrangler will accept it.
@@ -514,7 +514,7 @@ def read_json(
514514
This function MUST return a bool, True to read the partition or False to ignore it.
515515
Ignored if `dataset=False`.
516516
E.g ``lambda x: True if x["year"] == "2020" and x["month"] == "1" else False``
517-
https://aws-data-wrangler.readthedocs.io/en/2.7.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
517+
https://aws-data-wrangler.readthedocs.io/en/2.8.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
518518
pandas_kwargs:
519519
KEYWORD arguments forwarded to pandas.read_json(). You can NOT pass `pandas_kwargs` explicit, just add valid
520520
Pandas arguments in the function call and Wrangler will accept it.

awswrangler/s3/_write_concurrent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def __init__(self, use_threads: bool):
1818
self._results: List[str] = []
1919
self._cpus: int = _utils.ensure_cpu_count(use_threads=use_threads)
2020
if self._cpus > 1:
21-
self._exec = concurrent.futures.ThreadPoolExecutor(max_workers=self._cpus)
21+
self._exec = concurrent.futures.ThreadPoolExecutor(max_workers=self._cpus) # pylint: disable=R1732
2222
self._futures: List[Any] = []
2323
else:
2424
self._exec = None

0 commit comments

Comments
 (0)