通过环境配置

viaenv的Python项目详细描述


viaenv-通过python环境进行配置

CircleCILicense

viaenv使用variable annotation 从环境变量中填充值。

示例

fromdatetimeimporttimedeltafromviaenvimportpopulate_from_envclassconfig:port:int=8080log_file:str='/var/log/server.log'timeout:timedelta=timedelta(milliseconds=100)populate_from_env(config,prefix='SRV',# If you don't pass env, populate_from_env will use os.environenv={'SRV_PORT':'9000','SRV_TIMEOUT':'300ms'})print(config.port)# 9000print(cfg.timeout==timedelta(milliseconds=300)# True

支持的类型

  • boolyyesttrueon1->;Truennoffalseoff0->;False
  • date2019-05-18
  • datetime2019-05-18T13:43:12
  • dict{"x": 1, "y": 2}(json格式)
  • float1.31e7
  • int120x120o120b12
  • list[1, 2, 3](json格式)
  • str:任何事情都会发生
  • time13:43:12
  • timedelta10us20ms30s17m2h7d1h20m

您可以通过调用register_type_parser(typ, parser)来添加类型 typ是一个类型(例如float),而parser是一个单参数函数 将获取字符串形式的值。

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

推荐PyPI第三方库


热门话题
java有没有办法使多个对象初始化更紧凑?   java确保BUnit包和测试包不包含在生产代码中   java如何使JTextField更小,而不是填满整个空间?   javaawt的矩形交点   用户连续登录应用程序的java条纹(Android)   maven如何在服务器上运行java项目,并将其作为jar添加到EAR项目中   java如何在jar/war的资源文件夹中创建png?   swing在Java中未选择列表项时禁用按钮   java GridView x BaseAdapter并在onItemClick中重新加载   java Apache POI未应用某些颜色索引   java创建URL使用uri有什么区别。解析/uri。生成器/连接字符串?   java JavaFX jfoenix运行时错误(JFXDatePicker)   右旋转二叉搜索树   在Java标准版中运行Java移动应用程序   java为什么要为每个实例创建静态hashmap?   java如何使用RTC唤醒和报警意图   java获取对象中的JSON表达式   (Java)服务器不接受多个连接   java为什么我的目的地为null?   java使用多个参数执行存储过程,并使用spring数据jpa将结果集映射到非实体类