Arca是一个用于从各种隔离状态下的git仓库运行Python函数(可调用对象)的库,同时集成了缓存。
项目描述
Arca
Arca是一个用于从各种隔离状态下的git仓库运行Python函数(可调用对象)的库。Arca还可以使用dogpile.cache来缓存这些可调用对象的结果。
入门指南
术语表
Arca - 库的名称。当写成Arca时,指的是主接口类。
任务 - 函数(可调用)的定义,由对象引用和参数组成。
后端 - 运行任务的方式。
安装
需求
Python >= 3.6
某些后端的需求
Pipenv(用于Virtualenv 后端的某些用例)
安装
安装最新稳定版本
python -m pip install arca
如果您想使用 Docker 后端
python -m pip install arca[docker]
或者如果您想使用 Vagrant 后端
python -m pip install arca[vagrant]
或者如果您希望安装上游版本
python -m pip install git+https://github.com/pyvec/arca.git#egg=arca
python -m pip install git+https://github.com/pyvec/arca.git#egg=arca[docker]
python -m pip install git+https://github.com/pyvec/arca.git#egg=arca[vagrant]
示例
要运行一个 Hello World 示例,您只需要 arca.Arca 和 arca.Task 类。 Task 用于定义在存储库中要运行的任务。 Arca 负责所有设置并提供运行任务的基本 API。
假设我们有一个名为 hello_world.py 的文件,位于存储库 https://example.com/hello_word.git 上的 master 分支。
def say_hello():
return "Hello World!"
要使用 Arca 调用函数,以下示例将做到这一点
from arca import Arca, Task
task = Task("hello_world:say_hello")
arca = Arca()
result = arca.run("https://example.com/hello_word.git", "master", task)
print(result.output)
代码将打印 Hello World!。 result 将是一个 arca.Result 实例。 arca.Result 有三个属性,output 包含函数调用的返回值,stdout 和 stderr 包含打印到标准输出(有关标准输出捕获的更多信息,请参阅结果部分)。如果任务失败,将引发 arca.exceptions.BuildError。
默认情况下,使用 当前环境后端 来运行任务,该后端使用当前 Python,在子进程中启动代码。您可以在此处了解有关后端的信息。
进一步阅读
您可以在 Read The Docs 上阅读完整的文档。
运行测试
要运行测试,您需要可选需求 Docker 和 Vagrant。一旦您拥有它们并且它们可以由当前用户使用,您只需运行
python setup.py test
这将启动测试和 PEP8 检查。测试将花费一些时间,因为自定义 Docker 镜像的构建也会被测试,Vagrant 通常需要很长时间才能设置。
贡献
欢迎贡献!请随意在 GitHub 上打开问题或提交拉取请求!
更改
0.3.3 (2019-12-10)
- 更改
更新依赖项
允许带有斜线的分支(#79)
0.3.2 (2019-11-23)
- 更改
将项目移至 Pyvec 组织下。
将基本镜像的 Docker 仓库更改为 arcaoss/arca。
修复了仓库的 Unicode 路径(#60)
0.3.1 (2018-11-16)
0.3.0 (2018-08-25)
- 更改
移除了 CurrentEnvironmentBackend 处理需求的功能 - 所有需求都被忽略。(向后不兼容)
增加了使用Pipenv安装依赖支持。包含
和 的目录由后端选项 pipfile_location
设置,默认选择仓库的根目录。Pipenv文件优先于常规的依赖文件。Result
类现在增加了两个属性,stdout
和stderr
,分别表示启动任务的标准输出和错误输出。因此现在在端点中允许打印。在DockerBackend使用的Docker镜像中使用了UTF-8地区设置。
支持Python 3.7。
0.2.1 (2018-06-11)
更新dogpile.cache到0.6.5,使其兼容Python 3.7。更新Docker后端以支持Python测试版。
0.2.0 (2018-05-09)
此版本与之前版本相比有多处向后不兼容的更改。
- 更改
使用扩展安装Docker和Vagrant依赖项。
必须使用以下命令:
pip install arca[docker]
或pip install arca[vagrant]
。
自动将已克隆的仓库作为新克隆分支的参考。
在Docker后端使用Debian作为默认的基础镜像。
apk_dependencies
更改为apt_dependencies
,现在使用apt-get
进行安装。
Vagrant后端只创建一个虚拟机,而不是多个——请参阅其文档。
为任务添加了超时,默认为5秒。可以使用
Task
的timeout
参数进行设置。为安装依赖项添加了超时,默认为300秒。可以使用后端的
requirements_timeout
配置选项进行设置。
0.1.1 (2018-04-23)
更新gitpython到2.1.9。
0.1.0 (2018-04-18)
初始发布。
- 更改
更新了PyPI描述和元数据。
0.1.0a0 (2018-04-13)
初始alpha版本。
项目详情。
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。