Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
24e2e83
remove old gen
l0lawrence Mar 24, 2026
22456b9
regen
l0lawrence Mar 24, 2026
a7f4fdd
init
l0lawrence Mar 24, 2026
07216e5
rename imports + add back models
l0lawrence Mar 24, 2026
70bbf55
patch client to allow optional cred
l0lawrence Mar 24, 2026
f9619c9
Merge branch 'main' into filedatalake
l0lawrence Mar 26, 2026
debaab9
Merge branch 'filedatalake' of https://github.com/l0lawrence/azure-sd…
l0lawrence Mar 26, 2026
c486c19
regen
l0lawrence Mar 26, 2026
3581503
patch + conftest + test tweaks
l0lawrence Mar 26, 2026
a9ed180
Merge branch 'main' into filedatalake
l0lawrence Mar 27, 2026
bc44412
pyproject.
l0lawrence Mar 27, 2026
ea4d246
Merge branch 'filedatalake' of https://github.com/l0lawrence/azure-sd…
l0lawrence Mar 27, 2026
c228fbc
fix patch
l0lawrence Mar 27, 2026
f83d8da
pylint
l0lawrence Mar 27, 2026
67f80f0
list
l0lawrence Mar 27, 2026
e53b941
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-python …
l0lawrence Mar 31, 2026
3bdfffc
Merge branch 'main' into filedatalake
l0lawrence Apr 1, 2026
0aa8d8d
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-python …
l0lawrence Apr 2, 2026
b4d82c1
regen
l0lawrence Apr 2, 2026
3d11e43
regen
l0lawrence Apr 3, 2026
6a4b69b
flatten models
l0lawrence Apr 3, 2026
d6c5a71
response error type changed?
l0lawrence Apr 3, 2026
7f271b7
client naming
l0lawrence Apr 3, 2026
cd422ce
ignore content-type for now
l0lawrence Apr 3, 2026
9c0e1d9
down to 7 fialing tests
l0lawrence Apr 3, 2026
0c1924c
fixing tests
l0lawrence Apr 6, 2026
66adca5
Merge branch 'main' into filedatalake
l0lawrence Apr 6, 2026
b8fe8bf
mypy
l0lawrence Apr 6, 2026
68611d9
pylint
l0lawrence Apr 6, 2026
53dc31a
changelog update for append_data content-type
l0lawrence Apr 6, 2026
063ddf0
conftest
l0lawrence Apr 6, 2026
ed9b1e8
new recordings for append_data
l0lawrence Apr 6, 2026
82f445b
typo
l0lawrence Apr 6, 2026
24f9c4d
prproject
l0lawrence Apr 6, 2026
5ae8546
Merge branch 'main' into filedatalake
l0lawrence Apr 13, 2026
3db1b31
regen with new config
l0lawrence Apr 14, 2026
a2e1af4
versizon
l0lawrence Apr 14, 2026
b47b285
remove dependency on blob generated api -- using public api
l0lawrence Apr 22, 2026
6c84d1d
Align _shared with storageblob3 branch
l0lawrence Apr 27, 2026
73cea5f
wip changes from running against azure cli
l0lawrence May 1, 2026
8023423
regen
l0lawrence May 5, 2026
f1d0acc
Merge branch 'main' into filedatalake
l0lawrence May 6, 2026
8ecb265
Merge branch 'main' into filedatalake
l0lawrence May 13, 2026
2b05004
Merge branch 'main' into filedatalake
l0lawrence May 22, 2026
069d6db
merge conflict
l0lawrence May 22, 2026
4152261
needed to re-record content for the content-type
l0lawrence May 22, 2026
8a47010
Merge branch 'main' into filedatalake
l0lawrence May 22, 2026
a51b2f5
need to re-record***
l0lawrence May 22, 2026
efcc58c
wrap iter bytes
l0lawrence May 22, 2026
8ad373d
Merge branch 'filedatalake' of https://github.com/l0lawrence/azure-sd…
l0lawrence May 22, 2026
55116b8
remove smaples/test format
l0lawrence May 22, 2026
1dc1297
wrap policies for backcompat
l0lawrence May 22, 2026
a3e4b24
resource not modified
l0lawrence May 26, 2026
40506ad
update polciies
l0lawrence May 26, 2026
ce1d8a5
no mock transport tests
l0lawrence May 26, 2026
33762e5
re-recording on top of new tests
l0lawrence May 27, 2026
f33f0e8
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-python …
l0lawrence Jun 9, 2026
dda2df6
update with backcompatmixin to handle _generated_models from blob
l0lawrence Jun 11, 2026
632be8d
legacy transport skip
l0lawrence Jun 11, 2026
2f13351
add validaiton
l0lawrence Jun 12, 2026
9d549a4
missing attribute map
l0lawrence Jun 12, 2026
cd503c7
versiob
l0lawrence Jun 12, 2026
08cea2b
we now wrap 412's
l0lawrence Jun 15, 2026
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
31 changes: 15 additions & 16 deletions sdk/storage/azure-storage-file-datalake/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@

