From fd77d9649efb83351f57b3156d502f7822458e33 Mon Sep 17 00:00:00 2001 From: Jay Qi Date: Sat, 27 Jan 2024 20:52:35 -0500 Subject: [PATCH 1/6] Update to 2024 black style --- cloudpathlib/cloudpath.py | 34 ++++++++++++---------------- requirements-dev.txt | 2 +- setup.cfg | 2 +- tests/mock_clients/mock_azureblob.py | 6 ++--- tests/mock_clients/mock_s3.py | 8 ++++--- 5 files changed, 24 insertions(+), 28 deletions(-) diff --git a/cloudpathlib/cloudpath.py b/cloudpathlib/cloudpath.py index 01dc8205..6a12a21f 100644 --- a/cloudpathlib/cloudpath.py +++ b/cloudpathlib/cloudpath.py @@ -129,14 +129,14 @@ def decorator(cls: Type[CloudPathT]) -> Type[CloudPathT]: class CloudPathMeta(abc.ABCMeta): @overload - def __call__(cls: Type[T], cloud_path: CloudPathT, *args: Any, **kwargs: Any) -> CloudPathT: - ... + def __call__( + cls: Type[T], cloud_path: CloudPathT, *args: Any, **kwargs: Any + ) -> CloudPathT: ... @overload def __call__( cls: Type[T], cloud_path: Union[str, "CloudPath"], *args: Any, **kwargs: Any - ) -> T: - ... + ) -> T: ... def __call__( cls: Type[T], cloud_path: Union[str, CloudPathT], *args: Any, **kwargs: Any @@ -274,13 +274,13 @@ def _no_prefix_no_drive(self) -> str: @overload @classmethod - def is_valid_cloudpath(cls, path: "CloudPath", raise_on_error: bool = ...) -> TypeGuard[Self]: - ... + def is_valid_cloudpath( + cls, path: "CloudPath", raise_on_error: bool = ... + ) -> TypeGuard[Self]: ... @overload @classmethod - def is_valid_cloudpath(cls, path: str, raise_on_error: bool = ...) -> bool: - ... + def is_valid_cloudpath(cls, path: str, raise_on_error: bool = ...) -> bool: ... @classmethod def is_valid_cloudpath( @@ -940,24 +940,21 @@ def copy( self, destination: Self, force_overwrite_to_cloud: bool = False, - ) -> Self: - ... + ) -> Self: ... @overload def copy( self, destination: Path, force_overwrite_to_cloud: bool = False, - ) -> Path: - ... + ) -> Path: ... @overload def copy( self, destination: str, force_overwrite_to_cloud: bool = False, - ) -> Union[Path, "CloudPath"]: - ... + ) -> Union[Path, "CloudPath"]: ... def copy(self, destination, force_overwrite_to_cloud=False): """Copy self to destination folder of file, if self is a file.""" @@ -1007,8 +1004,7 @@ def copytree( destination: Self, force_overwrite_to_cloud: bool = False, ignore: Optional[Callable[[str, Iterable[str]], Container[str]]] = None, - ) -> Self: - ... + ) -> Self: ... @overload def copytree( @@ -1016,8 +1012,7 @@ def copytree( destination: Path, force_overwrite_to_cloud: bool = False, ignore: Optional[Callable[[str, Iterable[str]], Container[str]]] = None, - ) -> Path: - ... + ) -> Path: ... @overload def copytree( @@ -1025,8 +1020,7 @@ def copytree( destination: str, force_overwrite_to_cloud: bool = False, ignore: Optional[Callable[[str, Iterable[str]], Container[str]]] = None, - ) -> Union[Path, "CloudPath"]: - ... + ) -> Union[Path, "CloudPath"]: ... def copytree(self, destination, force_overwrite_to_cloud=False, ignore=None): """Copy self to a directory, if self is a directory.""" diff --git a/requirements-dev.txt b/requirements-dev.txt index ade42b38..f9b20d14 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,6 +1,6 @@ -e .[all] -black[jupyter] +black[jupyter]>=24.1.0 build flake8 ipytest diff --git a/setup.cfg b/setup.cfg index 46fa9c4e..0e0037e2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [flake8] -ignore = E731,E266,E501,C901,W503,E203 +ignore = E731,E266,E501,C901,W503,E203,E704 max-line-length = 99 exclude = .git, diff --git a/tests/mock_clients/mock_azureblob.py b/tests/mock_clients/mock_azureblob.py index 198badae..689da039 100644 --- a/tests/mock_clients/mock_azureblob.py +++ b/tests/mock_clients/mock_azureblob.py @@ -96,9 +96,9 @@ def upload_blob(self, data, overwrite, content_settings=None): path.write_bytes(data) if content_settings is not None: - self.service_client.metadata_cache[ - self.root / self.key - ] = content_settings.content_type + self.service_client.metadata_cache[self.root / self.key] = ( + content_settings.content_type + ) class MockStorageStreamDownloader: diff --git a/tests/mock_clients/mock_s3.py b/tests/mock_clients/mock_s3.py index 5476989d..fc1ede18 100644 --- a/tests/mock_clients/mock_s3.py +++ b/tests/mock_clients/mock_s3.py @@ -259,9 +259,11 @@ def paginate(self, Bucket=None, Prefix="", Delimiter=None): files = [ { "Key": str(_.relative_to(self.root).as_posix()), - "Size": 123 - if not _.relative_to(self.root).exists() - else _.relative_to(self.root).stat().st_size, + "Size": ( + 123 + if not _.relative_to(self.root).exists() + else _.relative_to(self.root).stat().st_size + ), } for _ in page if _.is_file() From a6b7600f1805fdd907c7386fae20f79365c3bfa9 Mon Sep 17 00:00:00 2001 From: Jay Qi Date: Sat, 27 Jan 2024 20:59:06 -0500 Subject: [PATCH 2/6] Skip black for Python 3.7 --- requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index f9b20d14..eabee568 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,6 +1,6 @@ -e .[all] -black[jupyter]>=24.1.0 +black[jupyter]>=24.1.0;python_version>='3.8' build flake8 ipytest From 4fe1713210f105722dd2a5291372f8a652cf0c5d Mon Sep 17 00:00:00 2001 From: Jay Qi Date: Sat, 27 Jan 2024 21:01:03 -0500 Subject: [PATCH 3/6] Use official pytest-cases again --- requirements-dev.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index eabee568..a412f63c 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -20,8 +20,7 @@ pillow psutil pydantic pytest -# pytest-cases -git+https://github.com/jayqi/python-pytest-cases@packaging-version +pytest-cases>=3.7.0 pytest-cov pytest-xdist python-dotenv From aacbb5d0440b924929e21a09b6c3082e100556f0 Mon Sep 17 00:00:00 2001 From: Jay Qi Date: Sat, 27 Jan 2024 21:14:59 -0500 Subject: [PATCH 4/6] Remove superfluous parentheses from @fixture decorator --- tests/conftest.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 76c4bad5..8dae6da9 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -47,7 +47,7 @@ ] -@fixture() +@fixture def assets_dir() -> Path: """Path to test assets directory.""" return Path(__file__).parent / "assets" @@ -108,7 +108,7 @@ def create_test_dir_name(request) -> str: return test_dir -@fixture() +@fixture def azure_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_AZURE_CONTAINER", DEFAULT_CONTAINER_NAME) test_dir = create_test_dir_name(request) @@ -159,7 +159,7 @@ def azure_rig(request, monkeypatch, assets_dir): container_client.delete_blobs(*to_delete) -@fixture() +@fixture def gs_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_GS_BUCKET", DEFAULT_GS_BUCKET_NAME) test_dir = create_test_dir_name(request) @@ -211,7 +211,7 @@ def gs_rig(request, monkeypatch, assets_dir): blob.delete() -@fixture() +@fixture def s3_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_S3_BUCKET", DEFAULT_S3_BUCKET_NAME) test_dir = create_test_dir_name(request) @@ -257,7 +257,7 @@ def s3_rig(request, monkeypatch, assets_dir): bucket.objects.filter(Prefix=test_dir).delete() -@fixture() +@fixture def custom_s3_rig(request, monkeypatch, assets_dir): """ Custom S3 rig used to test the integrations with non-AWS S3-compatible object storages like @@ -328,7 +328,7 @@ def custom_s3_rig(request, monkeypatch, assets_dir): bucket.objects.filter(Prefix=test_dir).delete() -@fixture() +@fixture def local_azure_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_AZURE_CONTAINER", DEFAULT_CONTAINER_NAME) test_dir = create_test_dir_name(request) @@ -354,7 +354,7 @@ def local_azure_rig(request, monkeypatch, assets_dir): rig.client_class.reset_default_storage_dir() # reset local storage directory -@fixture() +@fixture def local_gs_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_GS_BUCKET", DEFAULT_GS_BUCKET_NAME) test_dir = create_test_dir_name(request) @@ -379,7 +379,7 @@ def local_gs_rig(request, monkeypatch, assets_dir): rig.client_class.reset_default_storage_dir() # reset local storage directory -@fixture() +@fixture def local_s3_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_S3_BUCKET", DEFAULT_S3_BUCKET_NAME) test_dir = create_test_dir_name(request) From 9f6082472ca54c7fa3b3515d2fd96896178a21e0 Mon Sep 17 00:00:00 2001 From: Jay Qi Date: Sat, 27 Jan 2024 21:37:44 -0500 Subject: [PATCH 5/6] Revert "Remove superfluous parentheses from @fixture decorator" This reverts commit aacbb5d0440b924929e21a09b6c3082e100556f0. --- tests/conftest.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 8dae6da9..76c4bad5 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -47,7 +47,7 @@ ] -@fixture +@fixture() def assets_dir() -> Path: """Path to test assets directory.""" return Path(__file__).parent / "assets" @@ -108,7 +108,7 @@ def create_test_dir_name(request) -> str: return test_dir -@fixture +@fixture() def azure_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_AZURE_CONTAINER", DEFAULT_CONTAINER_NAME) test_dir = create_test_dir_name(request) @@ -159,7 +159,7 @@ def azure_rig(request, monkeypatch, assets_dir): container_client.delete_blobs(*to_delete) -@fixture +@fixture() def gs_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_GS_BUCKET", DEFAULT_GS_BUCKET_NAME) test_dir = create_test_dir_name(request) @@ -211,7 +211,7 @@ def gs_rig(request, monkeypatch, assets_dir): blob.delete() -@fixture +@fixture() def s3_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_S3_BUCKET", DEFAULT_S3_BUCKET_NAME) test_dir = create_test_dir_name(request) @@ -257,7 +257,7 @@ def s3_rig(request, monkeypatch, assets_dir): bucket.objects.filter(Prefix=test_dir).delete() -@fixture +@fixture() def custom_s3_rig(request, monkeypatch, assets_dir): """ Custom S3 rig used to test the integrations with non-AWS S3-compatible object storages like @@ -328,7 +328,7 @@ def custom_s3_rig(request, monkeypatch, assets_dir): bucket.objects.filter(Prefix=test_dir).delete() -@fixture +@fixture() def local_azure_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_AZURE_CONTAINER", DEFAULT_CONTAINER_NAME) test_dir = create_test_dir_name(request) @@ -354,7 +354,7 @@ def local_azure_rig(request, monkeypatch, assets_dir): rig.client_class.reset_default_storage_dir() # reset local storage directory -@fixture +@fixture() def local_gs_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_GS_BUCKET", DEFAULT_GS_BUCKET_NAME) test_dir = create_test_dir_name(request) @@ -379,7 +379,7 @@ def local_gs_rig(request, monkeypatch, assets_dir): rig.client_class.reset_default_storage_dir() # reset local storage directory -@fixture +@fixture() def local_s3_rig(request, monkeypatch, assets_dir): drive = os.getenv("LIVE_S3_BUCKET", DEFAULT_S3_BUCKET_NAME) test_dir = create_test_dir_name(request) From f7004198feef677a8e1be6e6ad326daa2408d9e7 Mon Sep 17 00:00:00 2001 From: Jay Qi Date: Sat, 27 Jan 2024 21:38:34 -0500 Subject: [PATCH 6/6] Pin below pytest 8 --- requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index a412f63c..19730fdd 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -19,7 +19,7 @@ pandas pillow psutil pydantic -pytest +pytest<8 pytest-cases>=3.7.0 pytest-cov pytest-xdist