💧 Python wrapper, allowing to integrate the basic Ocean/web3.py capabilities oceanprotocol.com
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.
Python 3.6
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()
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
-
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
The information about code style in python is documented in this two links python-developer-guide and python-style-guide.
Automatic tests are setup via Travis, executing tox
.
Our test use pytest framework.
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.