diff --git a/daft/filesystem.py b/daft/filesystem.py index 199441296a..06a8ee60e9 100644 --- a/daft/filesystem.py +++ b/daft/filesystem.py @@ -221,6 +221,13 @@ def _set_if_not_none(kwargs: dict[str, Any], key: str, val: Any | None): _set_if_not_none(translated_kwargs, "session_token", s3_config.session_token) _set_if_not_none(translated_kwargs, "region", s3_config.region_name) _set_if_not_none(translated_kwargs, "anonymous", s3_config.anonymous) + if s3_config.num_tries is not None: + try: + from pyarrow.fs import AwsStandardS3RetryStrategy + + translated_kwargs["retry_strategy"] = AwsStandardS3RetryStrategy(max_attempts=s3_config.num_tries) + except ImportError: + pass # Config does not exist in pyarrow 7.0.0 resolved_filesystem = S3FileSystem(**translated_kwargs) resolved_path = resolved_filesystem.normalize_path(_unwrap_protocol(path))