polyanalyst6api is a PolyAnalyst API client for Python.


Keywords
megaputer, polyanalyst, polyanalyst6api, api, polyanalyst-api, python
License
MIT
Install
pip install polyanalyst6api==0.24.0

Documentation

polyanalyst6api

PyPI package Supported Python versions MIT License

polyanalyst6api is a Python library for interacting with PolyAnalyst APIs.

This package provides easy to use wrappers for PolyAnalyst Analytical Client, Scheduler and Drive. With it you can execute nodes, view datasets, run tasks, download/upload files and so on.

Installation

Python 3.6+ is required. Install, upgrade and uninstall polyanalyst6api-python with these commands:

$ pip install polyanalyst6api
$ pip install --upgrade polyanalyst6api
$ pip uninstall polyanalyst6api

Documentation

See API Reference for the library methods.

Refer to PolyAnalyst User Manual at Application Programming Interfaces > Version 01 for REST API specification.

Usage

Authentication

From version 0.23.0 you can use the configuration file to store your credentials. By default, its location is C:\Users\_user_\.polyanalyst6api\config (~/.polyanalyst6api/config in linux).

At a minimum, the credentials file should specify the url and credentials keys. You may also want to add a ldap_server if you're logging in via LDAP. All other keys or sections except DEFAULT are ignored.

[DEFAULT]
url=POLYANALYST_URL
username=YOUR_USERNAME
password=YOUR_PASSWORD
ldap_server=LDAP

After creating the configuration file you can use API context manager to automatically log in to and log out from PolyAnalyst server:

with polyanalyst6api.API() as api:
    ...

Alternatively, you can pass an url, credentials and ldap_server when creating api client. In this case arguments will be used over values from the configuration file.

with polyanalyst6api.API(POLYANALIST_URL, YOUR_USERNAME, YOUR_PASSWORD) as api:
    ...

Working with project

Instantiate project wrapper by calling with existing project ID:

prj = api.project(PROJECT_UUID)

Set Python node code using parent Parameters node.

prj.parameters('Parameters (1)').set(
    'Dataset/Python',
    {'Script': 'result = pandas.DataFrame([{"val": 42}])'}
)

Execute Python node and wait to complete execution

prj.execute('Python', wait=True)

Check node results:

ds = prj.dataset('Python').preview()
assert ds[0]['val'] == 42

Save project:

prj.save()

Downloading file from user home folder using PA Drive API

content = api.drive.download_file('README.txt')
with open(r'C:\README.txt', mode='wb+') as local_file:
    local_file.write(content)

See polyanalyst6api-python/examples for more complex examples.

License

This project is licensed under the MIT License - see the LICENSE file for details