A library for running Python functions (callables) from git repositories in various states of isolation with integrating caching.
Project description
Arca
Arca is a library for running Python functions (callables) from git repositories in various states of isolation. Arca can also cache the results of these callables using dogpile.cache.
Getting started
Glossary
Arca - name of the library. When written as Arca, the main interface class is being referenced.
Task - definition of the function (callable), consists of a reference to the object and arguments.
Backend - a way of running tasks.
Installation
Requirements
Python >= 3.6
Requirements for certain backends:
Docker (for Docker Backend and Vagrant Backend)
Vagrant (for the Vagrant Backend)
Installation
To install the last stable version:
python -m pip install arca
Or if you wish to install the upstream version:
python -m pip install git+https://github.com/mikicz/arca.git#egg=arca
Example
To run a Hello World example you’ll only need the arca.Arca and arca.Task classes. Task is used for defining the task that’s supposed to be run in the repositories. Arca takes care of all the settings and provides the basic API for running the tasks.
Let’s say we have the following file, called hello_world.py, in a repository https://example.com/hello_word.git, on branch master.
def say_hello():
return "Hello World!"
To call the function using Arca, the following example would do so:
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)
The code would print Hello World!. result would be a arca.Result instance which currently only has one attribute, output, with the output of the function call. If the task fails, arca.exceptions.BuildError would be raised.
By default, the Current Environment Backend is used to run tasks, which uses the current Python, launching the code in a subprocess. You can learn about backends here.
Further reading
You can read the full documentation on Read The Docs.
Running tests
To run tests you’ll need the optional requirements, Docker and Vagrant. Once you have them and they can be used by the current user you just need to run:
python setup.py test
This will launch the tests and a PEP8 check. The tests will take some time since building the custom docker images is also tested and vagrant, in general, takes a long time to set up.
Contributing
I am developing this library as my bachelor thesis and will be not accepting any PRs at the moment.
Links
Repository: GitHub
PyPi package: arca
CI: Travis
Test coverage: Codecov
Documentation: Read The Docs
License
This project is licensed under the MIT License - see the LICENSE file for details.
Changes
0.1.0a0 (2018-04-13)
Initial alfa release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file arca-0.1.0a0.tar.gz
.
File metadata
- Download URL: arca-0.1.0a0.tar.gz
- Upload date:
- Size: 27.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83df7a890cba4b1361c46a25509871f190ed401192bdf48b6e03605dc9d0ddeb |
|
MD5 | fc12b016fed385a9b8b6afb529a14458 |
|
BLAKE2b-256 | f4f1d55743006e7501397df9f4e83f7ae62455e20e9b0db1de3822f7cc02205a |
File details
Details for the file arca-0.1.0a0-py3-none-any.whl
.
File metadata
- Download URL: arca-0.1.0a0-py3-none-any.whl
- Upload date:
- Size: 30.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bac784d39632bbbc428c33678f2045faa0379bc660e762747891db238e08ca9 |
|
MD5 | 519defba483c3bdb27386af44f1b929d |
|
BLAKE2b-256 | 347cd47dac082796263ff131eb2b2d77c06f124a081aba62bcc2f3c15247a5d3 |