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.1.0.tar.gz (26.4 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.1.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pattern_agentic_settings-1.1.0.tar.gz
  • Upload date:
  • Size: 26.4 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.1.0.tar.gz
Algorithm Hash digest
SHA256 dc5aa995a5efd6c6447eb40f480cd95f12602822f5b50867630bed396c0f1732
MD5 e008b6b8ed65bd2b5c1888e2a15df854
BLAKE2b-256 b82e2c093e546a4585cade76b3a2c02633b62d412be39f1dae5a0c0003b95909

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pattern_agentic_settings-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 084ecd0badd4891e3e3c108751f47d5896ed5026573c67b330a2689bba24e555
MD5 492a3a506d25f1534f2f478ea357074b
BLAKE2b-256 28095e9b084bb4906759b46df0df0da38cbc4cdb39bac2fbeb86b9e210d8e1c5

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