### Features Added

## 12.25.0 (2026-06-08)

### Features Added
- Stable release of features from 12.25.0b1
### Other Changes
- Content-Type for append_data has changed from application/json to octet-stream
- Dropped support for legacy transports

## 12.24.0 (2026-05-14)

Expand All @@ -23,7 +22,7 @@ basis and with retries. Prior to this fix logging may have not behaved as expect

### Features Added
- Added support for service version 2026-06-06.
- Added support for connection strings and `account_url`s to accept URLs with `-ipv6` and `-dualstack` suffixes
- Added support for connection strings and `account_url`s to accept URLs with `-ipv6` and `-dualstack` suffixes
for `DataLakeServiceClient`, `FileSystemClient`, `DataLakeDirectoryClient`, and `DataLakeFileClient`.
- Added support for `DataLakeDirectoryClient` and `DataLakeFileClient`'s `set_tags` and `get_tags` APIs
to conditionally set and get tags associated with a directory or file client, respectively.
Expand All @@ -35,15 +34,15 @@ to conditionally set and get tags associated with a directory or file client, re

### Features Added
- Added support for service version 2026-04-06.
- Added support for the keyword `user_delegation_tid` to `DataLakeServiceClient.get_user_delegation_key`
API, which can be used in `generate_file_system_sas`, `generate_directory_sas`, and `generate_file_sas`
to specify the Tenant ID that is authorized to use the generated SAS URL. Note that `user_delegation_tid`
- Added support for the keyword `user_delegation_tid` to `DataLakeServiceClient.get_user_delegation_key`
API, which can be used in `generate_file_system_sas`, `generate_directory_sas`, and `generate_file_sas`
to specify the Tenant ID that is authorized to use the generated SAS URL. Note that `user_delegation_tid`
must be used together with `user_delegation_oid`.
- Added support for the keyword `request_headers` to `generate_file_system_sas`, `generate_directory_sas`,
and `generate_file_sas` which specifies a set of headers and their corresponding values that
- Added support for the keyword `request_headers` to `generate_file_system_sas`, `generate_directory_sas`,
and `generate_file_sas` which specifies a set of headers and their corresponding values that
must be present in the request header when using the generated SAS.
- Added support for the keyword `request_query_params` to `generate_file_system_sas`, `generate_directory_sas`,
and `generate_file_sas` which specifies a set of query parameters and their corresponding values that
- Added support for the keyword `request_query_params` to `generate_file_system_sas`, `generate_directory_sas`,
and `generate_file_sas` which specifies a set of query parameters and their corresponding values that
must be present in the request URL when using the generated SAS.

### Other Changes
Expand All @@ -70,9 +69,9 @@ significantly better throughput on large file downloads for most environments.
- Added the ability to skip auto decompression on `DataLakeFileClient.download_file` via the `decompress` keyword.

### Other Changes
- Migrated any previously documented `kwarg` arguments to be named keywords.
- Migrated any previously documented `kwarg` arguments to be named keywords.
Some public types may have been adjusted if they were previously erroneous or incomplete.
- Removed `__enter__` and `__exit__` attributes for all asynchronous client objects for raising explicit `TypeError`,
- Removed `__enter__` and `__exit__` attributes for all asynchronous client objects for raising explicit `TypeError`,
and let the `AttributeError` raise directly.

## 12.22.0 (2025-10-15)
Expand All @@ -81,7 +80,7 @@ and let the `AttributeError` raise directly.
- Stable release of features from 12.22.0b1

### Other Changes
- Removed `__enter__` and `__exit__` attributes for all asynchronous client objects for raising explicit `TypeError`,
- Removed `__enter__` and `__exit__` attributes for all asynchronous client objects for raising explicit `TypeError`,
and let the `AttributeError` raise directly.

## 12.21.0 (2025-07-16)
Expand All @@ -100,7 +99,7 @@ This version and all future versions will require Python 3.9+. Python 3.8 is no

