# Pydantic Settings Doppler
[](https://codecov.io/gh/ajauniskis/pydantic-settings-doppler)
[](https://docs.pydantic.dev/latest/contributing/#badges)
Pydantic Settings for Doppler integration! This package provides a seamless way to load configuration values from [Doppler](https://www.doppler.com/) into your Pydantic models. It leverages the power of Doppler's secrets management and Pydantic's settings management to make your application configuration secure and easy to use.
## 🚀 Features
- **Secure**: Fetch secrets directly from Doppler.
- **Simple**: Integrates seamlessly with Pydantic's `BaseSettings`.
- **Flexible**: Supports environment variable fallbacks and default values.
## 📦 Installation
Install the package using `pip`:
```bash
pip install pydantic-settings-doppler
```
## 🛠️ Usage
Here's a quick example to get you started:
```python
from pydantic_settings import BaseSettings
from pydantic_settings.sources import PydanticBaseSettingsSource
from pydantic_settings_doppler import DopplerSettingsSource
class Settings(BaseSettings):
database_url: str
api_key: str
@classmethod
def settings_customise_sources(
cls,
settings_cls: type[BaseSettings],
init_settings: PydanticBaseSettingsSource,
env_settings: PydanticBaseSettingsSource,
dotenv_settings: PydanticBaseSettingsSource,
file_secret_settings: PydanticBaseSettingsSource,
) -> tuple[PydanticBaseSettingsSource, ...]:
return (
init_settings,
DopplerSettingsSource(
settings_cls,
token="your-doppler-token",
project_id="your-project-id",
config_id="your-config-id",
),
env_settings,
dotenv_settings,
file_secret_settings,
)
# Load settings
settings = Settings()
print(settings.database_url)
print(settings.api_key)
```
## 📖 Documentation
For more details, check out the [Doppler documentation](https://www.doppler.com/docs) and [Pydantic documentation](https://docs.pydantic.dev/).
## 🧑💻 Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
## ⚖️ License
This project is licensed under the [MIT License](./LICENSE).
Raw data
{
"_id": null,
"home_page": null,
"name": "pydantic-settings-doppler",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "pydantic, settings, doppler, configuration, environment variables",
"author": "Algirdas Jauniskis",
"author_email": "jauniskis.a@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/01/c1/97f534d9f6abe5e4068fcaf6488c6ed25b27f36a5648e4fed31e83e1f6c4/pydantic_settings_doppler-0.1.0.tar.gz",
"platform": null,
"description": "# Pydantic Settings Doppler\n[](https://codecov.io/gh/ajauniskis/pydantic-settings-doppler)\n[](https://docs.pydantic.dev/latest/contributing/#badges)\n\nPydantic Settings for Doppler integration! This package provides a seamless way to load configuration values from [Doppler](https://www.doppler.com/) into your Pydantic models. It leverages the power of Doppler's secrets management and Pydantic's settings management to make your application configuration secure and easy to use.\n\n## \ud83d\ude80 Features\n\n- **Secure**: Fetch secrets directly from Doppler.\n- **Simple**: Integrates seamlessly with Pydantic's `BaseSettings`.\n- **Flexible**: Supports environment variable fallbacks and default values.\n\n## \ud83d\udce6 Installation\n\nInstall the package using `pip`:\n\n```bash\npip install pydantic-settings-doppler\n```\n\n## \ud83d\udee0\ufe0f Usage\n\nHere's a quick example to get you started:\n\n```python\nfrom pydantic_settings import BaseSettings\nfrom pydantic_settings.sources import PydanticBaseSettingsSource\n\nfrom pydantic_settings_doppler import DopplerSettingsSource\n\n\nclass Settings(BaseSettings):\n database_url: str\n api_key: str\n\n @classmethod\n def settings_customise_sources(\n cls,\n settings_cls: type[BaseSettings],\n init_settings: PydanticBaseSettingsSource,\n env_settings: PydanticBaseSettingsSource,\n dotenv_settings: PydanticBaseSettingsSource,\n file_secret_settings: PydanticBaseSettingsSource,\n ) -> tuple[PydanticBaseSettingsSource, ...]:\n return (\n init_settings,\n DopplerSettingsSource(\n settings_cls,\n token=\"your-doppler-token\",\n project_id=\"your-project-id\",\n config_id=\"your-config-id\",\n ),\n env_settings,\n dotenv_settings,\n file_secret_settings,\n )\n\n\n# Load settings\nsettings = Settings()\nprint(settings.database_url)\nprint(settings.api_key)\n\n```\n\n## \ud83d\udcd6 Documentation\n\nFor more details, check out the [Doppler documentation](https://www.doppler.com/docs) and [Pydantic documentation](https://docs.pydantic.dev/).\n\n## \ud83e\uddd1\u200d\ud83d\udcbb Contributing\n\nContributions are welcome! Feel free to open issues or submit pull requests.\n\n## \u2696\ufe0f License\n\nThis project is licensed under the [MIT License](./LICENSE).\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Settings management for Pydantic models using Doppler",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/ajauniskis/pydantic-settings-doppler/issues",
"Changelog": "https://github.com/ajauniskis/pydantic-settings-doppler/blob/main/CHANGELOG.md",
"Homepage": "https://github.com/ajauniskis/pydantic-settings-doppler",
"Repository": "https://github.com/ajauniskis/pydantic-settings-doppler"
},
"split_keywords": [
"pydantic",
" settings",
" doppler",
" configuration",
" environment variables"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1ab5f4157089c0032bdf908b1aa166de99a88f3c58cb589a31dd909e2fbf4712",
"md5": "685201bf1e333c854d004b692863a9b6",
"sha256": "054be753f04d35140d29027d7c7c9e5d3c2dc6196b8b0f9f94841e59b9defb39"
},
"downloads": -1,
"filename": "pydantic_settings_doppler-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "685201bf1e333c854d004b692863a9b6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 4885,
"upload_time": "2025-04-20T21:48:51",
"upload_time_iso_8601": "2025-04-20T21:48:51.311164Z",
"url": "https://files.pythonhosted.org/packages/1a/b5/f4157089c0032bdf908b1aa166de99a88f3c58cb589a31dd909e2fbf4712/pydantic_settings_doppler-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "01c197f534d9f6abe5e4068fcaf6488c6ed25b27f36a5648e4fed31e83e1f6c4",
"md5": "6477eecc00795e36bd94f704f25da98f",
"sha256": "9d7b69edf22aa6ee6a4d112876816d408e05c3d18578e1484af981baf04ef3ba"
},
"downloads": -1,
"filename": "pydantic_settings_doppler-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "6477eecc00795e36bd94f704f25da98f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 4277,
"upload_time": "2025-04-20T21:48:52",
"upload_time_iso_8601": "2025-04-20T21:48:52.932536Z",
"url": "https://files.pythonhosted.org/packages/01/c1/97f534d9f6abe5e4068fcaf6488c6ed25b27f36a5648e4fed31e83e1f6c4/pydantic_settings_doppler-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-04-20 21:48:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ajauniskis",
"github_project": "pydantic-settings-doppler",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pydantic-settings-doppler"
}