All Projects → wchatx → direct-access-py

wchatx / direct-access-py

Licence: MIT License
Enverus Drillinginfo Direct Access Developer API Python Client

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to direct-access-py

Lhotse
Stars: ✭ 236 (+686.67%)
Mutual labels:  data
Wikibase Sdk
JS utils functions to query a Wikibase instance and simplify its results
Stars: ✭ 251 (+736.67%)
Mutual labels:  data
carapace-bin
multi-shell multi-command argument completer
Stars: ✭ 42 (+40%)
Mutual labels:  oil
Retriever
Quickly download, clean up, and install public datasets into a database management system
Stars: ✭ 241 (+703.33%)
Mutual labels:  data
Blazortable
Blazor Table Component with Sorting, Paging and Filtering
Stars: ✭ 249 (+730%)
Mutual labels:  data
Vis Academy
A set of tutorials on how our frameworks make effective data visualization applications.
Stars: ✭ 254 (+746.67%)
Mutual labels:  data
Oblivion
Data leak checker & OSINT Tool
Stars: ✭ 237 (+690%)
Mutual labels:  data
redux-things
Redux things | Fast and easy data synchronization for Redux
Stars: ✭ 12 (-60%)
Mutual labels:  data
Aresdb
A GPU-powered real-time analytics storage and query engine.
Stars: ✭ 2,814 (+9280%)
Mutual labels:  data
storage
Multi-Factor Least Squares Monte Carlo energy storage valuation model (Python and .NET).
Stars: ✭ 24 (-20%)
Mutual labels:  oil
Pandas Gbq
Pandas Google BigQuery
Stars: ✭ 243 (+710%)
Mutual labels:  data
Vscode Data Preview
Data Preview 🈸 extension for importing 📤 viewing 🔎 slicing 🔪 dicing 🎲 charting 📊 & exporting 📥 large JSON array/config, YAML, Apache Arrow, Avro, Parquet & Excel data files
Stars: ✭ 245 (+716.67%)
Mutual labels:  data
Http Fake Backend
Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
Stars: ✭ 253 (+743.33%)
Mutual labels:  data
Parsr
Transforms PDF, Documents and Images into Enriched Structured Data
Stars: ✭ 2,736 (+9020%)
Mutual labels:  data
TXRRC data harvest
Script for accessing and organizing oil and gas well data from the Texas Railroad Commission
Stars: ✭ 22 (-26.67%)
Mutual labels:  oil
Voicebook
🗣️ A book and repo to get you started programming voice computing applications in Python (10 chapters and 200+ scripts).
Stars: ✭ 236 (+686.67%)
Mutual labels:  data
Datbase
[DEPRECATED] Open data sharing powered by Dat
Stars: ✭ 251 (+736.67%)
Mutual labels:  data
xbpch
xarray interface for bpch files
Stars: ✭ 17 (-43.33%)
Mutual labels:  data
Tesseract
A set of libraries for rapidly developing Pipeline driven micro/macroservices.
Stars: ✭ 20 (-33.33%)
Mutual labels:  data
Datasets
TFDS is a collection of datasets ready to use with TensorFlow, Jax, ...
Stars: ✭ 3,094 (+10213.33%)
Mutual labels:  data

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
)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].