Package for Python

Our package (Holistics Package for Python) allows Python's user export report's data by inputting:

  • Your API-key
  • Report's ID
  • Dictionary of filters applied to that report
Notes:

Supported output format: DataFrame object, .CSV Python version: >= 3, < 4


Installation#

Package can be installed with pip:

pip install holistics

Alternatively, you can grab the latest source code from GitHub:

git clone git://github.com/holistics/holistics-python.git
cd holistics-python
python setup.py install

How to export data#

Beginning by import holistics package

from holistics import HolisticsAPI

Next, creating an object of HolisticsAPI class with your API-key and Holistics server's url

obj = HolisticsAPI(api_key = 'aerg454hoiaKJGlgku', url = 'demo.holistics.io')

Args:


Finally, call export_data function with specific syntax: โ€ƒ โ€ƒ export_data (report_id, path, filters, page_size, page)

my_dataframe = obj.export_data(report_id='123456', path='C:/output.csv',
filters={'date': '2017-04-28', 'vat': 1.1},
page_size = 12, page = 5)

Args:

  • report_id (str): ID of report. Get from URL.
  • path (str) (optional): If you want to store export data to local path, set path variable.
    • Default value: None
    • Ex: 'D:/Data/output.csv'
  • filters (dict) (optional): dictionary of filters that would be applied to report.
    • Default value: None
    • Ex: {'tenant': 'holistics', 'date': '2017-04-28'}
  • page_size (int) (optional): Set the page size of the response.
    • Default value: 10000000
  • page (int) (optional): Set the page number of data to fetch.
    • Default value: 10000000

Return:#

A DataFrame object. If path is not None, save object as .csv file at that path.

Raises:#

  • HTTPError: If the program can't connect to target site and get data.
    • You should check your API-key, url of Holistics and internet connection.
  • RuntimeError: If return status is Failure.
    • It could be caused by wrong SQL of your QueryReport.
  • ParserError: If program can't parse downloaded data as DataFrame object.
    • It could be caused when downloaded data is None.