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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for streamlit_azure_kit-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 106dc7627e222cc94f01a99b4747467bb33f05cfa366f02392a5747883c8f9ae
MD5 85edc65f89fb7eab2a2db934dccead46
BLAKE2b-256 202474e076ad938652a1423b4d8913e9b4e84d486472c0661d4a62d51bb3f7e8

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