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 查看哈希)
关闭
walter-1.2.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 36f2d010bd7261781576199d0fd5b948b2a3d2b29fd022e72931f3293ee01c79 |
|
MD5 | 6d8d128bbdb4831c4576fc40ebaae333 |
|
BLAKE2b-256 | d4f7f95fdc26efaf6e099325d4a1498103f08058c3d131b294a4b9a142f1b45a |
关闭
walter-1.2-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bc1ea414f3c721cdca4f3af749f43acae1d5bb694dcfef99b1912bba5e15a358 |
|
MD5 | 2a2fca0afac134f722a431d9cba8fab7 |
|
BLAKE2b-256 | f7e5abdfd923e7dcb9d8e0ebe59c7b04e4ad804edf10c1bc0867241a0962a3f4 |