Skip to main content

Client library for the ComboCurve REST API

Project description

ComboCurve client for Python

Authorization

combocurve_api requires the API key and service account provided by Inside Petroleum, as shown in the example below:

from combocurve_api_v1 import ServiceAccount, ComboCurveAuth

# Use this to create your service account manually
service_account = ServiceAccount(
    client_email='YOUR_CLIENT_EMAIL',
    client_id='YOUR_CLIENT_ID',
    private_key='YOUR_PRIVATE_KEY',
    private_key_id='YOUR_PRIVATE_KEY_id'
)
# Or use this to load it from a JSON file
# service_account = ServiceAccount.from_file("PATH_TO_JSON_FILE")

# Set your API key
api_key = 'YOUR_API_KEY'

combocurve_auth = ComboCurveAuth(service_account, api_key)

# Get auth headers
auth_headers = combocurve_auth.get_auth_headers()

combocurve_auth.get_auth_headers() should be called before every request so that the token can be refreshed if it's about to expire. After getting the authentication headers, they can be used with any HTTP client library. Below is an example with the popular Requests library:

import requests

data = [{
    'wellName': 'well 1',
    'dataSource': 'internal',
    'chosenId': '1234'
}, {
    'wellName': 'well 2',
    'dataSource': 'internal',
    'chosenId': '4321'
}]
auth_headers = combocurve_auth.get_auth_headers()
url = 'https://api.combocurve.com/v1/wells'

response = requests.put(url, headers=auth_headers, json=data)
print(response.json())

ComboCurve API only accepts JSON data, so it's important to make sure that the data is serialized as such, and that the Content-Type header is set to application/json. Luckily, when using Requests it will take care of both things when the data is passed using the json parameter, as shown in the example above. In other words, the line of sending the request in that example is roughly equivalent to this:

import json

response = requests.put(url,
                        headers={
                            **auth_headers, 'Content-Type': 'application/json'
                        },
                        data=json.dumps(data))

More information here: https://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests

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

combocurve-api-v1-0.2.1.tar.gz (3.8 kB view hashes)

Uploaded Source

Built Distribution

combocurve_api_v1-0.2.1-py3-none-any.whl (5.3 kB view hashes)

Uploaded Python 3

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