{"id":25692549,"url":"https://github.com/pyvec/arca","last_synced_at":"2025-04-24T05:15:32.255Z","repository":{"id":25558135,"uuid":"104518575","full_name":"pyvec/arca","owner":"pyvec","description":"A library for running Python functions (callables) from git repositories in various states of isolation with integrated caching.","archived":false,"fork":false,"pushed_at":"2023-02-07T22:58:19.000Z","size":293,"stargazers_count":4,"open_issues_count":13,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-24T05:15:09.425Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://arca.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyvec.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-09-22T21:03:43.000Z","updated_at":"2022-05-08T12:45:00.000Z","dependencies_parsed_at":"2023-01-14T02:57:50.546Z","dependency_job_id":"8acc7beb-72b9-41a9-bb9b-97e23ed8665a","html_url":"https://github.com/pyvec/arca","commit_stats":{"total_commits":160,"total_committers":2,"mean_commits":80.0,"dds":"0.012499999999999956","last_synced_commit":"df368fdb860aa5c46d7e8afa586e3ad41c4576a9"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyvec%2Farca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyvec%2Farca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyvec%2Farca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyvec%2Farca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyvec","download_url":"https://codeload.github.com/pyvec/arca/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250566512,"owners_count":21451234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-24T23:09:24.961Z","updated_at":"2025-04-24T05:15:32.235Z","avatar_url":"https://github.com/pyvec.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Arca\n====\n\n.. image:: https://img.shields.io/travis/pyvec/arca.svg\n   :target: https://travis-ci.org/pyvec/arca\n\n.. image:: https://img.shields.io/codecov/c/github/pyvec/arca.svg\n   :target: https://codecov.io/gh/pyvec/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/pyvec/arca.svg?style=flat\n   :target: https://github.com/pyvec/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 \u003chttps://dogpilecache.readthedocs.io/en/latest/\u003e`_.\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 \u003e= 3.6\n\nRequirements for certain backends:\n\n* `Pipenv \u003chttps://docs.pipenv.org/\u003e`_ (for certain usecases in `Virtualenv Backend \u003chttps://arca.readthedocs.io/en/latest/backends.html#virtual-environment\u003e`_)\n* `Docker \u003chttps://www.docker.com/\u003e`_ (for `Docker Backend \u003chttps://arca.readthedocs.io/en/latest/backends.html#docker\u003e`_\n  and `Vagrant Backend \u003chttps://arca.readthedocs.io/en/latest/backends.html#vagrant\u003e`_)\n* `Vagrant \u003chttps://www.vagrantup.com/\u003e`_ (for the `Vagrant Backend \u003chttps://arca.readthedocs.io/en/latest/backends.html#vagrant\u003e`_)\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/pyvec/arca.git#egg=arca\n  python -m pip install git+https://github.com/pyvec/arca.git#egg=arca[docker]\n  python -m pip install git+https://github.com/pyvec/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 \u003chttp://arca.readthedocs.io/en/latest/tasks.html#result\u003e`_ 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 \u003chttps://arca.readthedocs.io/en/latest/backends.html#current-environment\u003e`_ is used to run tasks,\nwhich uses the current Python, launching the code in a subprocess. You can learn about backends `here \u003chttps://arca.readthedocs.io/en/latest/backends.html\u003e`_.\n\nFurther reading\n***************\n\nYou can read the full documentation on `Read The Docs \u003chttps://arca.readthedocs.io/\u003e`_.\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 \u003chttps://github.com/pyvec/arca\u003e`_!\n\n.. split_here\n\nLinks\n*****\n\n- Repository: `GitHub \u003chttps://github.com/pyvec/arca\u003e`_\n- PyPi package: `arca \u003chttps://pypi.python.org/pypi/arca\u003e`_\n- CI: `Travis \u003chttps://travis-ci.org/pyvec/arca\u003e`_\n- Test coverage: `Codecov \u003chttps://codecov.io/gh/pyvec/arca\u003e`_\n- Documentation: `Read The Docs \u003chttps://arca.readthedocs.io/\u003e`_\n\nLicense\n*******\n\nThis project is licensed under the MIT License - see the `LICENSE \u003chttps://github.com/pyvec/arca/blob/master/LICENSE\u003e`_ file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyvec%2Farca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyvec%2Farca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyvec%2Farca/lists"}