支持应用程序和plaftorm之间显式契约的工具

ep的Python项目详细描述


[![构建状态](https://travis ci.org/txels/ep.svg)(https://travis ci.org/txels/ep)
[![代码运行状况](https://landscape.io/github/txels/ep/master/landscape.svg)(https://landscape.io/github/txels/ep/master)
[![我能用python 3吗?](https://caniusepython3.com/check/00276696-d27c-46f0-b10e-0c7bd684f786.svg)(https://caniusepython3.com/check/00276696-d27c-46f0-b10e-0c7bd684f786)

应用程序与
平台之间的契约(https://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_corrution_resistance_explicit_contract s),
`ep`旨在提供一种可重用的机制来覆盖该契约。

概括来说,heroku的契约基于:

ment:声明为代码库的一部分
-procfile:作为指定应该运行什么的机制
-web进程绑定到$port(外部提供的环境变量
-stdout用于日志
-环境中的资源句柄:用于配置的环境变量,尤其是
ula用于连接外部资源




合同的细节是通过配置文件指定的,该配置文件位于应用程序存储库的根目录下。此配置文件
采用yaml格式,默认情况下称为"ep.yml"。




` ep的目标是至少覆盖
以下内容:

-`python`:通过pip安装需求文件。默认为根文件夹
-`node`:via npm install of a package file。默认为'package.json'
根目录

>;这里的根目录指的是'ep.yml'所在的目录。

>;未来的扩展可能包括ruby gems、bower包,甚至在某些操作系统上的操作系统级包

` ep`:
-工具将能够安装的那些
-工具将只验证但不尝试安装的那些。其中包括
例如,系统中的python版本

其中一些依赖项将具有其默认值。
这可能是"ep.yml"的部分示例。

``yaml
ep:1.0.0
依赖项:
-python
版本:2.7
文件:需求/运行时.txt
-npm
```

ep安装依赖项的命令是:


`ep`将始终在隔离环境中安装依赖项。这意味着
例如,python中的虚拟环境、本地npm安装等,"ep"将为您管理
此隔离环境的创建。

r/>
`ep`不强制您使用'procfile',但允许您定义run
命令:

``yaml
run:gunicorn myapp.wsgi
`````

>默认为在根目录中运行'procfile'。



``yaml
运行:
-echo"开始…"
-gunicorn myapp.wsgi
```



"ep.yml"文件提供了这些变量的明确定义,以及可选的默认值和帮助。


DEF错误:

``yaml
env:
port:
help:"Web应用程序将在其上运行的端口"
某些外部服务的URL:
help:"指向外部服务的URL blah。"
默认值:"http://localhost:9000"
````

`ep run`如果变量没有不提供默认值并拒绝运行。




至于"run",可以是单个字符串
或列表:


``yaml
检查:
-python-m unittest discover
-flake8 ep
````


###有些命令在ep的独立环境中运行命令。例如:

ep shell"pip list"

欢迎加入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将结果集映射到非实体类