易于定义和引用配置选项

econf的Python项目详细描述


导言

econf使定义配置选项和引用它们变得容易。 这些选项可以通过命令行或配置文件提供

安装

$ pip install http://github.com/wangst321/econf.git

如何使用

定义选项

首先,导入econf

from econf import *

对于属于“默认”部分的默认选项:

from econf import BaseConf

class DefaultConf(BaseConf):
    host = StrOpt(default='0.0.0.0', cmdline=True,
                  help='ip address')
    port = IntOpt(default=9090, cmdline=True,
                  help='tcp port')

对于属于其他部分的选项:

class ZKConf(BaseConf):
    __section__ = 'zk'

    hosts = StrOpt(
        required=True,
        help='list of zookeeper ip:port pair. i.e. localhost:2181')
    max_retry = IntOpt(
        default=3,
        help='number of tries before giving up connecting')

在代码中使用选项

有两种方法可以引用选项。 首先,使用特定的Conf类:

host, port = DefaultConf.host, DefaultConf.port

其次,使用常规配置:

host, port = CONF.host, CONF.port
zk_hosts = CONF.zk.hosts

解析cli选项和配置文件

注意

当代码执行时,此步骤应始终位于 语句,引用选项。

如果提供了默认配置:

from econf import CONF
CONF('path/to/your/default.conf')

或者,

from econf import CONF
CONF()

通常,这段代码是在服务启动之前执行的

def run():
    from econf import CONF
    CONF()

    my_service.init(CONF.host, CONF.port, ...)
    my_service.start()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java有没有办法用REST客户机取代Symfony中的条令?   java确定在配置单元中创建UDF的语言   java Quarkus K8S运算符在运行测试时不执行此字段   java如何处理图像的事件触摸?   java“2147483647”是excel的默认值吗?   带有服务器端事件的java Play Framework 2.5   java如何在Jpa存储库中创建地图   java将多个二进制文件复制到单个二进制文件   爪哇石头剪刀布游戏(菜单法)   编码将十六进制转换为特殊字符(Java)   数据库身份验证中基于Java控制台的客户端服务器登录应用程序错误   我的GUI编程与Java中的递归集成的一点帮助   java无法调用。OCX法   Ant和Maven之间的java差异   Java中的安全网络入侵检测系统。。!   java传递&使用解析云代码添加两个数字?   如何将Active Directory路径转换为Java提供程序Url?   商业应用的免费帮助系统?   无法在Java Selenium中检测/单击签出按钮   java如何使用XPATH访问特定的子节点?