Skip to content

Commit 7708c80

Browse files
Release 2.15.1 (#1264)
* Prepare - Release 2.15.1 - Drop SPARQL * Add snyk workflow * Revert dropping sparql; add sparql extra * Update dependencies; add sparql extra * Upd layers docs; upd contributing guide * Fix contributing guide * Add check for sparql import * Update tox config * [skip ci] update neptune docs & tutorial Co-authored-by: Anton Kukushkin <[email protected]>
1 parent 5ef4ceb commit 7708c80

28 files changed

+451
-361
lines changed

.bumpversion.cfg

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 2.15.0
2+
current_version = 2.15.1
33
commit = False
44
tag = False
55
tag_name = {new_version}
@@ -16,6 +16,8 @@ tag_name = {new_version}
1616

1717
[bumpversion:file:docs/source/install.rst]
1818

19+
[bumpversion:file:docs/source/layers.rst]
20+
1921
[bumpversion:file:docs/source/what.rst]
2022

2123
[bumpversion:file:awswrangler/__metadata__.py]

.github/workflows/snyk.yml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Snyk
2+
on: workflow_dispatch
3+
jobs:
4+
security:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- uses: actions/checkout@master
8+
- name: Run Snyk to check for vulnerabilities
9+
uses: snyk/actions/python-3.8@master
10+
env:
11+
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
12+
with:
13+
args: --severity-threshold=high

CONTRIBUTING.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ or
104104

105105
* Install dependencies:
106106

107-
``poetry install --extras "sqlserver"``
107+
``poetry install --extras "sqlserver sparql"``
108108

109109
* Run the validation script:
110110

@@ -135,7 +135,7 @@ or
135135

136136
* Install dependencies:
137137

138-
``poetry install --extras "sqlserver"``
138+
``poetry install --extras "sqlserver sparql"``
139139

140140
* Go to the ``test_infra`` directory
141141

@@ -192,7 +192,7 @@ or
192192

193193
* Then run the command bellow to install all dependencies:
194194

195-
``poetry install --extras "sqlserver"``
195+
``poetry install --extras "sqlserver sparql"``
196196

197197
* Go to the ``test_infra`` directory
198198

CONTRIBUTING_COMMON_ERRORS.md

+3-3
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.15.0
17-
Uninstalling awswrangler-2.15.0:
18-
Successfully uninstalled awswrangler-2.15.0
16+
Found existing installation: awswrangler 2.15.1
17+
Uninstalling awswrangler-2.15.1:
18+
Successfully uninstalled awswrangler-2.15.1
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

+36-36
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Easy integration with Athena, Glue, Redshift, Timestream, OpenSearch, Neptune, Q
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.15.0-brightgreen.svg)](https://pypi.org/project/awswrangler/)
11+
[![Release](https://img.shields.io/badge/release-2.15.1-brightgreen.svg)](https://pypi.org/project/awswrangler/)
1212
[![Python Version](https://img.shields.io/badge/python-3.7%20%7C%203.7%20%7C%203.8%20%7C%203.10-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)
@@ -23,7 +23,7 @@ Easy integration with Athena, Glue, Redshift, Timestream, OpenSearch, Neptune, Q
2323
| **[PyPi](https://pypi.org/project/awswrangler/)** | [![PyPI Downloads](https://pepy.tech/badge/awswrangler)](https://pypi.org/project/awswrangler/) | `pip install awswrangler` |
2424
| **[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` |
2525

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

2929
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.15.0/install.html#emr-cluster), [Glue PySpark Job](https://aws-data-wrangler.readthedocs.io/en/2.15.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.15.1/install.html#emr-cluster), [Glue PySpark Job](https://aws-data-wrangler.readthedocs.io/en/2.15.1/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.15.0/what.html)
100-
- [**Install**](https://aws-data-wrangler.readthedocs.io/en/2.15.0/install.html)
101-
- [PyPi (pip)](https://aws-data-wrangler.readthedocs.io/en/2.15.0/install.html#pypi-pip)
102-
- [Conda](https://aws-data-wrangler.readthedocs.io/en/2.15.0/install.html#conda)
103-
- [AWS Lambda Layer](https://aws-data-wrangler.readthedocs.io/en/2.15.0/install.html#aws-lambda-layer)
104-
- [AWS Glue Python Shell Jobs](https://aws-data-wrangler.readthedocs.io/en/2.15.0/install.html#aws-glue-python-shell-jobs)
105-
- [AWS Glue PySpark Jobs](https://aws-data-wrangler.readthedocs.io/en/2.15.0/install.html#aws-glue-pyspark-jobs)
106-
- [Amazon SageMaker Notebook](https://aws-data-wrangler.readthedocs.io/en/2.15.0/install.html#amazon-sagemaker-notebook)
107-
- [Amazon SageMaker Notebook Lifecycle](https://aws-data-wrangler.readthedocs.io/en/2.15.0/install.html#amazon-sagemaker-notebook-lifecycle)
108-
- [EMR](https://aws-data-wrangler.readthedocs.io/en/2.15.0/install.html#emr)
109-
- [From source](https://aws-data-wrangler.readthedocs.io/en/2.15.0/install.html#from-source)
99+
- [**What is AWS Data Wrangler?**](https://aws-data-wrangler.readthedocs.io/en/2.15.1/what.html)
100+
- [**Install**](https://aws-data-wrangler.readthedocs.io/en/2.15.1/install.html)
101+
- [PyPi (pip)](https://aws-data-wrangler.readthedocs.io/en/2.15.1/install.html#pypi-pip)
102+
- [Conda](https://aws-data-wrangler.readthedocs.io/en/2.15.1/install.html#conda)
103+
- [AWS Lambda Layer](https://aws-data-wrangler.readthedocs.io/en/2.15.1/install.html#aws-lambda-layer)
104+
- [AWS Glue Python Shell Jobs](https://aws-data-wrangler.readthedocs.io/en/2.15.1/install.html#aws-glue-python-shell-jobs)
105+
- [AWS Glue PySpark Jobs](https://aws-data-wrangler.readthedocs.io/en/2.15.1/install.html#aws-glue-pyspark-jobs)
106+
- [Amazon SageMaker Notebook](https://aws-data-wrangler.readthedocs.io/en/2.15.1/install.html#amazon-sagemaker-notebook)
107+
- [Amazon SageMaker Notebook Lifecycle](https://aws-data-wrangler.readthedocs.io/en/2.15.1/install.html#amazon-sagemaker-notebook-lifecycle)
108+
- [EMR](https://aws-data-wrangler.readthedocs.io/en/2.15.1/install.html#emr)
109+
- [From source](https://aws-data-wrangler.readthedocs.io/en/2.15.1/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)
@@ -141,28 +141,28 @@ FROM "sampleDB"."sampleTable" ORDER BY time DESC LIMIT 3
141141
- [031 - OpenSearch](https://github.com/awslabs/aws-data-wrangler/blob/main/tutorials/031%20-%20OpenSearch.ipynb)
142142
- [032 - Lake Formation Governed Tables](https://github.com/awslabs/aws-data-wrangler/blob/main/tutorials/032%20-%20Lake%20Formation%20Governed%20Tables.ipynb)
143143
- [033 - Amazon Neptune](https://github.com/awslabs/aws-data-wrangler/blob/main/tutorials/033%20-%20Amazon%20Neptune.ipynb)
144-
- [**API Reference**](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html)
145-
- [Amazon S3](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#amazon-s3)
146-
- [AWS Glue Catalog](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#aws-glue-catalog)
147-
- [Amazon Athena](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#amazon-athena)
148-
- [AWS Lake Formation](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#aws-lake-formation)
149-
- [Amazon Redshift](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#amazon-redshift)
150-
- [PostgreSQL](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#postgresql)
151-
- [MySQL](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#mysql)
152-
- [SQL Server](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#sqlserver)
153-
- [Data API Redshift](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#data-api-redshift)
154-
- [Data API RDS](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#data-api-rds)
155-
- [OpenSearch](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#opensearch)
156-
- [Amazon Neptune](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#amazon-neptune)
157-
- [DynamoDB](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#dynamodb)
158-
- [Amazon Timestream](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#amazon-timestream)
159-
- [Amazon EMR](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#amazon-emr)
160-
- [Amazon CloudWatch Logs](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#amazon-cloudwatch-logs)
161-
- [Amazon Chime](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#amazon-chime)
162-
- [Amazon QuickSight](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#amazon-quicksight)
163-
- [AWS STS](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#aws-sts)
164-
- [AWS Secrets Manager](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#aws-secrets-manager)
165-
- [Global Configurations](https://aws-data-wrangler.readthedocs.io/en/2.15.0/api.html#global-configurations)
144+
- [**API Reference**](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html)
145+
- [Amazon S3](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#amazon-s3)
146+
- [AWS Glue Catalog](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#aws-glue-catalog)
147+
- [Amazon Athena](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#amazon-athena)
148+
- [AWS Lake Formation](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#aws-lake-formation)
149+
- [Amazon Redshift](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#amazon-redshift)
150+
- [PostgreSQL](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#postgresql)
151+
- [MySQL](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#mysql)
152+
- [SQL Server](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#sqlserver)
153+
- [Data API Redshift](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#data-api-redshift)
154+
- [Data API RDS](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#data-api-rds)
155+
- [OpenSearch](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#opensearch)
156+
- [Amazon Neptune](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#amazon-neptune)
157+
- [DynamoDB](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#dynamodb)
158+
- [Amazon Timestream](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#amazon-timestream)
159+
- [Amazon EMR](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#amazon-emr)
160+
- [Amazon CloudWatch Logs](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#amazon-cloudwatch-logs)
161+
- [Amazon Chime](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#amazon-chime)
162+
- [Amazon QuickSight](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#amazon-quicksight)
163+
- [AWS STS](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#aws-sts)
164+
- [AWS Secrets Manager](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#aws-secrets-manager)
165+
- [Global Configurations](https://aws-data-wrangler.readthedocs.io/en/2.15.1/api.html#global-configurations)
166166
- [**License**](https://github.com/awslabs/aws-data-wrangler/blob/main/LICENSE.txt)
167167
- [**Contributing**](https://github.com/awslabs/aws-data-wrangler/blob/main/CONTRIBUTING.md)
168168
- [**Legacy Docs** (pre-1.0.0)](https://aws-data-wrangler.readthedocs.io/en/0.3.3/)

awswrangler/__metadata__.py

+1-1
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.15.0"
10+
__version__: str = "2.15.1"
1111
__license__: str = "Apache License 2.0"

awswrangler/athena/_read.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -591,11 +591,11 @@ def read_sql_query(
591591
592592
**Related tutorial:**
593593
594-
- `Amazon Athena <https://aws-data-wrangler.readthedocs.io/en/2.15.0/
594+
- `Amazon Athena <https://aws-data-wrangler.readthedocs.io/en/2.15.1/
595595
tutorials/006%20-%20Amazon%20Athena.html>`_
596-
- `Athena Cache <https://aws-data-wrangler.readthedocs.io/en/2.15.0/
596+
- `Athena Cache <https://aws-data-wrangler.readthedocs.io/en/2.15.1/
597597
tutorials/019%20-%20Athena%20Cache.html>`_
598-
- `Global Configurations <https://aws-data-wrangler.readthedocs.io/en/2.15.0/
598+
- `Global Configurations <https://aws-data-wrangler.readthedocs.io/en/2.15.1/
599599
tutorials/021%20-%20Global%20Configurations.html>`_
600600
601601
**There are three approaches available through ctas_approach and unload_approach parameters:**
@@ -660,7 +660,7 @@ def read_sql_query(
660660
/athena.html#Athena.Client.get_query_execution>`_ .
661661
662662
For a practical example check out the
663-
`related tutorial <https://aws-data-wrangler.readthedocs.io/en/2.15.0/
663+
`related tutorial <https://aws-data-wrangler.readthedocs.io/en/2.15.1/
664664
tutorials/024%20-%20Athena%20Query%20Metadata.html>`_!
665665
666666
@@ -904,11 +904,11 @@ def read_sql_table(
904904
905905
**Related tutorial:**
906906
907-
- `Amazon Athena <https://aws-data-wrangler.readthedocs.io/en/2.15.0/
907+
- `Amazon Athena <https://aws-data-wrangler.readthedocs.io/en/2.15.1/
908908
tutorials/006%20-%20Amazon%20Athena.html>`_
909-
- `Athena Cache <https://aws-data-wrangler.readthedocs.io/en/2.15.0/
909+
- `Athena Cache <https://aws-data-wrangler.readthedocs.io/en/2.15.1/
910910
tutorials/019%20-%20Athena%20Cache.html>`_
911-
- `Global Configurations <https://aws-data-wrangler.readthedocs.io/en/2.15.0/
911+
- `Global Configurations <https://aws-data-wrangler.readthedocs.io/en/2.15.1/
912912
tutorials/021%20-%20Global%20Configurations.html>`_
913913
914914
**There are two approaches to be defined through ctas_approach parameter:**
@@ -953,7 +953,7 @@ def read_sql_table(
953953
/athena.html#Athena.Client.get_query_execution>`_ .
954954
955955
For a practical example check out the
956-
`related tutorial <https://aws-data-wrangler.readthedocs.io/en/2.15.0/
956+
`related tutorial <https://aws-data-wrangler.readthedocs.io/en/2.15.1/
957957
tutorials/024%20-%20Athena%20Query%20Metadata.html>`_!
958958
959959

awswrangler/neptune/client.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Amazon NeptuneClient Module."""
22

3+
import importlib.util
34
import logging
45
from typing import Any, Dict, List, Optional
56

@@ -8,13 +9,17 @@
89
from botocore.auth import SigV4Auth
910
from botocore.awsrequest import AWSRequest
1011
from gremlin_python.driver import client
11-
from SPARQLWrapper import SPARQLWrapper
1212

1313
from awswrangler import exceptions
1414
from awswrangler.neptune.gremlin_parser import GremlinParser
1515

16+
_SPARQLWrapper_found = importlib.util.find_spec("SPARQLWrapper")
17+
if _SPARQLWrapper_found:
18+
from SPARQLWrapper import SPARQLWrapper # pylint: disable=import-error
19+
1620
_logger: logging.Logger = logging.getLogger(__name__)
1721

22+
1823
DEFAULT_PORT = 8182
1924
NEPTUNE_SERVICE_NAME = "neptune-db"
2025
HTTP_PROTOCOL = "https"

awswrangler/neptune/neptune.py

+23-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
"""Amazon Neptune Module."""
22

3+
import importlib.util
4+
import inspect
35
import logging
46
import re
5-
from typing import Any
7+
from typing import Any, Callable, TypeVar
68

79
import pandas as pd
810
from gremlin_python.process.graph_traversal import GraphTraversalSource, __
@@ -13,7 +15,25 @@
1315
from awswrangler import exceptions
1416
from awswrangler.neptune.client import NeptuneClient
1517

18+
_SPARQLWrapper_found = importlib.util.find_spec("SPARQLWrapper")
19+
1620
_logger: logging.Logger = logging.getLogger(__name__)
21+
FuncT = TypeVar("FuncT", bound=Callable[..., Any])
22+
23+
24+
def _check_for_sparqlwrapper(func: FuncT) -> FuncT:
25+
def inner(*args: Any, **kwargs: Any) -> Any:
26+
if not _SPARQLWrapper_found:
27+
raise ModuleNotFoundError(
28+
"You need to install SPARQLWrapper respectively the "
29+
"AWS Data Wrangler package with the `sparql` extra for being able to use SPARQL "
30+
)
31+
return func(*args, **kwargs)
32+
33+
inner.__doc__ = func.__doc__
34+
inner.__name__ = func.__name__
35+
inner.__setattr__("__signature__", inspect.signature(func)) # pylint: disable=no-member
36+
return inner # type: ignore
1737

1838

1939
def execute_gremlin(client: NeptuneClient, query: str) -> pd.DataFrame:
@@ -72,6 +92,7 @@ def execute_opencypher(client: NeptuneClient, query: str) -> pd.DataFrame:
7292
return df
7393

7494

95+
@_check_for_sparqlwrapper
7596
def execute_sparql(client: NeptuneClient, query: str) -> pd.DataFrame:
7697
"""Return results of a SPARQL query as pandas dataframe.
7798
@@ -185,6 +206,7 @@ def to_property_graph(
185206
return _run_gremlin_insert(client, g)
186207

187208

209+
@_check_for_sparqlwrapper
188210
def to_rdf_graph(
189211
client: NeptuneClient,
190212
df: pd.DataFrame,

awswrangler/s3/_read_parquet.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -849,7 +849,7 @@ def read_parquet_table(
849849
This function MUST return a bool, True to read the partition or False to ignore it.
850850
Ignored if `dataset=False`.
851851
E.g ``lambda x: True if x["year"] == "2020" and x["month"] == "1" else False``
852-
https://aws-data-wrangler.readthedocs.io/en/2.15.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
852+
https://aws-data-wrangler.readthedocs.io/en/2.15.1/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
853853
columns : List[str], optional
854854
Names of columns to read from the file(s).
855855
validate_schema:

awswrangler/s3/_read_text.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ def read_csv(
241241
This function MUST return a bool, True to read the partition or False to ignore it.
242242
Ignored if `dataset=False`.
243243
E.g ``lambda x: True if x["year"] == "2020" and x["month"] == "1" else False``
244-
https://aws-data-wrangler.readthedocs.io/en/2.15.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
244+
https://aws-data-wrangler.readthedocs.io/en/2.15.1/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
245245
pandas_kwargs :
246246
KEYWORD arguments forwarded to pandas.read_csv(). You can NOT pass `pandas_kwargs` explicit, just add valid
247247
Pandas arguments in the function call and Wrangler will accept it.
@@ -389,7 +389,7 @@ def read_fwf(
389389
This function MUST return a bool, True to read the partition or False to ignore it.
390390
Ignored if `dataset=False`.
391391
E.g ``lambda x: True if x["year"] == "2020" and x["month"] == "1" else False``
392-
https://aws-data-wrangler.readthedocs.io/en/2.15.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
392+
https://aws-data-wrangler.readthedocs.io/en/2.15.1/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
393393
pandas_kwargs:
394394
KEYWORD arguments forwarded to pandas.read_fwf(). You can NOT pass `pandas_kwargs` explicit, just add valid
395395
Pandas arguments in the function call and Wrangler will accept it.
@@ -541,7 +541,7 @@ def read_json(
541541
This function MUST return a bool, True to read the partition or False to ignore it.
542542
Ignored if `dataset=False`.
543543
E.g ``lambda x: True if x["year"] == "2020" and x["month"] == "1" else False``
544-
https://aws-data-wrangler.readthedocs.io/en/2.15.0/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
544+
https://aws-data-wrangler.readthedocs.io/en/2.15.1/tutorials/023%20-%20Flexible%20Partitions%20Filter.html
545545
pandas_kwargs:
546546
KEYWORD arguments forwarded to pandas.read_json(). You can NOT pass `pandas_kwargs` explicit, just add valid
547547
Pandas arguments in the function call and Wrangler will accept it.

0 commit comments

Comments
 (0)