AzFS is to provide convenient Python read/write functions for Azure Storage Account.
Project description
AzFS
AzFS is to provide convenient Python read/write functions for Azure Storage Account.
AzFS
can
- list files in blob (also with wildcard
*
), - check if file exists,
- read csv as pd.DataFrame, and json as dict from blob,
- write pd.DataFrame as csv, and dict as json to blob.
install
$ pip install azfs
usage
For Blob
Storage.
import azfs
from azure.identity import DefaultAzureCredential
import pandas as pd
# credential is not required if your environment is on AAD(Azure Active Directory)
azc = azfs.AzFileClient()
# credential is required if your environment is not on AAD
credential = "[your storage account credential]"
# or
credential = DefaultAzureCredential()
azc = azfs.AzFileClient(credential=credential)
# connection_string is also supported
connection_string = "DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxx;EndpointSuffix=core.windows.net"
azc = azfs.AzFileClient(connection_string=connection_string)
# data paths
csv_path = "https://testazfs.blob.core.windows.net/test_caontainer/test_file.csv"
# read csv as pd.DataFrame
df = azc.read_csv(csv_path, index_col=0)
# or
with azc:
df = pd.read_csv_az(csv_path, header=None)
# write csv
azc.write_csv(path=csv_path, df=df)
# or
with azc:
df.to_csv_az(path=csv_path, index=False)
# you can read multiple files
csv_pattern_path = "https://testazfs.blob.core.windows.net/test_caontainer/*.csv"
df = azc.read().csv(csv_pattern_path)
# to apply additional filter or another process
df = azc.read().apply(function=lambda x: x[x['id'] == 'AAA']).csv(csv_pattern_path)
# in addition, you can use multiprocessing
df = azc.read(use_mp=True).apply(function=lambda x: x[x['id'] == 'AAA']).csv(csv_pattern_path)
For Queue
Storage
import azfs
queue_url = "https://{storage_account}.queue.core.windows.net/{queue_name}"
azc = azfs.AzFileClient()
queue_message = azc.get(queue_url)
# message will not be deleted if `delete=False`
# queue_message = azc.get(queue_url, delete=False)
# get message content
queue_content = queue_message.get('content')
For Table
Storage
import azfs
cons = {
"account_name": "{storage_account_name}",
"account_key": "{credential}",
"database_name": "{database_name}"
}
table_client = azfs.TableStorageWrapper(**cons)
# put data, according to the keyword you put
table_client.put(id_="1", message="hello_world")
# get data
table_client.get(id_="1")
types of authorization
Supported authentication types are
- Azure Active Directory (AAD) token credential.
- connection_string, like
DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxx;EndpointSuffix=core.windows.net
types of storage account kind
The table below shows if AzFS
provides read/write functions for the storage.
account kind | Blob | Data Lake | Queue | File | Table |
---|---|---|---|---|---|
StorageV2 | O | O | O | X | O |
StorageV1 | O | O | O | X | O |
BlobStorage | O | - | - | - | - |
- O: provides basic functions
- X: not provides
- -: storage type unavailable
dependencies
pandas
azure-identity >= "1.3.1"
azure-storage-blob >= "12.3.0"
azure-storage-file-datalake >= "12.0.0"
azure-storage-queue >= "12.1.1"
azure-cosmosdb-table
references
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
azfs-0.2.14.tar.gz
(37.1 kB
view details)
Built Distribution
azfs-0.2.14-py3-none-any.whl
(41.7 kB
view details)
File details
Details for the file azfs-0.2.14.tar.gz
.
File metadata
- Download URL: azfs-0.2.14.tar.gz
- Upload date:
- Size: 37.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 115005d72f2bbec05cfb9cb7b895e8ff71feb11070f861f8290199fb66c6b03a |
|
MD5 | 4e5f596df2267529f1e21efb24450a14 |
|
BLAKE2b-256 | 88f6ef1d5eb6bc4c111d1f3a8178229d6b61f7c40decb6b53a639cf656fce229 |
File details
Details for the file azfs-0.2.14-py3-none-any.whl
.
File metadata
- Download URL: azfs-0.2.14-py3-none-any.whl
- Upload date:
- Size: 41.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdc9e4239e7455396156e056144a2f1540be84d64079c86b7582f897a3d2a8aa |
|
MD5 | 6e7943d365390274ec8f06e260218987 |
|
BLAKE2b-256 | 50671159bf5464b1256a1f9dfd7649fdc9bf8291510a4914cba80b6968071629 |