%global _empty_manifest_terminate_build 0 Name: python-directaccess Version: 1.5.2 Release: 1 Summary: Enverus Direct Access API Python Client License: MIT URL: https://github.com/wchatx/direct-access-py Source0: https://mirrors.aliyun.com/pypi/web/packages/5b/d1/24d6d5d0f1ad1288fab35498f5f24ae7bb7ff97415141c89a7aea1471de3/directaccess-1.5.2.tar.gz BuildArch: noarch Requires: python3-requests Requires: python3-unicodecsv Requires: python3-urllib3 Requires: python3-pandas %description # direct-access-py ![directaccess](https://github.com/wchatx/direct-access-py/workflows/directaccess/badge.svg) [![PyPI version](https://badge.fury.io/py/directaccess.svg)](https://badge.fury.io/py/directaccess) 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 ```commandline 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 ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', 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. ```python 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. ```python # 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. ```python 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. ```python # 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](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html#urllib3.util.Retry) utility API for more info ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', 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](https://requests.readthedocs.io/en/master/user/advanced/#proxies) section of the python-requests documentation for more info. ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', 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. ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', client_secret='', verify=False ) ``` %package -n python3-directaccess Summary: Enverus Direct Access API Python Client Provides: python-directaccess BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-directaccess # direct-access-py ![directaccess](https://github.com/wchatx/direct-access-py/workflows/directaccess/badge.svg) [![PyPI version](https://badge.fury.io/py/directaccess.svg)](https://badge.fury.io/py/directaccess) 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 ```commandline 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 ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', 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. ```python 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. ```python # 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. ```python 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. ```python # 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](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html#urllib3.util.Retry) utility API for more info ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', 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](https://requests.readthedocs.io/en/master/user/advanced/#proxies) section of the python-requests documentation for more info. ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', 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. ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', client_secret='', verify=False ) ``` %package help Summary: Development documents and examples for directaccess Provides: python3-directaccess-doc %description help # direct-access-py ![directaccess](https://github.com/wchatx/direct-access-py/workflows/directaccess/badge.svg) [![PyPI version](https://badge.fury.io/py/directaccess.svg)](https://badge.fury.io/py/directaccess) 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 ```commandline 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 ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', 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. ```python 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. ```python # 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. ```python 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. ```python # 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](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html#urllib3.util.Retry) utility API for more info ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', 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](https://requests.readthedocs.io/en/master/user/advanced/#proxies) section of the python-requests documentation for more info. ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', 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. ```python from directaccess import DirectAccessV2 d2 = DirectAccessV2( api_key='', client_id='', client_secret='', verify=False ) ``` %prep %autosetup -n directaccess-1.5.2 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-directaccess -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Thu Jun 08 2023 Python_Bot - 1.5.2-1 - Package Spec generated