Azure Data Lake Gen2 for Python
Guides Python developers through hierarchical file-system and large-file operations on Azure Data Lake Storage Gen2.
The skill recommends DefaultAzureCredential, constrains the production credential chain, avoids connection strings and keys, and discloses the Azure endpoint and client lifecycle. It does not define least-privilege RBAC, sensitive-data handling, user confirmation, deletion rollback or recovery, or pinned dependencies, so points are deducted.
The client hierarchy, sync/async split, and common file operations are internally coherent, and the references call for current API checks, error handling, and cleanup. However, examples omit exception handling, input validation, retry/paging/LRO implementation, and several production details are left to the reader; static review cannot reproduce key paths, so the score is limited.
The audience, Python package, client types, and trigger terms are fairly clear, covering filesystem, directory, file, ACL, listing, and async work. Boundaries, compatibility ranges, negative trigger conditions, Chinese-language use, and mainland-China network reachability are not addressed; the external Azure dependency must be handled by the user.
The skill has front matter, MIT licensing, a version, installation and environment-variable notes, client hierarchy, examples, best practices, and reference files. Repository README, CI, and security policy provide some governance signals, but package version constraints, a changelog, explicit maintenance ownership, and an update path are missing, with some duplicated reference content.
It directly covers creating, retrieving, and deleting filesystems, directory operations, uploads, downloads, listings, properties, ACLs, and async clients, supporting the core coding task. The examples lack a complete runnable application, failure recovery, permission setup, and verification evidence; static calibration caps the score, and production code still needs current SDK validation and additional implementation.
The skill and references contain auditable code samples, API names, and a production checklist. The repository provides general CI, evaluation workflows, and test-harness evidence, but the supplied material does not show skill-specific tests, real execution results, or independent corroboration, so only limited credit is justified.
- Examples include deleting filesystems, directories, and files, plus overwrite uploads; confirm targets, permissions, and recovery plans before use.
- azure-storage-file-datalake and azure-identity versions are not pinned, and current API compatibility and exception handling are not demonstrated; validate against the official SDK and add tests in the target environment.
- Credential guidance is strong, but minimum RBAC/ACL permissions, sensitive-data controls in logs, and data-residency requirements are not specified.
- Core functionality depends on Azure endpoints; mainland-China reachability, private networking, and proxy configuration are not assessed.
What it does & when to use it
This skill is for the Azure Data Lake Storage Gen2 Python SDK and covers account, file-system, directory, and file clients. It provides synchronous and asynchronous patterns for uploading, downloading, appending, listing, metadata, and ACL management. The guidance favors DefaultAzureCredential and requires an account URL for the Data Lake endpoint. It fits projects that need hierarchical namespace semantics for analytics-oriented storage workloads.
Shows how to install azure-storage-file-datalake and azure-identity and configure AZURE_STORAGE_ACCOUNT_URL plus production credential settings; creates and manages DataLakeServiceClient, FileSystemClient, DataLakeDirectoryClient, and DataLakeFileClient; performs file-system, directory, and file creation, retrieval, deletion, renaming, upload, append, flush, download, and range-read operations; lists paths, reads file properties, sets metadata, and reads, sets, or recursively updates ACLs; and demonstrates aio clients with deterministic context-manager cleanup.
- A Python Azure developer managing ADLS Gen2 file systems, directories, and files.
- A data-processing team appending chunks and committing large files for analytics workloads.
- A service that recursively lists Data Lake paths, reads file properties, or downloads byte ranges.
- A team using Entra-based credentials and directory-level ACLs for data access.
- A high-throughput Python application that needs the asynchronous Data Lake client.
Pros & cons
- Covers the main ADLS Gen2 client hierarchy and common file-system operations.
- Includes both synchronous and asynchronous Python patterns.
- Provides explicit guidance on DefaultAzureCredential, context managers, and production credential constraints.
- Includes practical append, range-download, metadata, and ACL examples.
- Focused on the Azure Data Lake Storage Gen2 Python SDK rather than general object storage.
- Every authentication method requires an account URL, and execution depends on an Azure resource and valid credentials.
- The source lists reference files but does not provide their contents, so their additional coverage cannot be assessed.
How to install
Run npx skills add microsoft/skills in an Agent Skills-compatible coding client and select azure-storage-file-datalake-py in the wizard. The README says skills are installed into the selected agent directory, such as .github/skills/ for GitHub Copilot; the corresponding skill directory may also be copied from the repository.
How to use
With the skill installed, give the coding agent a request containing a relevant trigger, for example: “Use DataLakeServiceClient to create an ADLS Gen2 directory and upload a file in this Python service.” Set AZURE_STORAGE_ACCOUNT_URL=https://<account>.dfs.core.windows.net; for production use of DefaultAzureCredential, also set AZURE_TOKEN_CREDENTIALS=prod or a specific credential value.
Compared to similar skills
The guide explicitly suggests considering the Blob API for simple object-storage use cases. This skill is the better fit when hierarchical file-system semantics, directory operations, or ACLs are required.