A Library for accessing the Swarm network written in Python
Project description
SwarmLib Repository
This library facillitates access to the Swarm network.
Examples
The SwarmLib makes it easy to create Swarm Agents. There are two types of Agents: Consumers and Providers. See the examples below.
Consumer
A consumer is an agent that only uses the Swarm resources. For example:
from swarm_lib import Consumer
consumer = Consumer(keys_file="keys.json")
query = {
"operation": {"@type": "swarm:ReadOperation", "returns": "swarm:Image"},
"usageDuration": 30
}
image_executor = consumer.get_executor(query)
if image_executor.contract_providers():
result = image_executor.execute()
Provider
A provider makes resources available to the Swarm. For example:
from flask import Flask, request, jsonify
from swarm_lib import Provider
from onboard_camera import read_frame
app = Flask(__name__)
provider = Provider(
description_file="./description.jsonld",
policies_file="./policies.json",
keys_file="./keys.json"
)
@app.route("/camera-service/image", methods=['GET'])
@provider.enforce_authorization
def get_frame():
try:
return jsonify(read_frame())
except Exception as e:
return jsonify({"error": "could not get frame from onboard camera"})
if __name__ == "__main__":
if provider.join_swarm():
app.run(host="0.0.0.0", port=provider.port(), threaded=True, debug=True, use_reloader=True)
else:
print("Could not join the Swarm Network")
Usage
Install with pip:
pip3 install swarm_lib
Follow the examples above to build your own Swarm Agents.
Contributing
Dependencies
sudo apt install python3-pip python3-setuptools python3-dev
pip3 install -r requirements.txt
Publish a new version
To make a new release, follow these steps:
- Update the version in
setup.py
- Run
python3 setup.py sdist bdist_wheel
to create a distributable release - Run
python3 -m twine upload dist/*
to upload to pip
If a password is asked and you don't know what to do, ask the maintainer (Geovane Fedrecheski).
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 swarm_lib-0.0.18.tar.gz
.
File metadata
- Download URL: swarm_lib-0.0.18.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.26.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 078d8cbdd6cb7d4c134888497f975e3e51ce6e06c0b8a2b55f0e3cc7fda653c7 |
|
MD5 | 3bd250163a0cf854de95e336d073d24b |
|
BLAKE2b-256 | a3bfc788cd2c4527a850550fd47380ff1124af61020ed5b9a055e77d10695630 |
File details
Details for the file swarm_lib-0.0.18-py3-none-any.whl
.
File metadata
- Download URL: swarm_lib-0.0.18-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.26.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a5b5653737ab42aebc5d0430c1cff04de1c8b317597ffdb71cf3cc28cdc1b4a |
|
MD5 | 8e99ff5d0f98c617dc2854cacaf9e9e0 |
|
BLAKE2b-256 | 2b56cb4526b8629b4a5d8ba0b8fab99e95be0f412c60e1eae867c94d0024442e |