跳转到主要内容

Django和其他Python项目更好的配置库

项目描述

Walter是一个配置库,灵感来源于python-decouple,旨在替换Django settings.py文件中对os.environ的直接访问(尽管它绝对不是Django特定的)。它目前支持Python 3.6+。

它与其他类似库的不同之处在于:当您的用户尝试使用无效配置启动您的应用程序时,他们收到的错误消息会显示所有配置参数的所有错误列表,而不仅仅是第一个。

安装

pip install walter
# or
poetry add walter

用法

这里有一个使用Walter定义其配置的Python文件的示例。

from walter.config import Config

with Config(author="Acme Inc.", name="My Awesome App") as config:

    # Read a configuration value with config()
    SECRET_KEY = config('SECRET_KEY')

    # Convert the returned value to something other than a string with cast.
    DEBUG = config('DEBUG', cast=bool)

    # You can pass any function that takes a string to `cast`.
    # Here, we're using a third party function to parse a database URL
    # string into a Django-compatible dictionary.
    import dj_database_url
    DATABASES = {
        'default': config('DATABASE_URL', cast=dj_database_url.parse),
    }

    # You can also make a parameter optional by giving it a default.
    SENTRY_DSN = config('SENTRY_DSN', default=None)

print(f"Here, you can use values like {SITE_NAME}!")

如果我们不设置任何内容就运行这段代码,Walter会在with块的末尾抛出错误。

Traceback (most recent call last):
File "<stdin>", line 27, in <module>
File "/Users/leigh/Projects/walter/walter/config.py", line 90, in __exit__
    raise ConfigErrors(errors=self.errors)
walter.config.ConfigErrors: 4 configuration values not set, 0 invalid

SECRET_KEY not set
DEBUG not set
DATABASE_URL not set
SITE_NAME not set

请注意,Walter列出了我们配置中的所有错误,而不仅仅是第一个!如果我们将这些设置作为环境变量设置并再次运行代码,代码将运行到完成。

Here, you can use values like MyAwesomeApp!

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

walter-1.2.tar.gz (16.7 kB 查看哈希值)

上传于

构建版本

walter-1.2-py3-none-any.whl (17.4 kB 查看哈希)

上传于 Python 3