endaq.cloud

This module houses tools and functions to make both interacting with the enDAQ Cloud API and the enDAQ Cloud itself easier.

endaq.cloud.core

Core enDAQ Cloud communication API

class endaq.cloud.core.EndaqCloud(api_key=None, env=None, test=True)

A representation of a connection to an enDAQ Cloud account, providing a high-level interface for accessing its contents.

Constructor for an EndaqCloud object, which provides access to an enDAQ Cloud account.

Parameters:
  • api_key (Optional[str]) – The enDAQ Cloud API associated with your cloud.endaq.com account. If you do not have one created yet, they can be created on the following web page: https://cloud.endaq.com/account/api-keys

  • env (Optional[str]) – The cloud environment to connect to, which can be production, staging, or development. These can be easily accessed with the variables ENV_PRODUCTION, ENV_STAGING, and ENV_DEVELOP

  • test (bool) – If True (default), the connection to enDAQ Cloud will be tested before being returned. A failed test will generate a meaningful error message describing the problem.

property account_email: str | None

The email address associated with the enDAQ Cloud account.

property account_id: str | None

The enDAQ Cloud account’s unique ID.

download_all_ide_files(output_directory='', should_download_file_fn=None, force_reload_file_table=False, file_limit=100)

Downloads all IDE files from the enDAQ Cloud (up to a specified file limit).

Parameters:
  • output_directory (str | Path) – The directory to download the ide files to

  • should_download_file_fn (Callable | None) – A function which accepts a row of the IDE file table and returns a boolean value which indicates if the IDE file should be downloaded or not. If this function is not given, the default function will always return True.

  • force_reload_file_table (bool) – If the file table to use as reference for what files exist in the cloud should be recomputed even if it is already stored (as self.file_table)

  • file_limit (int) – The maximum number of files to download. If the force_recompute_file_table parameter is True then this will also be used to limit the number of files put in the file table it creates.

Returns:

An array of the filenames which were just downloaded

Return type:

ndarray

TO-DO:
  • Would be nice to have a parameter to get only ones with a certain tag

  • Maybe Have a blacklist and/or whitelist parameter

get_account_info()

Get information about the connected account. Sets or updates the values of account_id and account_email.

Returns:

If successful, a dictionary containing (at minimum) the keys email and id.

Return type:

dict

get_devices(limit=100)

Get dataframe of devices and associated attributes (part_number, description, etc.) attached to the account.

Parameters:

limit (int) – The maximum number of files to return.

Returns:

A DataFrame of recorder information.

Return type:

DataFrame

get_file(file_id, local_name=None)

Download the specified file to local_name if provided, use the file name from the cloud if no local name is provided.

Parameters:
  • file_id (int | str) – The file’s cloud ID.

  • local_name (str | None) – The downloaded file’s destination pathname; defaults to the file’s original basename & located in the directory in which the Python interpreter was launched

Returns:

The imported file, as an idelib.dataset.Dataset.

Return type:

Dataset

get_file_table(attributes='all', limit=100)

Get a table of the data that would be similar to that you’d get doing the CSV export on the my recordings page, up to the first limit files with attributes matching attributes.

Parameters:
  • limit (int) – The maximum number of files to return.

  • attributes (list | str) – A list of attribute strings (or a single comma-delimited string of attributes) to match.

Returns:

A DataFrame of file IDs and relevant information.

Return type:

DataFrame

set_attributes(file_id, attributes)

Set the ‘attributes’ (name/value metadata) of a file.

Parameters:
  • file_id (int | str) – The file’s cloud ID.

  • attributes (list) – A list of dictionaries of the following structure:

[{
    "name": "attr_31",
    "type" : "float",
    "value" : 3.3,
}]
Returns:

The list of the file’s new attributes.

Return type:

list

endaq.cloud.core.count_tags(df)

Given the dataframe returned by EndaqCloud.get_file_table(), provide some info on the tags of the files in that account.

Parameters:

df (DataFrame) – A DataFrame of file information, as returned by EndaqCloud.get_file_table().

Returns:

A DataFrame summarizing the tags in df.

Return type:

DataFrame

endaq.cloud.core.json_table_to_df(data)

Convert JSON parsed from a custom report to a more user-friendly pandas.DataFrame.

Parameters:

data (list) – A list of data from a custom report’s JSON.

Returns:

A formatted DataFrame

Return type:

DataFrame