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.3-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for streamlit_azure_kit-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ac824c0241a3f2c6bff5479b707898ae7ce9d6f5451f1842310e2178824586af
MD5 c55cdfb403dec17961b067e12953ae87
BLAKE2b-256 04d0a2f28ceb32bb7208466f6c1e8d193209fef29645e80828d89bef62de1ca6

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