Skip to content

Commit 62ab762

Browse files
[Storage] [Named Keywords] File Share Package (#42100)
1 parent 7291148 commit 62ab762

15 files changed

+1972
-20
lines changed
Lines changed: 217 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,217 @@
1+
# -------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for
4+
# license information.
5+
# --------------------------------------------------------------------------
6+
# pylint: skip-file
7+
8+
from datetime import datetime
9+
from types import TracebackType
10+
from typing import (
11+
Any,
12+
AnyStr,
13+
Callable,
14+
Dict,
15+
IO,
16+
Iterable,
17+
List,
18+
Literal,
19+
Optional,
20+
Union,
21+
)
22+
23+
from typing_extensions import Self
24+
25+
from azure.core.credentials import AzureNamedKeyCredential, AzureSasCredential, TokenCredential
26+
from azure.core.paging import ItemPaged
27+
from azure.core.tracing.decorator import distributed_trace
28+
from ._file_client import ShareFileClient
29+
from ._lease import ShareLeaseClient
30+
from ._models import (
31+
ContentSettings,
32+
DirectoryProperties,
33+
FileProperties,
34+
Handle,
35+
NTFSAttributes,
36+
)
37+
from ._shared.base_client import StorageAccountHostsMixin
38+
39+
class ShareDirectoryClient(StorageAccountHostsMixin):
40+
def __init__(
41+
self,
42+
account_url: str,
43+
share_name: str,
44+
directory_path: str,
45+
snapshot: Optional[Union[str, Dict[str, Any]]] = None,
46+
credential: Optional[
47+
Union[str, Dict[str, str], AzureNamedKeyCredential, AzureSasCredential, TokenCredential]
48+
] = None,
49+
*,
50+
token_intent: Optional[Literal["backup"]] = None,
51+
allow_trailing_dot: Optional[bool] = None,
52+
allow_source_trailing_dot: Optional[bool] = None,
53+
api_version: Optional[str] = None,
54+
secondary_hostname: Optional[str] = None,
55+
max_range_size: int = 4 * 1024 * 1024,
56+
audience: Optional[str] = None,
57+
**kwargs: Any
58+
) -> None: ...
59+
@classmethod
60+
def from_directory_url(
61+
cls,
62+
directory_url: str,
63+
snapshot: Optional[Union[str, Dict[str, Any]]] = None,
64+
credential: Optional[
65+
Union[str, Dict[str, str], AzureNamedKeyCredential, AzureSasCredential, TokenCredential]
66+
] = None,
67+
*,
68+
token_intent: Optional[Literal["backup"]] = None,
69+
allow_trailing_dot: Optional[bool] = None,
70+
allow_source_trailing_dot: Optional[bool] = None,
71+
api_version: Optional[str] = None,
72+
secondary_hostname: Optional[str] = None,
73+
max_range_size: int = 4 * 1024 * 1024,
74+
audience: Optional[str] = None,
75+
**kwargs: Any
76+
) -> Self: ...
77+
def __enter__(self) -> Self: ...
78+
def __exit__(
79+
self, typ: Optional[type[BaseException]], exc: Optional[BaseException], tb: Optional[TracebackType]
80+
) -> None: ...
81+
def close(self) -> None: ...
82+
@classmethod
83+
def from_connection_string(
84+
cls,
85+
conn_str: str,
86+
share_name: str,
87+
directory_path: str,
88+
credential: Optional[
89+
Union[str, Dict[str, str], AzureNamedKeyCredential, AzureSasCredential, TokenCredential]
90+
] = None,
91+
*,
92+
token_intent: Optional[Literal["backup"]] = None,
93+
allow_trailing_dot: Optional[bool] = None,
94+
allow_source_trailing_dot: Optional[bool] = None,
95+
api_version: Optional[str] = None,
96+
secondary_hostname: Optional[str] = None,
97+
max_range_size: int = 4 * 1024 * 1024,
98+
audience: Optional[str] = None,
99+
**kwargs: Any
100+
) -> Self: ...
101+
def get_file_client(self, file_name: str, **kwargs: Any) -> ShareFileClient: ...
102+
def get_subdirectory_client(self, directory_name: str, **kwargs: Any) -> Self: ...
103+
@distributed_trace
104+
def create_directory(
105+
self,
106+
*,
107+
file_attributes: Optional[Union[str, NTFSAttributes]] = None,
108+
file_creation_time: Optional[Union[str, datetime]] = None,
109+
file_last_write_time: Optional[Union[str, datetime]] = None,
110+
file_change_time: Optional[Union[str, datetime]] = None,
111+
file_permission: Optional[str] = None,
112+
file_permission_key: Optional[str] = None,
113+
file_permission_format: Optional[Literal["sddl", "binary"]] = None,
114+
metadata: Optional[Dict[str, str]] = None,
115+
owner: Optional[str] = None,
116+
group: Optional[str] = None,
117+
file_mode: Optional[str] = None,
118+
timeout: Optional[int] = None,
119+
**kwargs: Any
120+
) -> Dict[str, Any]: ...
121+
@distributed_trace
122+
def delete_directory(self, *, timeout: Optional[int] = None, **kwargs: Any) -> None: ...
123+
@distributed_trace
124+
def rename_directory(
125+
self,
126+
new_name: str,
127+
*,
128+
overwrite: Optional[bool] = None,
129+
ignore_read_only: Optional[bool] = None,
130+
file_permission: Optional[str] = None,
131+
file_permission_key: Optional[str] = None,
132+
file_permission_format: Optional[Literal["sddl", "binary"]] = None,
133+
file_attributes: Optional[Union[str, NTFSAttributes]] = None,
134+
file_creation_time: Optional[Union[str, datetime]] = None,
135+
file_last_write_time: Optional[Union[str, datetime]] = None,
136+
file_change_time: Optional[Union[str, datetime]] = None,
137+
metadata: Optional[Dict[str, str]] = None,
138+
destination_lease: Optional[Union[str, ShareLeaseClient]] = None,
139+
timeout: Optional[int] = None,
140+
**kwargs: Any
141+
) -> Self: ...
142+
@distributed_trace
143+
def list_directories_and_files(
144+
self,
145+
name_starts_with: Optional[str] = None,
146+
*,
147+
include: Optional[List[str]] = None,
148+
include_extended_info: Optional[bool] = None,
149+
timeout: Optional[int] = None,
150+
**kwargs: Any
151+
) -> ItemPaged[Union[DirectoryProperties, FileProperties]]: ...
152+
@distributed_trace
153+
def list_handles(
154+
self, recursive: bool = False, *, timeout: Optional[int] = None, **kwargs: Any
155+
) -> ItemPaged[Handle]: ...
156+
@distributed_trace
157+
def close_handle(
158+
self, handle: Union[str, Handle], *, timeout: Optional[int] = None, **kwargs: Any
159+
) -> Dict[str, int]: ...
160+
@distributed_trace
161+
def close_all_handles(
162+
self, recursive: bool = False, *, timeout: Optional[int] = None, **kwargs: Any
163+
) -> Dict[str, int]: ...
164+
@distributed_trace
165+
def get_directory_properties(self, *, timeout: Optional[int] = None, **kwargs: Any) -> DirectoryProperties: ...
166+
@distributed_trace
167+
def set_directory_metadata(
168+
self, metadata: Dict[str, Any], *, timeout: Optional[int] = None, **kwargs: Any
169+
) -> Dict[str, Any]: ...
170+
@distributed_trace
171+
def exists(self, *, timeout: Optional[int] = None, **kwargs: Any) -> bool: ...
172+
@distributed_trace
173+
def set_http_headers(
174+
self,
175+
file_attributes: Optional[Union[str, NTFSAttributes]] = None,
176+
file_creation_time: Optional[Union[str, datetime]] = None,
177+
file_last_write_time: Optional[Union[str, datetime]] = None,
178+
file_permission: Optional[str] = None,
179+
permission_key: Optional[str] = None,
180+
*,
181+
file_permission_format: Optional[Literal["sddl", "binary"]] = None,
182+
file_change_time: Optional[Union[str, datetime]] = None,
183+
owner: Optional[str] = None,
184+
group: Optional[str] = None,
185+
file_mode: Optional[str] = None,
186+
timeout: Optional[int] = None,
187+
**kwargs: Any
188+
) -> Dict[str, Any]: ...
189+
@distributed_trace
190+
def create_subdirectory(
191+
self,
192+
directory_name: str,
193+
*,
194+
metadata: Optional[Dict[str, str]] = None,
195+
timeout: Optional[int] = None,
196+
**kwargs: Any
197+
) -> Self: ...
198+
@distributed_trace
199+
def delete_subdirectory(self, directory_name: str, *, timeout: Optional[int] = None, **kwargs: Any) -> None: ...
200+
@distributed_trace
201+
def upload_file(
202+
self,
203+
file_name: str,
204+
data: Union[bytes, str, Iterable[AnyStr], IO[AnyStr]],
205+
length: Optional[int] = None,
206+
*,
207+
metadata: Optional[Dict[str, str]] = None,
208+
content_settings: Optional[ContentSettings] = None,
209+
validate_content: Optional[bool] = None,
210+
max_concurrency: Optional[int] = None,
211+
progress_hook: Optional[Callable[[int, Optional[int]], None]] = None,
212+
encoding: str = "UTF-8",
213+
timeout: Optional[int] = None,
214+
**kwargs: Any
215+
) -> ShareFileClient: ...
216+
@distributed_trace
217+
def delete_file(self, file_name: str, *, timeout: Optional[int] = None, **kwargs: Any) -> None: ...

sdk/storage/azure-storage-file-share/azure/storage/fileshare/_download.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def process_content(data: Any) -> bytes:
3434
raise HttpResponseError(message="Download stream interrupted.", response=data.response, error=error) from error
3535

3636

37-
class _ChunkDownloader(object): # pylint: disable=too-many-instance-attributes
37+
class _ChunkDownloader: # pylint: disable=too-many-instance-attributes
3838
def __init__(
3939
self, client: "FileOperations",
4040
total_size: int,
@@ -142,7 +142,7 @@ def _download_chunk(self, chunk_start: int, chunk_end: int) -> bytes:
142142
return chunk_data
143143

144144

145-
class _ChunkIterator(object):
145+
class _ChunkIterator:
146146
"""Iterator for chunks in file download stream."""
147147

148148
def __init__(self, size: int, content: bytes, downloader: Optional[_ChunkDownloader], chunk_size: int) -> None:
@@ -195,7 +195,7 @@ def _get_chunk_data(self) -> bytes:
195195
return chunk_data
196196

197197

198-
class StorageStreamDownloader(object): # pylint: disable=too-many-instance-attributes
198+
class StorageStreamDownloader: # pylint: disable=too-many-instance-attributes
199199
"""A streaming object to download from Azure Storage."""
200200

201201
name: str

0 commit comments

Comments
 (0)