跳转到主要内容

框架或库的设置框架。

项目描述

config框架

什么是Config框架?

您的框架或库可能需要默认设置,并且您希望用户可以更改它们。

许多开发者编写了这类代码,您也将这样做。GluePlate就是它!

特性

易于编写 - 合并

您和您的用户都可以轻松编写。

只需导入Glue作为_,然后像嵌套字典一样编写。

from glueplate import Glue as _


settings = _(
    GLUE_PLATE_ENVIRONMENT_VARIABLE_KEY = 'BASEPACKAGE_SETTINGS_MODULE',
    from_base = 'comming from base',
    to_be_override = 'I am base.',
)

glueplate从os.environ[‘GLUE_PLATE_BASE_MODULE’]导入名为settings的变量,这是一个基本设置。

然后glueplate查找settings.GLUE_PLATE_ENVIRONMENT_VARIABLE_KEY,并从os.environ[settings.GLUE_PLATE_ENVIRONMENT_VARIABLE_KEY]导入名为settings的变量,这是用户自定义设置。自定义设置只需覆盖或添加用户需要的内容。

from glueplate import Glue as _


settings = _(
    from_sub='comming from sub',
    to_be_override = 'I am sub.',
)

它们将被合并并易于使用。

from glueplate import config

assert('I am sub' == config.settings.to_be_override)
assert('comming from base' == config.settings.from_base)
assert('comming from sub' == config.settings.from_sub)

追加到列表

您可能不想被用户覆盖,只需添加用户的额外数据。

glueplate提供特殊的前缀来追加原始设置变量。

  • GLUE_PLATE_PLUS_BEFORE_

    用户可以在前面追加列表。

    # base
    settings = _(
        list1 = [1,2,3],
    )
    
    # user customized
    settings = _(
        GLUE_PLATE_PLUS_BEFORE_list1 = [5,4]
    )
    
    # config.settings.list1 == [5, 4, 1, 2, 3]
  • GLUE_PLATE_PLUS_AFTER_

    与GLUE_PLATE_PLUS_BEFORE_相同,但向后追加。

    # base
    settings = _(
        list1 = [1,2,3],
    )
    
    # user customized
    settings = _(
        GLUE_PLATE_PLUS_AFTER_list1 = [5,4]
    )
    
    # config.settings.list1 == [1, 2, 3, 5, 4]

继承其他glueplate

您可能使用的是使用glueplate的库。环境变量GLUE_PLATE_BASE_MODULE在您的进程中只有一个。

您的基本设置可以指示库的gluplate设置模块。

  • GLUE_PLATE_PARENT_MODULES

    指定库的gluplate设置模块名称为列表。

    from glueplate import Glue as _
    
    
    settings = _(
        GLUE_PLATE_PARENT_MODULES=[
            'parentpackage1.parentpackage1_settings',
            'parentpackage2.parentpackage2_settings'
        ]
    )

项目详情


下载文件

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

源分布

glueplate-1.2.0.tar.gz (4.3 kB 查看哈希值)

上传时间

支持