{
"info": {
"author": "Mikul\u00e1\u0161 Poul",
"author_email": "mikulaspoul@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Security",
"Topic :: Software Development :: Build Tools",
"Topic :: Software Development :: Version Control :: Git",
"Topic :: Utilities"
],
"description": "Arca\n====\n\n.. image:: https://img.shields.io/travis/mikicz/arca.svg\n :target: https://travis-ci.org/mikicz/arca\n\n.. image:: https://img.shields.io/codecov/c/github/mikicz/arca.svg\n :target: https://codecov.io/gh/mikicz/arca\n\n.. image:: https://img.shields.io/pypi/v/arca.svg\n :target: https://pypi.org/project/arca/\n\n.. image:: https://img.shields.io/github/license/mikicz/arca.svg?style=flat\n :target: https://github.com/mikicz/arca/blob/master/LICENSE\n\n.. image:: https://img.shields.io/readthedocs/arca.svg\n :target: https://arca.readthedocs.io/\n\nArca is a library for running Python functions (callables) from git repositories in various states of isolation.\nArca can also cache the results of these callables using `dogpile.cache `_.\n\nGetting started\n***************\n\nGlossary\n++++++++\n\n* **Arca** - name of the library. When written as ``Arca``, the main interface class is being referenced.\n* **Task** - definition of the function (callable), consists of a reference to the object and arguments.\n* **Backend** - a way of running tasks.\n\nInstallation\n++++++++++++\n\nRequirements\n------------\n\n* Python >= 3.6\n\nRequirements for certain backends:\n\n* `Pipenv `_ (for certain usecases in `Virtualenv Backend `_)\n* `Docker `_ (for `Docker Backend `_\n and `Vagrant Backend `_)\n* `Vagrant `_ (for the `Vagrant Backend `_)\n\nInstallation\n------------\n\nTo install the last stable version:\n\n.. code-block:: bash\n\n python -m pip install arca\n\nIf you want to use the Docker backend:\n\n.. code-block:: bash\n\n python -m pip install arca[docker]\n\nOr if you want to use the Vagrant backend:\n\n.. code-block:: bash\n\n python -m pip install arca[vagrant]\n\nOr if you wish to install the upstream version:\n\n.. code-block:: bash\n\n python -m pip install git+https://github.com/mikicz/arca.git#egg=arca\n python -m pip install git+https://github.com/mikicz/arca.git#egg=arca[docker]\n python -m pip install git+https://github.com/mikicz/arca.git#egg=arca[vagrant]\n\nExample\n+++++++\n\nTo run a Hello World example you'll only need the ``arca.Arca`` and ``arca.Task`` classes.\n``Task`` is used for defining the task that's supposed to be run in the repositories.\n``Arca`` takes care of all the settings and provides the basic API for running the tasks.\n\nLet's say we have the following file, called ``hello_world.py``,\nin a repository ``https://example.com/hello_word.git``, on branch ``master``.\n\n.. code-block:: python\n\n def say_hello():\n return \"Hello World!\"\n\nTo call the function using Arca, the following example would do so:\n\n.. code-block:: python\n\n from arca import Arca, Task\n\n task = Task(\"hello_world:say_hello\")\n arca = Arca()\n\n result = arca.run(\"https://example.com/hello_word.git\", \"master\", task)\n print(result.output)\n\nThe code would print ``Hello World!``.\n``result`` would be a ``arca.Result`` instance. ``arca.Result`` has three attributes,\n``output`` with the return value of the function call, ``stdout`` and ``stderr`` contain things printed to the standard outputs\n(see the section about `Result `_ for more info about the capture of the standard outputs).\nIf the task fails, ``arca.exceptions.BuildError`` would be raised.\n\nBy default, the `Current Environment Backend `_ is used to run tasks,\nwhich uses the current Python, launching the code in a subprocess. You can learn about backends `here `_.\n\nFurther reading\n***************\n\nYou can read the full documentation on `Read The Docs `_.\n\nRunning tests\n**************\n\nTo run tests you'll need the optional requirements, Docker and Vagrant. Once you have them and they can be used by\nthe current user you just need to run:\n\n.. code-block:: bash\n\n python setup.py test\n\nThis will launch the tests and a PEP8 check. The tests will take some time since building the custom\ndocker images is also tested and vagrant, in general, takes a long time to set up.\n\nContributing\n************\n\nContributions are welcomed! Feel free to open a issue or submit a pull request on `GitHub `_!\n\n\n\nChanges\n=======\n\n0.3.1 (2018-11-16)\n******************\n\nRaising a Arca exception when building of a Docker image fails. (`#56 `_, `#57 `_)\n\n0.3.0 (2018-08-25)\n******************\n\nChanges\n * Removed CurrentEnvironmentBackend's capability to process requirements - all requirements are ignored. (**BACKWARDS INCOMPATIBLE**)\n * Added support for installing requirements using `Pipenv `_.\n The directory containing ``Pipfile`` and ``Pipfile.lock`` is set by the backend option **pipfile_location**, by default the root of the repository is selected.\n The Pipenv files take precedence over regular requirement files.\n * The ``Result`` class now has two more attributes, ``stdout`` and ``stderr`` with the outputs of launched tasks to standard output and error.\n Priting is therefore now allowed in the endpoints.\n * Using UTF-8 locale in Docker images used in ``DockerBackend``.\n * Supporting Python 3.7.\n\n0.2.1 (2018-06-11)\n******************\n\nUpdated dogpile.cache to 0.6.5, enabling compatability with Python 3.7.\nUpdated the Docker backend to be able to run on Python betas.\n\n0.2.0 (2018-05-09)\n******************\n\nThis release has multiple backwards incompatible changes against the previous release.\n\nChanges:\n * Using extras to install Docker and Vagrant dependencies\n\n * ``pip install arca[docker]`` or ``pip install arca[vagrant]`` has to be used\n\n * Automatically using cloned repositories as reference for newly cloned branches\n * Using Debian as the default base image in the Docker backend:\n\n * **apk_dependencies** changed to **apt_dependencies**, now installing using `apt-get`\n\n * Vagrant backend only creates one VM, instead of multiple -- see its documentation\n * Added timeout to tasks, 5 seconds by default. Can be set using the argument **timeout** for ``Task``.\n * Added timeout to installing requirements, 300 seconds by default. Can be set using the **requirements_timeout** configuration option for backends.\n\n0.1.1 (2018-04-23)\n******************\n\nUpdated gitpython to 2.1.9\n\n0.1.0 (2018-04-18)\n******************\n\nInitial release\n\nChanges:\n * Updated PyPI description and metadata\n\n0.1.0a0 (2018-04-13)\n********************\n\nInitial alfa release\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/mikicz/arca",
"keywords": "sandboxing,git,docker,vagrant",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "arca",
"package_url": "https://pypi.org/project/arca/",
"platform": "",
"project_url": "https://pypi.org/project/arca/",
"project_urls": {
"CI": "https://travis-ci.org/mikicz/arca",
"Documentation": "https://arca.readthedocs.io/",
"Homepage": "https://github.com/mikicz/arca",
"Test coverage": "https://codecov.io/gh/mikicz/arca"
},
"release_url": "https://pypi.org/project/arca/0.3.1/",
"requires_dist": [
"gitpython (==2.1.9)",
"dogpile.cache (==0.6.5)",
"requests",
"entrypoints (>=0.2.3)",
"cached-property",
"docker (~=3.2.1); extra == 'docker'",
"docker (~=3.2.1); extra == 'vagrant'",
"python-vagrant; extra == 'vagrant'",
"fabric3; extra == 'vagrant'"
],
"requires_python": "",
"summary": "A library for running Python functions (callables) from git repositories in various states of isolation with integrating caching.",
"version": "0.3.1"
},
"last_serial": 4499971,
"releases": {
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "b6beffcede9dd8ec78a750cd2f349827",
"sha256": "71323b62d41857bd3b124257e67db194ff6bc9e9d529692cb58c6cccff7afc29"
},
"downloads": -1,
"filename": "arca-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b6beffcede9dd8ec78a750cd2f349827",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 2725,
"upload_time": "2017-09-24T18:57:16",
"url": "https://files.pythonhosted.org/packages/eb/26/b7ebb7cd805cf2d1b106e129f18245d665ae841ab21877fed4a6456352b9/arca-0.0.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fd7ed96161cb74cab5ca8d692682cb95",
"sha256": "1614603819c79bc03acd4c43bd6ab115a5452ebad2d333ec7c70ebb1d0da141f"
},
"downloads": -1,
"filename": "arca-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "fd7ed96161cb74cab5ca8d692682cb95",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 2195,
"upload_time": "2017-09-24T18:57:17",
"url": "https://files.pythonhosted.org/packages/2e/fa/608f7f0af5ad1e1f3897e11445cb70c38576120a4f196b8de8c89e2dacd9/arca-0.0.1.tar.gz"
}
],
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "a103527167de482c65c6ebaa0c6e43a1",
"sha256": "821dc5a596c2bf1b74050b105d4421c799c79390683df0a2e58b0101d8c7a52e"
},
"downloads": -1,
"filename": "arca-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a103527167de482c65c6ebaa0c6e43a1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 30537,
"upload_time": "2018-04-18T07:29:15",
"url": "https://files.pythonhosted.org/packages/ce/83/fd56a6b90600c10a13b2c698e7fcaf1f5ed5da0c84cb14c3dc4cef6d1157/arca-0.1.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d873b52f55348b3cb9d5ec4c81aecfe0",
"sha256": "f14a70f17d61f471dd528bca3a08369eaedc57c1fa18d36d079c424310acc38f"
},
"downloads": -1,
"filename": "arca-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "d873b52f55348b3cb9d5ec4c81aecfe0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 27566,
"upload_time": "2018-04-18T07:29:17",
"url": "https://files.pythonhosted.org/packages/7c/fc/6dd056dfaec9ecd59180a5cb9ab4d1e6ca16d8b99a69b46510d66ee0ac44/arca-0.1.0.tar.gz"
}
],
"0.1.0a0": [
{
"comment_text": "",
"digests": {
"md5": "519defba483c3bdb27386af44f1b929d",
"sha256": "1bac784d39632bbbc428c33678f2045faa0379bc660e762747891db238e08ca9"
},
"downloads": -1,
"filename": "arca-0.1.0a0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "519defba483c3bdb27386af44f1b929d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 30613,
"upload_time": "2018-04-13T15:20:17",
"url": "https://files.pythonhosted.org/packages/34/7c/d47dac082796263ff131eb2b2d77c06f124a081aba62bcc2f3c15247a5d3/arca-0.1.0a0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fc12b016fed385a9b8b6afb529a14458",
"sha256": "83df7a890cba4b1361c46a25509871f190ed401192bdf48b6e03605dc9d0ddeb"
},
"downloads": -1,
"filename": "arca-0.1.0a0.tar.gz",
"has_sig": false,
"md5_digest": "fc12b016fed385a9b8b6afb529a14458",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 27513,
"upload_time": "2018-04-13T15:20:18",
"url": "https://files.pythonhosted.org/packages/f4/f1/d55743006e7501397df9f4e83f7ae62455e20e9b0db1de3822f7cc02205a/arca-0.1.0a0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "a58092c9842d956bab1c897401714599",
"sha256": "32944783ab6951244ec8e917a96a84973a874b95b095a5dcca2495a1be0c3fc5"
},
"downloads": -1,
"filename": "arca-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a58092c9842d956bab1c897401714599",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 30555,
"upload_time": "2018-04-23T07:36:02",
"url": "https://files.pythonhosted.org/packages/71/0a/3f60a9cbb6ac27ab99ce7b90411e2acd7a1e425e79c81ae71ab3c078eef6/arca-0.1.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b08593d33db227ff8c8cd3ea60a1cef8",
"sha256": "8ccb034176186c54cececfa4f593b76c5c88d355709378784ba44e51ad953ab5"
},
"downloads": -1,
"filename": "arca-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "b08593d33db227ff8c8cd3ea60a1cef8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 27565,
"upload_time": "2018-04-23T07:36:04",
"url": "https://files.pythonhosted.org/packages/14/f4/826a4da2dcaaad2cfad12f28e8fd3bb2fb9a83fb10697274158ecc4bff74/arca-0.1.1.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "28fd2ed0c4fae9c0cf81d91643f3be90",
"sha256": "1e1e2e544fc3af8523043bab3d5f9819538a08a7f7f47475a796d974095fba6c"
},
"downloads": -1,
"filename": "arca-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "28fd2ed0c4fae9c0cf81d91643f3be90",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 33407,
"upload_time": "2018-05-09T14:46:57",
"url": "https://files.pythonhosted.org/packages/b6/ef/d6b96b48545c69aef84366d767b9de6e60a5fbf4c574777e91f258140b97/arca-0.2.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f07d7eda7c8312ed3f7f717427496d47",
"sha256": "976795c8b869cfc063477fdb4eddcbed74e96155cec494b65e0f2d8956fee249"
},
"downloads": -1,
"filename": "arca-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "f07d7eda7c8312ed3f7f717427496d47",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 30525,
"upload_time": "2018-05-09T14:46:58",
"url": "https://files.pythonhosted.org/packages/15/cd/dfe298aa72efa709fcaf50a565e62dce0bfd29bd8d4f46efc74081f3bb97/arca-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "d353422442c942a6311b264f0d5464f5",
"sha256": "5b7d3903ce0b1b42bc160b74107c1a7293600468e8dd90849d5f9351ffeb865d"
},
"downloads": -1,
"filename": "arca-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d353422442c942a6311b264f0d5464f5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 33429,
"upload_time": "2018-06-11T18:57:17",
"url": "https://files.pythonhosted.org/packages/14/35/1c87c73d8749115d38465c12823179d9c7c0e494ee4e869cf9ccc27b06e2/arca-0.2.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5314c64d9f9f01d573feef8b855f6faa",
"sha256": "0f4b470f35cfebd93336dbb8699066b20ad3cf8ae755c9f48f5cd7e249cee361"
},
"downloads": -1,
"filename": "arca-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "5314c64d9f9f01d573feef8b855f6faa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 30632,
"upload_time": "2018-06-11T18:57:19",
"url": "https://files.pythonhosted.org/packages/2a/89/709f542e066ac46e4bd07e67e41c932d8d20bec33efc023a4422612a025c/arca-0.2.1.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "14162cb7875349b701cfdd7bb124d216",
"sha256": "148f8fc29fb8460c590ec6bf29b2cafa94a7c2dda8f07bfe18ad853e134f7a22"
},
"downloads": -1,
"filename": "arca-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "14162cb7875349b701cfdd7bb124d216",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 33157,
"upload_time": "2018-08-25T19:09:39",
"url": "https://files.pythonhosted.org/packages/62/45/90489417184bbbeadc465aa008e9aa2042576097b842c0335dbc55d927d3/arca-0.3.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a9c32c6466ade32a92090382831af43f",
"sha256": "97aeaa46af5e387d93dd24ed1c9378d8bad8a730897fc6a2d9f791e1bceeada3"
},
"downloads": -1,
"filename": "arca-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "a9c32c6466ade32a92090382831af43f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 31314,
"upload_time": "2018-08-25T19:09:42",
"url": "https://files.pythonhosted.org/packages/7d/a2/7d790facc0a63bb63f2d54ba354b575af09f118d7565bfb52154bab0c27a/arca-0.3.0.tar.gz"
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "8f04394be08ca902934d428399b8d532",
"sha256": "1d72d0b6f4ce180ebca4b0106a6d38ca5bbb1bd56da9882b45259a0f5ce33be3"
},
"downloads": -1,
"filename": "arca-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8f04394be08ca902934d428399b8d532",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 34079,
"upload_time": "2018-11-16T12:07:02",
"url": "https://files.pythonhosted.org/packages/7a/eb/229e911c93063c63eb4091601313eeb4efd713f2ee915641fc92bf145c09/arca-0.3.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2043694cf7b5296cd4f725c88df7d5d6",
"sha256": "409ef820c1b8fb957cfaec928644ec51222ea590a208ac2c33e69988ed75b1f9"
},
"downloads": -1,
"filename": "arca-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "2043694cf7b5296cd4f725c88df7d5d6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 31585,
"upload_time": "2018-11-16T12:07:04",
"url": "https://files.pythonhosted.org/packages/65/4e/c6f30b6c9856443137326887a8251c934f492b53cbc2481a0ce68066e0f9/arca-0.3.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "8f04394be08ca902934d428399b8d532",
"sha256": "1d72d0b6f4ce180ebca4b0106a6d38ca5bbb1bd56da9882b45259a0f5ce33be3"
},
"downloads": -1,
"filename": "arca-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8f04394be08ca902934d428399b8d532",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 34079,
"upload_time": "2018-11-16T12:07:02",
"url": "https://files.pythonhosted.org/packages/7a/eb/229e911c93063c63eb4091601313eeb4efd713f2ee915641fc92bf145c09/arca-0.3.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2043694cf7b5296cd4f725c88df7d5d6",
"sha256": "409ef820c1b8fb957cfaec928644ec51222ea590a208ac2c33e69988ed75b1f9"
},
"downloads": -1,
"filename": "arca-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "2043694cf7b5296cd4f725c88df7d5d6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 31585,
"upload_time": "2018-11-16T12:07:04",
"url": "https://files.pythonhosted.org/packages/65/4e/c6f30b6c9856443137326887a8251c934f492b53cbc2481a0ce68066e0f9/arca-0.3.1.tar.gz"
}
]
}