🐳 Ocean/Web3py wrapper.
Project description
squid-py
💧 Python wrapper, allowing to integrate the basic Ocean/web3.py capabilities oceanprotocol.com
Table of Contents
Features
Squid-py include the methods to make easy the connection with contracts deployed in different networks. This repository include also the methods to encrypt and decrypt information.
Prerequisites
Python 3.6
Quick-start
Install Squid:
pip install squid-py
The entry point into the Squid functionality is the Ocean class:
from squid_py.ocean import Ocean
ocean = Ocean('config.ini')
assert ocean.get_accounts()
Configuration
keeper.url
points to an Ethereum RPC client. Note that Squid learns the name of the network to work with from this client.
keeper.path
points to the folder with keeper contracts definitions. When you install the package, the artifacts are
automatically picked up from the keeper-contracts
Python dependency.
storage.path
points to the local database file used for storing temporary information (for instance, pending service agreements).
In addition to the configuration file, you may use the following environment variables (override the corresponding configuration file values):
- KEEPER_PATH
- KEEPER_URL
- GAS_LIMIT
- AQUARIUS_URL
Development
-
Set up a virtual environment
-
Install requirements
pip install -r requirements_dev.txt
-
Run Docker images. Alternatively, set up and run some or all of the corresponding services locally.
docker-compose -f ./docker/docker-compose.yml up
It runs an Aquarius node and an Ethereum RPC client. For details, read
docker-compose.yml
. -
Create local configuration file
cp config.ini config_local.ini
config_local.ini
is used by unit tests. -
Copy keeper artifacts
A bash script is available to copy keeper artifacts into this file directly from a running docker image. This script needs to run in the root of the project. The script waits until the keeper contracts are deployed, and then copies the artifacts.
./scripts/wait_for_migration_and_extract_keeper_artifacts.sh
The artifacts contain the addresses of all the deployed contracts and their ABI definitions required to interact with them.
-
Run the unit tests
python3 setup.py test
Code style
The information about code style in python is documented in this two links python-developer-guide and python-style-guide.
Testing
Automatic tests are setup via Travis, executing tox
.
Our test use pytest framework.
New Version / New Release
License
Copyright 2018 Ocean Protocol Foundation Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
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
Hashes for squid_py-0.2.13-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e9961d17503d90bc34f846f523da2974106a71b0638ad307c2038abf2c88e52 |
|
MD5 | 56af5bb4aa798988da14f3ba83367c5d |
|
BLAKE2b-256 | 2207a5a6c080aec1de95f1cb2772871ad747c110f96416f3ed0b0b65c57f67a2 |