Skip to main content

Pydantic-powered config management

Project description

Pattern Agentic Settings

A settings class based on pydantic-settings that facilitates:

  • printing all settings on startup (redacts senstive attrs)
  • easy loading of .env files via an env variable
  • optionally load app version from importlib (sourced from pyproject.toml)
  • optional hot reload using watchfiles

Example

class Settings(PABaseSettings):
    model_config = SettingsConfigDict(
        env_prefix="MYAPP_"
    )
    worker_count: int

# expects MYAPP_WORKER_COUNT 
# if MYAPP_DOT_ENV points to a file, will try to load vars from it
# throws an error if not defined
settings = Settings.load('my_app')

Exepcted output:

My App v1.0.0
Configuration:
  WORKER_COUNT: 3

And on failure:

RuntimeError: Configuration validation failed:

      Missing required configuration fields:
        - worker_count

Tests

To run the tests the package must be installed in edit mode:

uv pip install -e .

# or to test hotreload
uv pip install -e .[hotreload]

After that:

# Base test
uv run pytest tests/test_base.py

# All tests
uv run pytest

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

pattern_agentic_settings-1.0.0.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

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

pattern_agentic_settings-1.0.0-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file pattern_agentic_settings-1.0.0.tar.gz.

File metadata

  • Download URL: pattern_agentic_settings-1.0.0.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for pattern_agentic_settings-1.0.0.tar.gz
Algorithm Hash digest
SHA256 db901f074b86f1b41e0e2b1f8e196af40f598a90e883a0c32cdc58fa92939db1
MD5 0dfd4da6aafbd53ee99179ecbd0e84d6
BLAKE2b-256 dd8d062ec0648a8d3ac421d08dc0011063ef26c1a79bbab948dbcace9eee5702

See more details on using hashes here.

File details

Details for the file pattern_agentic_settings-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pattern_agentic_settings-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 83cd9ff82dc30d8b8ede30bce30eb9ab3960f594a065aad04e764a0d15d8e790
MD5 131b956a1a01fb192b40137b5b48525a
BLAKE2b-256 f842a663e2f45abc56c7269ee1df49af0d79cafc0440629b70f4d29c0cc0264f

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