Skip to main content

Configuration-driven database and storage utilities for Azure

Project description

streamlit-azure-kit

A JSON-based parameter-to-key mapper for database connections.

Installation

pip install streamlit-azure-kit

Quick Start

Database Connections

from streamlit_azure_kit.config import ConfigLoader
from streamlit_azure_kit.database import create_engine_from_config

# Load config and create database engine
config = ConfigLoader("config/endpoint_config.json")
db_config = config.get_database_config("my_dashboard", "primary_db")
engine = create_engine_from_config(db_config)

Blob Storage (Optional)

from streamlit_azure_kit.config import ConfigLoader
from streamlit_azure_kit.database import create_blob_client_from_config

# Load config and create blob storage client
config = ConfigLoader("config/endpoint_config.json")
storage_config = config.get_storage_config("my_dashboard", "blob_storage")
blob_client = create_blob_client_from_config(storage_config)

# Use the client
container = blob_client.get_container_client("mycontainer")

Authentication (Optional - Streamlit Apps Only)

from streamlit_azure_kit.auth import AuthHandler

# Optional - only for Streamlit dashboards
auth = AuthHandler("config/user_roles.json")
auth.require_auth()

Configuration

Your application needs an endpoint_config.json file.

Minimal Database Configuration

{
  "_database_definitions": {
    "my_db": {
      "server": "myserver.database.windows.net",
      "database": "mydb",
      "db_engine_type": "always_on",
      "pool_size": 10,
      "max_overflow": 20,
      "pool_timeout": 30,
      "pool_recycle": 3600,
      "connection_timeout": 30,
      "retry_config": {
        "max_retries": 6,
        "delay": 2.0
      }
    }
  },
  "my_app": {
    "production": {
      "primary_db": "my_db"
    }
  }
}

Storage Configuration (Optional)

{
  "_storage_definitions": {
    "my_storage": {
      "account_name": "mystorageaccount",
      "connection_timeout": 20
    }
  },
  "my_app": {
    "production": {
      "blob_storage": "my_storage"
    }
  }
}

Note: Only account_name is required for storage. Optional parameters: connection_timeout, max_single_put_size, max_block_size.

Requirements

  • Python >= 3.9
  • SQLAlchemy >= 2.0.0
  • Azure Identity >= 1.14.0
  • PyODBC >= 4.0.0
  • Pandas >= 2.0.0
  • Azure Storage Blob >= 12.0.0

License

MIT License - See LICENSE file for details

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

streamlit_azure_kit-0.3.2-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file streamlit_azure_kit-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for streamlit_azure_kit-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1ddcf537fdabf221d2b0204cca85fe483441b44c3191f031d8d2ca97fd1cf096
MD5 24a1aa7f48f40a2b7ef850310df6c6f0
BLAKE2b-256 f414f8ae619c966377ec956f830cd7861f9b804a06a84f77dd34f9634a04bb56

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