High-level Python API for the New Golem
Project description
Golem Python API
What's Golem and yapapi?
Golem is a global, open-source, decentralized supercomputer that anyone can access. It connects individual machines to form a vast network which combines their resources and allows requestors to utilize its unique potential - which may be its combined computing power, storage, the geographical distribution or its censorship resistance.
Yapapi is the Python high-level API that allows developers to connect to their Golem nodes and manage their distributed, computational loads through Golem Network.
Golem application development
For a detailed introduction to using Golem and yapapi to run your tasks on Golem and a guide to Golem Network application development in general, please consult our handbook.
Installation
yapapi
is available as a PyPI package.
You can install it through pip
:
pip install yapapi
Or if your project uses poetry
you can add it to your dependencies like this:
poetry add yapapi
API Reference
For a comprehensive API reference, please refer to our official readthedocs page.
Local setup for yapapi developers
Poetry
yapapi
uses poetry
to manage its dependencies and provide a runner for common tasks.
If you don't have poetry
available on your system then follow its installation instructions before proceeding.
Verify your installation by running:
poetry --version
Project dependencies
To install the project's dependencies run:
poetry install
By default, poetry
looks for the required Python version on your PATH
and creates a virtual environment for the project if there's none active (or already configured by Poetry).
All of the project's dependencies will be installed to that virtual environment.
Running goth
integration tests
Prerequisites
If you'd like to run the yapapi
integration test suite locally then you'll need to install an additional set of dependencies separately.
First, install the dependencies required to run goth.
Next, configure goth's GitHub API token.
Now, you can install goth and its additional python requirements:
poetry install -E integration-tests
Finally, generate goth's default assets:
poetry run poe goth-assets
Running the tests
Once you have the environment set up, to run all the integration tests, use:
poetry run poe goth-tests
See also
- Golem, a global, open-source, decentralized supercomputer that anyone can access.
- Learn what you need to know to set-up your Golem requestor node:
- Have a look at the most important concepts behind any Golem application: Golem application fundamentals
- Learn about preparing your own Docker-like images for the VM runtime
- Write your own app with yapapi:
Environment variables
It's possible to set various elements of yagna
configuration through environment variables.
yapapi
currently supports the following environment variables:
YAGNA_ACTIVITY_URL
, URL toyagna
activity API, e.g.http://localhost:7500/activity-api/v1
YAGNA_API_URL
, base URL toyagna
REST API, e.g.http://localhost:7500
YAGNA_APPKEY
,yagna
app key to be used, e.g.a70facb9501d4528a77f25574ab0f12b
YAGNA_MARKET_URL
, URL toyagna
market API, e.g.http://localhost:7500/market-api/v1
YAGNA_PAYMENT_NETWORK
, Ethereum network name foryagna
to use, e.g.rinkeby
YAGNA_PAYMENT_DRIVER
, payment driver name foryagna
to use, e.g.erc20
YAGNA_PAYMENT_URL
, URL toyagna
payment API, e.g.http://localhost:7500/payment-api/v1
YAGNA_SUBNET
, name of theyagna
sub network to be used, e.g.devnet-beta
YAPAPI_USE_GFTP_CLOSE
, if set to a truthy value (e.g. "1", "Y", "True", "on") thenyapapi
will askgftp
to close files when there's no need to publish them any longer. This may greatly reduce the number of files kept open whileyapapi
is running but requiresyagna
0.7.3 or newer, with older versions it will cause errors.
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.