Skip to main content

Azure helpers for SRX services: Blob, Email, Table, Document Intelligence, Speech Services

Project description

srx-lib-azure

Lightweight wrappers over Azure SDKs used across SRX services.

What it includes:

  • Blob: upload/download helpers, SAS URL generation
  • Email (Azure Communication Services): simple async sender
  • Table: simple CRUD helpers
  • Document Intelligence (OCR): document analysis from URLs or bytes

Install

PyPI (public):

  • pip install srx-lib-azure

uv (pyproject):

[project]
dependencies = ["srx-lib-azure>=0.1.0"]

Usage

Blob:

from srx_lib_azure.blob import AzureBlobService
blob = AzureBlobService()
url = await blob.upload_file(upload_file, "documents/report.pdf")

Email:

from srx_lib_azure.email import EmailService
svc = EmailService()
await svc.send_notification("user@example.com", "Subject", "Hello", html=False)

Table:

from srx_lib_azure.table import AzureTableService
store = AzureTableService()
store.ensure_table("events")
store.upsert_entity("events", {"PartitionKey":"p","RowKey":"r","EventType":"x"})

Document Intelligence (OCR):

from srx_lib_azure import AzureDocumentIntelligenceService

# Initialize with endpoint and key
doc_service = AzureDocumentIntelligenceService(
    endpoint="https://your-resource.cognitiveservices.azure.com/",
    key="your-api-key"
)

# Analyze document from URL
result = await doc_service.analyze_document_from_url(
    url="https://example.com/document.pdf",
    model_id="prebuilt-read"  # or "prebuilt-layout", "prebuilt-invoice", etc.
)

# Analyze document from bytes
with open("document.pdf", "rb") as f:
    content = f.read()
result = await doc_service.analyze_document_from_bytes(
    file_content=content,
    model_id="prebuilt-read"
)

# Result structure:
# {
#     "success": True/False,
#     "content": "extracted text...",
#     "pages": [{"page_number": 1, "width": 8.5, ...}, ...],
#     "page_count": 10,
#     "confidence": 0.98,
#     "model_id": "prebuilt-read",
#     "metadata": {...},
#     "error": None  # or error message if failed
# }

Environment Variables

  • Blob & Table: AZURE_STORAGE_CONNECTION_STRING (required)
  • Email (ACS): ACS_CONNECTION_STRING, EMAIL_SENDER
  • Document Intelligence: AZURE_DOCUMENT_INTELLIGENCE_ENDPOINT, AZURE_DOCUMENT_INTELLIGENCE_KEY
  • Optional: AZURE_STORAGE_ACCOUNT_KEY, AZURE_BLOB_URL, AZURE_SAS_TOKEN

Optional Dependencies

All services are optional and won't break if their dependencies aren't installed:

# Base installation (includes all services by default)
pip install srx-lib-azure

# Or install only what you need - document intelligence is optional
pip install srx-lib-azure[document]  # Adds Document Intelligence support

# Install with all optional dependencies
pip install srx-lib-azure[all]

If you import a service without its required Azure SDK, it will log a warning but won't crash.

Release

Tag vX.Y.Z to publish to GitHub Packages via Actions.

License

Proprietary © SRX

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

srx_lib_azure-0.5.0.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

srx_lib_azure-0.5.0-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file srx_lib_azure-0.5.0.tar.gz.

File metadata

  • Download URL: srx_lib_azure-0.5.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for srx_lib_azure-0.5.0.tar.gz
Algorithm Hash digest
SHA256 281bd672d8305043235db6dfef08473f9e5f7fbda0da452274f1cef0ba5bee24
MD5 1abe1f0c430910ec5eca33e7e7a08348
BLAKE2b-256 14ae5bda8744ff64191f8fee97d2aa228606ab800f44ec9c1203d757659d901e

See more details on using hashes here.

File details

Details for the file srx_lib_azure-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: srx_lib_azure-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 18.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for srx_lib_azure-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 50a0b4402ab8d8b3ff20b0d405ed4b6197fe9eb3de2bd89ec63d87bc5da94818
MD5 1c6459e63d6eadca88d5aab3c96db7aa
BLAKE2b-256 3af5b23e0e1ee27601a5b00137a02d62edfb6247a0e0c403045a746bdfe6c5cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page