Skip to main content

A Circle Platform Services Python Client

Project description

Circle Platform Services - Python Client

PyPI version

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cps_client-0.1.12.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

cps_client-0.1.12-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

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

Hashes for cps_client-0.1.12.tar.gz
Algorithm Hash digest
SHA256 223bc155350bd6ac77e8c1d5ab8f7db475941769cf9ef98408b6080a9d312807
MD5 58c254895613faa04f4022dd75fc3a87
BLAKE2b-256 660bf58a8915c49ba6dd63cb3fb401086cce64889594c54d5063ba13b835d4df

See more details on using hashes here.

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

Hashes for cps_client-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 bc1e7533b7761d7a9c97f2091e132337b15f1bdbb71b0781c5ee56522dd6c22b
MD5 5101d0c23274c228942e35636d6b1669
BLAKE2b-256 6dfbe53ec2bd7d3c4672514e11c63f73c0fbe3385a27935e9e78d81c5340c717

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page