A Circle Platform Services Python Client
Project description
Circle Platform Services - Python Client
WARNING: work in progress and subject to change
A python client and CLI for working with Circle Platform Services.
Installation
pip install cps-client
Usage
cps-client uses an enviroment variable to fetch your API key.
export CPS_API_KEY="<api-key>"
CLI
Installation provides a command line interface for interacting with CPS.
Usage: cps [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
configuration-get Get global CPS configuration.
subscription-create Create a subscription.
subscription-delete Delete a subscription.
subscriptions-get Get a collection of subscriptions.
transfer-create-blockchain Create transfers from a wallet to blockchain...
transfer-create-wallet Create transfers from a wallet to another...
transfer-get Get info about transfers.
transfers-get Get collection of transfers.
wallet-address-create Create a new wallet address.
wallet-addresses-get Get a collection of wallet addresses.
wallet-create Create a new wallet.
wallet-get Get a wallet.
wallets-get Get a collection of wallets.
Library
You can also use cps-client as a library.
from cps_client import api
# you can get your own at https://my-sandbox.circle.com/
API_KEY="my-circle-sanbox-api-key"
source = api.WalletLocation(walletid)
destination = api.BlockchainLocation(address, chain)
amount = api.Money(amount, currency)
cpsAPI = api.Client("https://api-sandbox.circle.com", API_KEY)
transfer = cpsAPI.create_transfer(source, destination, amount)
print(transfer)
"""
Output:
{
"id": "b08478d5-a110-4b0e-9136-4b9d94601c65",
"source": {
"type": "wallet",
"id": "1000004286"
},
"destination": {
"type": "blockchain",
"address": "0x71715Da6ADa699e3a1a5C2664A55fF3D179c86EE",
"chain": "ETH"
},
"amount": {
"amount": "0.05",
"currency": "USD"
},
"status": "complete",
"transactionHash": "0x52176702740c8720d77ade3f20014396a4a2eb13d09dd1e6bffcc6f209a45326"
}
"""
Development
Fork this repo and do the following to get setup:
# clone the repository and add upstream so you can fetch the latest changes
git clone git@github.com:<your-username>/cps-client-python.git
git remote add upstream git@github.com:belljustin/cps-client-python.git
# create a virtualenv
cd cps-client-python
virtualenv -p python3 venv
source venv/bin/activate
# install the project in editable mode
pip install -e .
Now, as long as you're using the virtualenv, you can use cps-client with all the edits you've made including running the cli tool.
To test, you'll need a CPS API key.
You can get this by signing up for the sandbox here: https://my-sandbox.circle.com/.
To run the cli and integration tests, this needs to exist as an environment variable named $CPS_API_KEY
You can then run all the integration tests via the make file:
make integration
or run individual tests with the python unittest command, e.g:
python -m unittest tests.integration.test_integration.TestBasic.test_get_wallet_addresses
To submit a contribution, open a pull request against the master branch on upstream.
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 cps_client-0.1.12.tar.gz
.
File metadata
- Download URL: cps_client-0.1.12.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 223bc155350bd6ac77e8c1d5ab8f7db475941769cf9ef98408b6080a9d312807 |
|
MD5 | 58c254895613faa04f4022dd75fc3a87 |
|
BLAKE2b-256 | 660bf58a8915c49ba6dd63cb3fb401086cce64889594c54d5063ba13b835d4df |
File details
Details for the file cps_client-0.1.12-py3-none-any.whl
.
File metadata
- Download URL: cps_client-0.1.12-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc1e7533b7761d7a9c97f2091e132337b15f1bdbb71b0781c5ee56522dd6c22b |
|
MD5 | 5101d0c23274c228942e35636d6b1669 |
|
BLAKE2b-256 | 6dfbe53ec2bd7d3c4672514e11c63f73c0fbe3385a27935e9e78d81c5340c717 |