pydantic-settings-doppler


Namepydantic-settings-doppler JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummarySettings management for Pydantic models using Doppler
upload_time2025-04-20 21:48:52
maintainerNone
docs_urlNone
authorAlgirdas Jauniskis
requires_python>=3.9
licenseMIT
keywords pydantic settings doppler configuration environment variables
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Pydantic Settings Doppler
[![codecov](https://codecov.io/gh/ajauniskis/pydantic-settings-doppler/graph/badge.svg?token=XB1M3ET2H7)](https://codecov.io/gh/ajauniskis/pydantic-settings-doppler)
[![Pydantic v2 only](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json)](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[![codecov](https://codecov.io/gh/ajauniskis/pydantic-settings-doppler/graph/badge.svg?token=XB1M3ET2H7)](https://codecov.io/gh/ajauniskis/pydantic-settings-doppler)\n[![Pydantic v2 only](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json)](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"
}
        
Elapsed time: 0.92660s