-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
162 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
53 changes: 53 additions & 0 deletions
53
sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_download.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# ------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See License.txt in the project root for | ||
# license information. | ||
# -------------------------------------------------------------------------- | ||
|
||
from ._models import FileProperties | ||
|
||
|
||
class StorageStreamDownloader(object): # pylint: disable=too-many-instance-attributes | ||
"""A streaming object to download from Azure Storage. | ||
:ivar str name: | ||
The name of the file being downloaded. | ||
:ivar ~azure.storage.filedatalake.FileProperties properties: | ||
The properties of the file being downloaded. If only a range of the data is being | ||
downloaded, this will be reflected in the properties. | ||
:ivar int size: | ||
The size of the total data in the stream. This will be the byte range if speficied, | ||
otherwise the total size of the file. | ||
""" | ||
|
||
def __init__(self, downloader): | ||
self._downloader = downloader | ||
self.name = self._downloader.name | ||
self.properties = FileProperties._from_blob_properties(self._downloader.properties) | ||
self.size = self._downloader.size | ||
|
||
def __len__(self): | ||
return self.size | ||
|
||
def chunks(self): | ||
return self._downloader.chunks() | ||
|
||
def readall(self): | ||
"""Download the contents of this file. | ||
This operation is blocking until all data is downloaded. | ||
:rtype: bytes or str | ||
""" | ||
return self._downloader.readall() | ||
|
||
def readinto(self, stream): | ||
"""Download the contents of this file to a stream. | ||
:param stream: | ||
The stream to download to. This can be an open file-handle, | ||
or any writable stream. The stream must be seekable if the download | ||
uses more than one parallel connection. | ||
:returns: The number of bytes read. | ||
:rtype: int | ||
""" | ||
return self._downloader.readinto(stream) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
53 changes: 53 additions & 0 deletions
53
sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/aio/_download_async.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# ------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See License.txt in the project root for | ||
# license information. | ||
# -------------------------------------------------------------------------- | ||
|
||
from .._models import FileProperties | ||
|
||
|
||
class StorageStreamDownloader(object): # pylint: disable=too-many-instance-attributes | ||
"""A streaming object to download from Azure Storage. | ||
:ivar str name: | ||
The name of the file being downloaded. | ||
:ivar ~azure.storage.filedatalake.FileProperties properties: | ||
The properties of the file being downloaded. If only a range of the data is being | ||
downloaded, this will be reflected in the properties. | ||
:ivar int size: | ||
The size of the total data in the stream. This will be the byte range if speficied, | ||
otherwise the total size of the file. | ||
""" | ||
|
||
def __init__(self, downloader): | ||
self._downloader = downloader | ||
self.name = self._downloader.name | ||
self.properties = FileProperties._from_blob_properties(self._downloader.properties) | ||
self.size = self._downloader.size | ||
|
||
def __len__(self): | ||
return self.size | ||
|
||
def chunks(self): | ||
return self._downloader.chunks() | ||
|
||
async def readall(self): | ||
"""Download the contents of this file. | ||
This operation is blocking until all data is downloaded. | ||
:rtype: bytes or str | ||
""" | ||
return await self._downloader.readall() | ||
|
||
async def readinto(self, stream): | ||
"""Download the contents of this file to a stream. | ||
:param stream: | ||
The stream to download to. This can be an open file-handle, | ||
or any writable stream. The stream must be seekable if the download | ||
uses more than one parallel connection. | ||
:returns: The number of bytes read. | ||
:rtype: int | ||
""" | ||
return await self._downloader.readinto(stream) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.