又一个环境包

yaep的Python项目详细描述


顾名思义,这个包裹进入了 与环境相关的包。这个计划的主要目标 为您提供填充 具有源的环境(默认情况下读取.env文件) 然后在配置文件中使用一个简单的函数 读取这些值或使用默认值。

值得注意的是,该软件处于活动状态 开发和接口将毫无预警地改变。

用法

用法很简单。在项目执行早期,或 在专用的配置模块中,导入populate env 从雅普包裹里。运行此命令将填充 使用.env文件中的值的环境。你可以 或者设置env_file参数或env_文件 要从另一个env文件读取的环境变量。

from yaev import populate_env populate_env()

现在可以设置配置。例如,在 settings.py或config.py:

from yaev import env DATABASE_URL = env(‘DATABASE_URL’, ‘sqlite://:memory:’)

env函数还有一些其他有用的技巧。例如, 允许默认值为“sticky”(粘性),也就是说 它是在环境中使用的。

os.getenv(‘foo’) # Returns None FOO = env(‘FOO’, ‘bar’, sticky=True) os.getenv(‘FOO’) # Returns ‘bar’

此外,默认情况下,您可以允许类似布尔值的值 在飞行中变为布尔人。

os.getenv(‘SOMETHING’) # Returns ‘True’ env(‘SOMETHING’) # Returns True

默认情况下,与“true”和“false”的比较不区分大小写 与1和0一起完成。您可以更改可用的 传入新布尔映射的值:

env(‘pony’, boolean_map={True: [‘True’, ‘1’, ‘Pony’]}) # Returns True

关于1和0的主题-你可以考虑如果 你打算得到一个整数 以“真”或“假”结束-你可以通过 将convert_booleans设置为false。另外,你可以 通过设置type_类显式转换返回值, 但请注意,如果convert_booleans为true,则 重写您的类型类。一些示例:

# SOMETHING is set to ‘1’ in the environment env(‘SOMETHING’) # Returns True env(‘SOMETHING’, convert_booleans=False) # Returns ‘1’ env(‘SOMETHING’, convert_booleans=False, type_class=int) # Returns 1

最后,如果值不是 在您的环境中设置:

env(‘IMPORTANT’, default=yaep.exceptions.UnsetException) # Raises yaep.exceptions.UnsetException

使用其他环境源

项目的目标是能够覆盖或添加到 从env文件中提取值的默认值。支持的 目标是备用源,如凭据服务器。

这方面的工作将在未来发布。

项目的版本和更改列表:

  • v0.0.6-删除安装程序需要依赖pypandoc。
  • v0.0.5-修复从sdist安装时的安装错误(缺少自述文件)
  • v0.0.4-修复pypandoc使用的问题。
  • v0.0.3-修复了布尔值默认值的问题,允许使用type_类和unsetexceptions。
  • v0.0.2-修复了configparser小写键的问题。
  • v0.0.1-初始提交到github。

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

推荐PyPI第三方库


热门话题
virtualbox无法从java移动共享文件夹中的文件   java如何连接Android 4.3.5(GA)的apache HttpClient库?   片段中的java Recyclerview未立即显示警报对话框结果   javac(n,r)计算器程序不工作   java使用BooleanQuery还是编写更多索引?   如何在java中设置y/n循环?   java不兼容的通用通配符捕获   java如何在安卓xml中编写数据绑定时的三元操作条件   java如何使用FileDialog?   java如何创建单元测试来检测是否有人使用错误的编码编辑了文件?   java如何从唯一的字符串生成唯一的int?   java gradletomcatplugin:log4j:WARN找不到记录器的附加程序   java我的动态编程解决方案(Kefa和第一步)在codeforces中有什么问题?   java每天更新两个数据库,使它们都包含相同的有效数据集   java如何检查给定的时间是否在时间限制之间   java在单个json POST上保存父级和子级   java如何获取Solr字段类型