开发人员的配置处理

devconfig的Python项目详细描述


rfc2119 for keywords

目的

  • 提供配置python2python3应用程序的统一方法
  • 方便具有技术背景的开发人员、devops、qa和用户

读数

要求

  1. 必须支持现成的yaml
  2. 必须通过递归合并开发人员定义的配置(默认值)和运行时提供的配置配置程序(独立模块或python包)。
  3. 每个配置层(例如默认值、运行时配置等)必须是嵌套映射
  4. 合并层的数量是不受限制的,开发人员可以重新定义
  5. 层合并顺序可以由开发人员重新定义
  6. 必须包含一组yamlconstructors
    • !url
    • !date
    • !datetime
    • !timedelta
    • !strjoin
    • !envvar
    • !regexp
    • !filecontent
  7. 应该包含一组危险的yaml构造函数
    • !file
    • !socket
    • !yamlfile-按文件路径或url包含yaml
  8. may具有递归检测的流程构造函数(请参见需求说明)
  9. 可以包含cli arg映射构造函数
  10. 应该提供在加载配置之前扩展构造函数集的方法
  11. 必须提供使用^{}和合并配置中的值配置日志记录的方法
  12. 运行时配置路径可以用envvar重新定义(比如$ CONFIG=./some-config.yml program.py
  13. 运行时配置路径可以用cli arg重新定义(如$ program.py --config=./some-config.yml
  14. 应该启用层之间的anchors共享
  15. 应该不允许重新定义以前层中定义的锚
  16. 必须支持文件系统路径作为配置路径
  17. 必须支持file://http(s)://url作为配置路径
  18. may支持将ftp://url作为配置路径
  19. may支持将git://url作为配置路径

要求注释

    {CD21}}、^ {CD22}}和^ {CD13}}被认为是危险的,因为类或对象创建可能需要构造函数调用中不存在的现有配置。!yamlfile可以在内部引用!class!object和/或导致infinte yaml加载递归或模块加载递归。
  • !file!socket被认为是危险的,因为它们不可序列化

实施

  • 提供<module>.<config>子模块,其中包含作为映射的结果配置

是吗???

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

推荐PyPI第三方库


热门话题
Maven中的java,为什么要运行“mvn clean”?   java会降低图像质量。OutOfMemory异常Android   在Java8中将函数传递到流的过滤方法   jboss6。x java。lang.NoClassDefFoundError,当我将<listenerclass>包含到web时。xml java   java读取图像像素时,像素Alpha始终为255   java在迭代后跳过一行   java如何创建我自己的单链表   意图上的java空指针异常。getStringExtra.:安卓   具有连接实体的java Hibernate onetoone映射   java需要帮助在自制的仓鼠模拟器上实现启动/恢复/暂停/停止线程操作   如何测试非主方法?[Java,IntelliJ]   java jdbc自动提交(false)不起作用   java在JADE中的同一容器中创建多个代理   java OkHttp获取失败的响应正文   java Webdriver flash按钮