Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions upath/implementations/cloud.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from __future__ import annotations

import sys
from collections.abc import Iterator
from typing import TYPE_CHECKING
from typing import Any

from upath import UnsupportedOperation
from upath._chain import DEFAULT_CHAIN_PARSER
from upath._flavour import upath_strip_protocol
from upath.core import UPath
Expand All @@ -13,8 +15,10 @@
from typing import Literal

if sys.version_info >= (3, 11):
from typing import Self
from typing import Unpack
else:
from typing_extensions import Self
from typing_extensions import Unpack

from upath._chain import FSSpecChainParser
Expand Down Expand Up @@ -166,3 +170,35 @@ def __init__(
super().__init__(
*args, protocol=protocol, chain_parser=chain_parser, **storage_options
)

def iterdir(self) -> Iterator[Self]:
try:
yield from super().iterdir()
except NotImplementedError:
raise UnsupportedOperation

def touch(self, mode: int = 0o666, exist_ok: bool = True) -> None:
raise UnsupportedOperation

def mkdir(
self,
mode: int = 0o777,
parents: bool = False,
exist_ok: bool = False,
) -> None:
raise UnsupportedOperation

def unlink(self, missing_ok: bool = False) -> None:
raise UnsupportedOperation

def write_bytes(self, data: bytes) -> int:
raise UnsupportedOperation("DataPath does not support writing")

def write_text(
self,
data: str,
encoding: str | None = None,
errors: str | None = None,
newline: str | None = None,
) -> int:
raise UnsupportedOperation("DataPath does not support writing")
Loading