### Features Added
- Added support for service version 2025-07-05.
- Added support for OAuth authentication in `FileSystemClient`'s `get_file_system_access_policy`
- Added support for OAuth authentication in `FileSystemClient`'s `get_file_system_access_policy`
and `set_file_system_access_policy` APIs.
- Added support for progress tracking to `DataLakeFileClient`'s `upload_data` and `download_file`
APIs via a new optional callback, `progress_hook`.
Expand Down
6 changes: 3 additions & 3 deletions sdk/storage/azure-storage-file-datalake/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include *.md
include azure/__init__.py
include azure/storage/__init__.py
include LICENSE
include azure/storage/filedatalake/py.typed
recursive-include tests *.py
recursive-include samples *.py *.md
include azure/storage/filedatalake/py.typed
include azure/__init__.py
include azure/storage/__init__.py
6 changes: 6 additions & 0 deletions sdk/storage/azure-storage-file-datalake/_metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"apiVersion": "2026-06-06",
"apiVersions": {
"Storage.DataLake": "2026-06-06"
}
}
69 changes: 69 additions & 0 deletions sdk/storage/azure-storage-file-datalake/apiview-properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"CrossLanguagePackageId": "Storage.DataLake",
"CrossLanguageDefinitionId": {
"azure.storage.filedatalake.models.AclFailedEntry": "Storage.DataLake.AclFailedEntry",
"azure.storage.filedatalake.models.BlobHierarchyListSegment": "Storage.DataLake.BlobHierarchyListSegment",
"azure.storage.filedatalake.models.BlobItemInternal": "Storage.DataLake.BlobItem",
"azure.storage.filedatalake.models.BlobPrefix": "Storage.DataLake.BlobPrefix",
"azure.storage.filedatalake.models.BlobPropertiesInternal": "Storage.DataLake.BlobPropertiesInternal",
"azure.storage.filedatalake.models.FileSystemItem": "Storage.DataLake.FileSystemItem",
"azure.storage.filedatalake.models.FileSystemList": "Storage.DataLake.FileSystemList",
"azure.storage.filedatalake.models.ListBlobsHierarchySegmentResponse": "Storage.DataLake.ListBlobsHierarchySegmentResponse",
"azure.storage.filedatalake.models.Path": "Storage.DataLake.PathItem",
"azure.storage.filedatalake.models.PathList": "Storage.DataLake.PathList",
"azure.storage.filedatalake.models.SetAccessControlRecursiveResponse": "Storage.DataLake.SetAccessControlRecursiveResponse",
"azure.storage.filedatalake.models.StorageError": "Storage.DataLake.StorageError",
"azure.storage.filedatalake.models.StorageErrorBody": "Storage.DataLake.StorageErrorBody",
"azure.storage.filedatalake.models.FileSystemResourceType": "Storage.DataLake.FileSystemResourceType",
"azure.storage.filedatalake.models.ListBlobsIncludeItem": "Storage.DataLake.ListBlobsIncludeItem",
"azure.storage.filedatalake.models.ListBlobsShowOnly": "Storage.DataLake.ListBlobsShowOnly",
"azure.storage.filedatalake.models.PathResourceType": "Storage.DataLake.PathResourceType",
"azure.storage.filedatalake.models.PathRenameMode": "Storage.DataLake.PathRenameMode",
"azure.storage.filedatalake.models.EncryptionAlgorithmType": "Storage.DataLake.EncryptionAlgorithmType",
"azure.storage.filedatalake.models.PathExpiryOptions": "Storage.DataLake.PathExpiryOptions",
"azure.storage.filedatalake.models.PathUpdateAction": "Storage.DataLake.PathUpdateAction",
"azure.storage.filedatalake.models.PathSetAccessControlRecursiveMode": "Storage.DataLake.PathSetAccessControlRecursiveMode",
"azure.storage.filedatalake.models.PathLeaseAction": "Storage.DataLake.PathLeaseAction",
"azure.storage.filedatalake.models.PathGetPropertiesAction": "Storage.DataLake.PathGetPropertiesAction",
"azure.storage.filedatalake.models.LeaseAction": "Storage.DataLake.LeaseAction",
"azure.storage.filedatalake.models.AccountResourceType": "Storage.DataLake.AccountResourceType",
"azure.storage.filedatalake.operations.FileSystemOperations.create": "Storage.DataLake.FileSystem.create",
"azure.storage.filedatalake.aio.operations.FileSystemOperations.create": "Storage.DataLake.FileSystem.create",
"azure.storage.filedatalake.operations.FileSystemOperations.set_properties": "Storage.DataLake.FileSystem.setProperties",
"azure.storage.filedatalake.aio.operations.FileSystemOperations.set_properties": "Storage.DataLake.FileSystem.setProperties",
"azure.storage.filedatalake.operations.FileSystemOperations.get_properties": "Storage.DataLake.FileSystem.getProperties",
"azure.storage.filedatalake.aio.operations.FileSystemOperations.get_properties": "Storage.DataLake.FileSystem.getProperties",
"azure.storage.filedatalake.operations.FileSystemOperations.delete": "Storage.DataLake.FileSystem.delete",
"azure.storage.filedatalake.aio.operations.FileSystemOperations.delete": "Storage.DataLake.FileSystem.delete",
"azure.storage.filedatalake.operations.FileSystemOperations.list_paths": "Storage.DataLake.FileSystem.listPaths",
"azure.storage.filedatalake.aio.operations.FileSystemOperations.list_paths": "Storage.DataLake.FileSystem.listPaths",
"azure.storage.filedatalake.operations.FileSystemOperations.list_blob_hierarchy_segment": "Storage.DataLake.FileSystem.listBlobHierarchySegment",
"azure.storage.filedatalake.aio.operations.FileSystemOperations.list_blob_hierarchy_segment": "Storage.DataLake.FileSystem.listBlobHierarchySegment",
"azure.storage.filedatalake.operations.PathOperations.create": "Storage.DataLake.Path.create",
"azure.storage.filedatalake.aio.operations.PathOperations.create": "Storage.DataLake.Path.create",
"azure.storage.filedatalake.operations.PathOperations.update": "Storage.DataLake.Path.update",
"azure.storage.filedatalake.aio.operations.PathOperations.update": "Storage.DataLake.Path.update",
"azure.storage.filedatalake.operations.PathOperations.lease": "Storage.DataLake.Path.lease",
"azure.storage.filedatalake.aio.operations.PathOperations.lease": "Storage.DataLake.Path.lease",
"azure.storage.filedatalake.operations.PathOperations.read": "Storage.DataLake.Path.read",
"azure.storage.filedatalake.aio.operations.PathOperations.read": "Storage.DataLake.Path.read",
"azure.storage.filedatalake.operations.PathOperations.get_properties": "Storage.DataLake.Path.getProperties",
"azure.storage.filedatalake.aio.operations.PathOperations.get_properties": "Storage.DataLake.Path.getProperties",
"azure.storage.filedatalake.operations.PathOperations.delete": "Storage.DataLake.Path.delete",
"azure.storage.filedatalake.aio.operations.PathOperations.delete": "Storage.DataLake.Path.delete",
"azure.storage.filedatalake.operations.PathOperations.set_access_control": "Storage.DataLake.Path.setAccessControl",
"azure.storage.filedatalake.aio.operations.PathOperations.set_access_control": "Storage.DataLake.Path.setAccessControl",
"azure.storage.filedatalake.operations.PathOperations.set_access_control_recursive": "Storage.DataLake.Path.setAccessControlRecursive",
"azure.storage.filedatalake.aio.operations.PathOperations.set_access_control_recursive": "Storage.DataLake.Path.setAccessControlRecursive",
"azure.storage.filedatalake.operations.PathOperations.flush_data": "Storage.DataLake.Path.flushData",
"azure.storage.filedatalake.aio.operations.PathOperations.flush_data": "Storage.DataLake.Path.flushData",
"azure.storage.filedatalake.operations.PathOperations.append_data": "Storage.DataLake.Path.appendData",
"azure.storage.filedatalake.aio.operations.PathOperations.append_data": "Storage.DataLake.Path.appendData",
"azure.storage.filedatalake.operations.PathOperations.set_expiry": "Storage.DataLake.Path.setExpiry",
"azure.storage.filedatalake.aio.operations.PathOperations.set_expiry": "Storage.DataLake.Path.setExpiry",
"azure.storage.filedatalake.operations.PathOperations.undelete": "Storage.DataLake.Path.undelete",
"azure.storage.filedatalake.aio.operations.PathOperations.undelete": "Storage.DataLake.Path.undelete",
"azure.storage.filedatalake.operations.ServiceOperations.list_file_systems": "Storage.DataLake.Service.listFileSystems",
"azure.storage.filedatalake.aio.operations.ServiceOperations.list_file_systems": "Storage.DataLake.Service.listFileSystems"
}
}
2 changes: 1 addition & 1 deletion sdk/storage/azure-storage-file-datalake/assets.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "python",
"TagPrefix": "python/storage/azure-storage-file-datalake",
"Tag": "python/storage/azure-storage-file-datalake_34be4c4176"
"Tag": "python/storage/azure-storage-file-datalake_b74774dee3"
}
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@
"DataLakeDirectoryClient",
"DataLakeFileClient",
"DataLakeFileQueryError",
"DataLakeFileQueryError",
"DataLakeLeaseClient",
"DataLakeServiceClient",
"DeletedPathProperties",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def __init__(
directory_name: str,
credential: Optional[
Union[str, Dict[str, str], "AzureNamedKeyCredential", "AzureSasCredential", "TokenCredential"]
] = None,
] = None, # pylint: disable=line-too-long
**kwargs: Any,
) -> None:
super(DataLakeDirectoryClient, self).__init__(
Expand All @@ -102,7 +102,7 @@ def from_connection_string(
directory_name: str,
credential: Optional[
Union[str, Dict[str, str], "AzureNamedKeyCredential", "AzureSasCredential", "TokenCredential"]
] = None,
] = None, # pylint: disable=line-too-long
**kwargs: Any,
) -> Self:
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def __init__(
file_path: str,
credential: Optional[
Union[str, Dict[str, str], "AzureNamedKeyCredential", "AzureSasCredential", "TokenCredential"]
] = None,
] = None, # pylint: disable=line-too-long
**kwargs: Any,
) -> None:
super(DataLakeFileClient, self).__init__(
Expand All @@ -105,7 +105,7 @@ def from_connection_string(
file_path: str,
credential: Optional[
Union[str, Dict[str, str], "AzureNamedKeyCredential", "AzureSasCredential", "TokenCredential"]
] = None,
] = None, # pylint: disable=line-too-long
**kwargs: Any,
) -> Self:
"""
Expand Down Expand Up @@ -379,7 +379,9 @@ def set_file_expiry(
expiry_time = convert_datetime_to_rfc1123(expires_on)
elif expires_on is not None:
expiry_time = str(expires_on)
self._datalake_client_for_blob_operation.path.set_expiry(expiry_options, expires_on=expiry_time, **kwargs)
self._datalake_client_for_blob_operation.path.set_expiry(
expiry_options=expiry_options, expires_on=expiry_time, **kwargs
)

@distributed_trace
def upload_data(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,11 @@ def _append_data_options(
"position": offset,
"content_length": length,
"validate_content": validate_content,
"cpk_info": cpk_info,
"timeout": kwargs.pop("timeout", None),
"cls": return_response_headers,
}
if cpk_info:
options.update(cpk_info)
options.update(kwargs)
return options

Expand All @@ -83,7 +84,7 @@ def _flush_data_options(
) -> Dict[str, Any]:
mod_conditions = get_mod_conditions(kwargs)

path_http_headers = None
path_http_headers = {}
if content_settings:
path_http_headers = get_path_http_headers(content_settings)

Expand All @@ -93,14 +94,15 @@ def _flush_data_options(
options = {
"position": offset,
"content_length": 0,
"path_http_headers": path_http_headers,
"retain_uncommitted_data": retain_uncommitted_data,
"close": kwargs.pop("close", False),
"modified_access_conditions": mod_conditions,
"cpk_info": cpk_info,
"timeout": kwargs.pop("timeout", None),
"cls": return_response_headers,
}
options.update(path_http_headers)
options.update(mod_conditions)
if cpk_info:
options.update(cpk_info)
options.update(kwargs)
return options

Expand Down Expand Up @@ -141,12 +143,17 @@ def _upload_options(
max_concurrency = DEFAULT_MAX_CONCURRENCY

kwargs["properties"] = add_metadata_headers(metadata)
kwargs["lease_access_conditions"] = get_access_conditions(kwargs.pop("lease", None))
kwargs["modified_access_conditions"] = get_mod_conditions(kwargs)
kwargs["cpk_info"] = get_cpk_info(scheme, kwargs)
lease_id = get_access_conditions(kwargs.pop("lease", None))
if lease_id:
kwargs["lease_id"] = lease_id
mod_conditions = get_mod_conditions(kwargs)
kwargs.update(mod_conditions)
cpk_info = get_cpk_info(scheme, kwargs)
if cpk_info:
kwargs.update(cpk_info)

if content_settings:
kwargs["path_http_headers"] = get_path_http_headers(content_settings)
kwargs.update(get_path_http_headers(content_settings))

kwargs["stream"] = stream
kwargs["length"] = length
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# pylint: disable=line-too-long,useless-suppression
# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
Expand Down
Loading
Loading