or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

async-operations.mdbatch-operations.mdentity-data-types.mderror-handling.mdindex.mdsecurity-access-control.mdservice-management.mdtable-operations.md
tile.json

tessl/pypi-azure-data-tables

Microsoft Azure Data Tables Client Library for Python

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/azure-data-tables@12.7.x

To install, run

npx @tessl/cli install tessl/pypi-azure-data-tables@12.7.0

index.mddocs/

Azure Data Tables

Microsoft Azure Data Tables Client Library for Python provides a comprehensive interface for interacting with Azure Tables, a NoSQL data storage service. It supports both Azure Storage and Azure Cosmos DB accounts, enabling scalable data storage with simple CRUD operations, batch transactions, and powerful querying capabilities.

Package Information

  • Package Name: azure-data-tables
  • Language: Python
  • Installation: pip install azure-data-tables

Core Imports

from azure.data.tables import TableServiceClient, TableClient

For entity operations:

from azure.data.tables import TableEntity, EntityProperty, EdmType

For async operations:

from azure.data.tables.aio import TableServiceClient, TableClient

Basic Usage

from azure.data.tables import TableServiceClient, TableClient, TableEntity

# Initialize service client with connection string
service_client = TableServiceClient.from_connection_string(
    conn_str="DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey"
)

# Create a table
table_client = service_client.create_table(table_name="mytable")

# Create an entity
entity = TableEntity()
entity["PartitionKey"] = "pk001"
entity["RowKey"] = "rk001"
entity["Name"] = "John Doe"
entity["Age"] = 30

# Insert the entity
table_client.create_entity(entity)

# Query entities
entities = table_client.query_entities(
    query_filter="PartitionKey eq 'pk001'",
    select=["Name", "Age"]
)

for entity in entities:
    print(f"Name: {entity['Name']}, Age: {entity['Age']}")

Architecture

The Azure Data Tables library follows a hierarchical client architecture:

  • TableServiceClient: Account-level operations managing tables, service properties, and analytics
  • TableClient: Table-specific operations for entity CRUD, batch transactions, and queries
  • TableEntity: Dictionary-based entity representation with metadata support
  • Async Variants: Complete async/await pattern support for non-blocking operations

This design enables efficient resource management, connection pooling, and both synchronous and asynchronous programming patterns for high-performance applications.

Capabilities

Service Management

Account-level operations including table management, service configuration, analytics, and CORS settings. Provides comprehensive service administration capabilities.

class TableServiceClient:
    def __init__(self, endpoint: str, credential=None, **kwargs): ...
    def create_table(self, table_name: str, **kwargs) -> TableClient: ...
    def delete_table(self, table_name: str, **kwargs) -> None: ...
    def list_tables(self, **kwargs) -> ItemPaged[TableItem]: ...
    def get_service_properties(self, **kwargs) -> Dict[str, object]: ...
    def set_service_properties(self, **kwargs) -> None: ...

Service Management

Table Operations

Table-specific operations for entity management, CRUD operations, batch transactions, and advanced querying with filtering and pagination support.

class TableClient:
    def __init__(self, endpoint: str, table_name: str, **kwargs): ...
    def create_entity(self, entity: Union[TableEntity, Dict], **kwargs) -> Dict[str, Any]: ...
    def get_entity(self, partition_key: str, row_key: str, **kwargs) -> TableEntity: ...
    def update_entity(self, entity: Union[TableEntity, Dict], **kwargs) -> Dict[str, Any]: ...
    def delete_entity(self, partition_key: str, row_key: str, **kwargs) -> None: ...
    def query_entities(self, query_filter: str, **kwargs) -> ItemPaged[TableEntity]: ...
    def submit_transaction(self, operations: List, **kwargs) -> List[Dict[str, Any]]: ...

Table Operations

Entity Data Types

Data modeling capabilities including type-safe entity properties, metadata handling, and Entity Data Model (EDM) type specifications for precise data representation.

class TableEntity(dict):
    metadata: EntityMetadata

class EntityProperty:
    value: Any
    edm_type: Union[str, EdmType]

class EdmType(Enum):
    STRING = "Edm.String"
    INT32 = "Edm.Int32"
    INT64 = "Edm.Int64"
    BOOLEAN = "Edm.Boolean"
    DATETIME = "Edm.DateTime"
    GUID = "Edm.Guid"
    BINARY = "Edm.Binary"
    DOUBLE = "Edm.Double"

Entity Data Types

Security and Access Control

Shared Access Signature (SAS) generation, access policies, and permission management for secure, time-limited access to tables and entities.

def generate_account_sas(
    credential: AzureNamedKeyCredential,
    resource_types: ResourceTypes,
    permission: Union[str, AccountSasPermissions],
    expiry: Union[datetime, str],
    **kwargs
) -> str: ...

def generate_table_sas(
    credential: AzureNamedKeyCredential,
    table_name: str,
    permission: Union[str, TableSasPermissions] = None,
    expiry: Union[datetime, str] = None,
    **kwargs
) -> str: ...

Security and Access Control

Error Handling

Comprehensive exception handling with specific error codes, transaction failure management, and detailed error information for robust application development.

class TableTransactionError(Exception):
    index: int
    error_code: TableErrorCode
    message: str
    additional_info: Dict[str, Any]

class RequestTooLargeError(TableTransactionError): ...

class TableErrorCode(Enum):
    AUTHENTICATION_FAILED = "AuthenticationFailed"
    RESOURCE_NOT_FOUND = "ResourceNotFound"
    ENTITY_ALREADY_EXISTS = "EntityAlreadyExists"
    # ... additional error codes

Error Handling

Batch Operations

High-performance batch transaction processing supporting multiple entity operations in single atomic transactions with comprehensive operation types.

class TransactionOperation(Enum):
    CREATE = "create"
    UPDATE = "update"
    UPSERT = "upsert"
    DELETE = "delete"

class UpdateMode(Enum):
    REPLACE = "replace"
    MERGE = "merge"

Batch Operations

Async Operations

Complete asynchronous operation support using async/await patterns for non-blocking I/O, providing identical functionality to synchronous clients with improved performance for concurrent scenarios.

from azure.data.tables.aio import TableServiceClient, TableClient

class TableServiceClient:
    async def create_table(self, table_name: str, **kwargs) -> TableClient: ...
    async def list_tables(self, **kwargs) -> AsyncItemPaged[TableItem]: ...

class TableClient:
    async def create_entity(self, entity: Union[TableEntity, Dict], **kwargs) -> Dict[str, Any]: ...
    async def query_entities(self, query_filter: str, **kwargs) -> AsyncItemPaged[TableEntity]: ...

Async Operations

Common Types

# Type aliases for entity operations
EntityType = Union[TableEntity, Mapping[str, Any]]
TransactionOperationType = Union[
    Tuple[TransactionOperation, EntityType],
    Tuple[TransactionOperation, EntityType, Mapping[str, Any]]
]

# Metadata structure
class EntityMetadata(TypedDict):
    etag: Optional[str]
    timestamp: Optional[datetime]
    id: str  # optional
    type: str  # optional
    editLink: str  # optional