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

Installation

pip install pattern_agentic_settings[hotreload]

Note that without the hotreload extension:

pip install pattern_agentic_settings

watchfiles is not pulled in, and dot envs will not auto-reload.

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')

# This will watch the env file on disk and reload values if it changes
# This must be called in the context of an existing async runloop
# it also requires the hotreload extension (see Installation)

settings.watch_env_file()

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-2.0.0.tar.gz (27.7 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-2.0.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for pattern_agentic_settings-2.0.0.tar.gz
Algorithm Hash digest
SHA256 9aec547b00a3a261a98c8197255a38659425a65741487e70facea1b5777a940e
MD5 89f5dcd7384af5dae9cab1fd59741537
BLAKE2b-256 94b544b2580fcd30fe699612bdbcfa0906f45ca836f920df578de239c8f72b1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pattern_agentic_settings-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4936d8950ac2ec39d5192d49dfd397ba0d0498448f8ac653210f3e906d1a0887
MD5 456cea731613dc2d90db9b4003b8e225
BLAKE2b-256 46b3cd7e51ba6a27de1ca9966f30bb5b5cbd72d4359c32cd208709fa5b57429a

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