跳转到主要内容

处理应用程序设置的辅助工具

项目描述

COOLFIG

https://img.shields.io/travis/GaretJax/coolfig.svg https://img.shields.io/pypi/v/coolfig.svg https://img.shields.io/pypi/dm/coolfig.svg https://img.shields.io/coveralls/GaretJax/coolfig/master.svg https://img.shields.io/badge/docs-latest-brightgreen.svg https://img.shields.io/pypi/l/coolfig.svg https://img.shields.io/requires/github/GaretJax/coolfig.svg

Coolfig是一个库,可以轻松编写由各种来源满足的配置规范。

安装

pip install coolfig

示例

定义您的模式

from coolfig import Settings, Value, types

class DefaultSettings(Settings):
     SECRET_KEY = Value(str)
     DEBUG = Value(types.boolean, default=False)
     DB_URL = Value(types.sqlalchemy_url)
     LOCALES = Value(types.list(str))

使用数据提供程序实例化配置

from coolfig import EnvConfig

settings = DefaultSettings(EnvConfig(prefix='MYAPP_'))

盈利

if settings.DEBUG:
    print(settings.SECRET_KEY)
else:
    print(settings.LOCALES)

connect(settings.DB_URL)

Django集成

在您的 settings.py 文件中

from coolfig import EnvConfig, load_django_settings

INSTALLED_APPS = (
   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',

   'testprj.my_custom_app',
)

MIDDLEWARE_CLASSES = (
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.common.CommonMiddleware',
   'django.middleware.csrf.CsrfViewMiddleware',
   'django.contrib.auth.middleware.AuthenticationMiddleware',
   'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
   'django.contrib.messages.middleware.MessageMiddleware',
   'django.middleware.clickjacking.XFrameOptionsMiddleware',
   'django.middleware.security.SecurityMiddleware',
)

ROOT_URLCONF = 'testprj.urls'

WSGI_APPLICATION = 'testprj.wsgi.application'

TEMPLATES = [
   {
      'BACKEND': 'django.template.backends.django.DjangoTemplates',
      'DIRS': [],
      'APP_DIRS': True,
      'OPTIONS': {
            'context_processors': [
               'django.template.context_processors.debug',
               'django.template.context_processors.request',
               'django.contrib.auth.context_processors.auth',
               'django.contrib.messages.context_processors.messages',
            ],
      },
   },
]

load_django_settings(EnvConfig(), locals())

然后,在每个应用的 settings 子模块中,您可以定义要添加到主设置对象的附加设置条目。例如,在 testprj/my_custom_app/settings.py 中,您可以添加以下内容

from coolfig import Settings, Value

class AppSettings(Settings):  # The class has to be named AppSettings
   MY_APP_SETTING = Value(str)

使用与Django设置机制100%兼容

from django.conf import settings

settings.MY_APP_SETTING

历史

3.1.0 - 2018-08-23

  • coolfig 导入 EnvDirConfig

3.0.0 - 2018-08-23

  • 取消了对密钥的显式支持,转而支持 EnvDirConfigFallbackProvider

  • 使用 blackisort 进行格式化。

  • 提高了测试覆盖率

2.0.0 - 2018-08-03

  • 支持Docker密钥。

1.0.2 - 2016-03-14

  • 其他错误修复。

1.0.1 - 2016-03-14

  • 修复了AppConfig检查中的错误。

1.0.0 - 2016-03-14

  • 添加了对Django AppConfig 的支持(包括在配置类上使用 settings 属性配置的自定义设置路径)。

  • 官方支持Django 1.4、1.5、1.6、1.7、1.8和1.9,运行在Python 2.7、3.4(其中Django支持自身支持的功能)和PyPy上。

0.4.0 - 2015-10-05

  • 添加了对Django设置指令CACHES的支持

  • 添加了对computed_values的支持

  • 添加了初始文档存根

0.3.0 - 2015-07-20

  • 添加了对Django的一级支持

  • 添加了更多的导入快捷方式(EnvConfigDictConfigload_django_settings

  • 添加了一个DictValue值,能够将具有相同前缀的多个键加载到同一个值中

  • 添加了一个API,可以将不同的设置模式合并到现有对象中

0.2.0 - 2015-05-31

  • 添加了一个EnvConfig提供者

  • 添加了一个dottedpath值类型

0.1.0 – 2015-05-30

  • 初始发布

项目详情


下载文件

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

源分发

coolfig-3.1.0.tar.gz (12.8 kB 查看散列)

上传时间:

构建分发

coolfig-3.1.0-py3-none-any.whl (15.4 kB 查看散列)

上传时间: Python 3

coolfig-3.1.0-py2.py3-none-any.whl (15.4 kB 查看散列)

上传时间: Python 2 Python 3

由以下支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF 赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页面