Skip to main content

direct-access-py

directaccess PyPI version

A thin wrapper around Drillinginfo's Direct Access API. Handles authentication and token management, pagination and network-related error handling/retries.

This module is built and tested on Python 3.6 but should work on Python 2.7 and up.

Install

pip install directaccess

Usage

Direct Access Version 1 (deprecated)

Version 1 of the API has been deprecated and removed.

Direct Access Version 2

For version 2 of the API, create an instance of the DirectAccessV2 class, providing it your API key, client id and client secret. The returned access token will be available as an attribute on the instance (d2.access_token) and the Authorization header is set automatically

from directaccess import DirectAccessV2

d2 = DirectAccessV2(
    api_key='<your-api-key>',
    client_id='<your-client-id>',
    client_secret='<your-client-secret>',
)

Provide the query method the dataset and query params. All query parameters must match the valid parameters found in the Direct Access documentation and be passed as keyword arguments.

for row in d2.query('well-origins', county='REEVES', pagesize=10000):
    print(row)

Filter functions

Direct Access version 2 supports filter funtions. These can be passed as strings on the keyword arguments.

Some common filters are greater than (gt()), less than (lt()), null, not null (not(null)) and between (btw()).
See the Direct Access documentation for a list of all available filters.

# Get well records updated after 2018-08-01 and without deleted dates
for row in d2.query('well-origins', updateddate='gt(2018-08-01)', deleteddate='null'):
    print(row)

# Get permit records with approved dates between 2018-03-01 and 2018-06-01
for row in d2.query('permits', approveddate='btw(2018-03-01,2018-06-01)'):
    print(row) 

You can use the fields keyword to limit the returned fields in your request.

for row in d2.query('rigs', fields='DrillType,LeaseName,PermitDepth'):
    print(row)

Escaping

When making requests containing certain characters like commas, use a backslash to escape them.

# Escaping the comma before LLC
for row in d2.query('producing-entities', curropername='PERCUSSION PETROLEUM OPERATING\, LLC'):
    print(row)

Network request handling

This module exposes functionality in python-requests for modifying network requests handling, namely:

  • retries and backoff
  • network proxies
  • ssl verification

Retries and backoff

Specify the number of retry attempts in retries and the backoff factor in backoff_factor. See the urllib3 Retry utility API for more info

from directaccess import DirectAccessV2

d2 = DirectAccessV2(
    api_key='<your-api-key>',
    client_id='<your-client-id>',
    client_secret='<your-client-secret>',
    retries=5,
    backoff_factor=1
)

You can specify a network proxy by passing a dictionary with the host and port of your proxy to proxies. See the proxies section of the python-requests documentation for more info.

from directaccess import DirectAccessV2

d2 = DirectAccessV2(
    api_key='<your-api-key>',
    client_id='<your-client-id>',
    client_secret='<your-client-secret>',
    proxies={'https': 'http://10.10.1.10:1080'}
)

Finally, if you're in an environment that provides its own SSL certificates that might not be in your trusted store, you can choose to ignore SSL verification altogether. This is typically not a good idea and you should seek to resolve certificate errors instead of ignore them.

from directaccess import DirectAccessV2

d2 = DirectAccessV2(
    api_key='<your-api-key>',
    client_id='<your-client-id>',
    client_secret='<your-client-secret>',
    verify=False
)

Metadata

Release files for directaccess 1.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for directaccess 1.5.2
File Size Uploaded Provenance Actions
directaccess-1.5.2.tar.gz 10.5 kB Without provenance Details for directaccess-1.5.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for directaccess 1.5.2
File Interpreter ABI Platform Actions
directaccess-1.5.2-py2.py3-none-any.whl Python 3, Python 2 none any Details for directaccess-1.5.2-py2.py3-none-any.whl

Total release size: 20.5 kB

Release files / directaccess-1.5.2.tar.gz

Download URL directaccess-1.5.2.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a3bfb7b5271779f94c805a9e54d002d41abb9c1b75b048f366050217b834059b
BLAKE2b-256 checksum
How to use checksums
5bd124d6d5d0f1ad1288fab35498f5f24ae7bb7ff97415141c89a7aea1471de3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.12

Release files / directaccess-1.5.2-py2.py3-none-any.whl

Download URL directaccess-1.5.2-py2.py3-none-any.whl
Size 10.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
d1a26b957e8f408c4edfcdc2dcb089969c12b47b7a0f1c0c4e3afa7cbee56aa4
BLAKE2b-256 checksum
How to use checksums
9f99b905615ab286ed5041a45e1ade5e1a3b511c7e19bb3a4fd46b49ee61abfc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.12

Security for directaccess 1.5.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page