CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-azure-data-tables

Microsoft Azure Data Tables Client Library for Python

90

0.96x
Quality

Pending

Does it follow best practices?

Impact

90%

0.96x

Average score across 10 eval scenarios

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

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
Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/azure-data-tables@12.7.x
Publish Source
CLI
Badge
tessl/pypi-azure-data-tables badge