sisense.data package

Submodules

sisense.data.build module

class sisense.data.build.Build(api: sisense.api.API, rjson: dict = None)[source]

Bases: sisense.resource.Resource

BUILDING = 'building'
CANCELLED = 'cancelled'
DONE = 'done'
FAILED = 'failed'
PENDING = 'pending'
all(datamodel_id: str = None, status: str = None) → list[source]

Get a list of build tasks.

Parameters:
  • datamodel_id – (str, default None) ID of Datamodel to filter results by.
  • status – (str, default None) Build status to filter results by. Possible values: pending, building, done, failed, cancelled.
Returns:

(list) List of Build objects.

get(oid: str) → sisense.resource.Resource[source]

Get a build task by id.

Parameters:oid – (str) Build ID.
Returns:Build
has_failed() → bool[source]

True, if build has failed.

Returns:(bool)
is_building() → bool[source]

True, if build has building status.

Returns:(bool)
is_done() → bool[source]

True, if build is done.

Returns:(bool)
is_finished() → bool[source]

True, if build is not running nor pending.

Returns:(bool)
is_initialized() → bool[source]

True, if build has a status.

Returns:(bool)
is_pending() → bool[source]

True, if build has pending status.

Returns:(bool)
start(datamodel_id: str, build_type: str = 'schema_changes', row_limit: int = None) → sisense.resource.Resource[source]

Start a new build.

Parameters:
  • datamodel_id – (str) Datamodel ID.
  • build_type – (str, default ‘schema_changes’) Type of build. Possible values: schema_changes, by_table, full
  • row_limit – (int) Row limit.
Returns:

Build

stop()[source]

Cancel/stop this build.

update()[source]

Update this build information.

was_cancelled() → bool[source]

True, if build was cancelled.

Returns:(bool)

sisense.data.connection module

class sisense.data.connection.Connection(api: sisense.api.API, rjson: dict = None)[source]

Bases: sisense.resource.Resource

all(**kwargs) → list[source]

Get all connections.

Parameters:kwargs – Optional keyword arguments. - sort: (str) Field by which the result should be sorted. - skip: (int) Number the results to skip from the start. USe for paging. - limit: (int) Nuber of results to retrieve.
Returns:a list of Connection objects.
create(**kwargs) → sisense.resource.Resource[source]

Create a new connection.

Parameters:kwargs – Keyword arguments. - owner: (str) User’s ID. - provider: (str) Connection type: Excel, MySQL, MS SQL… - timeout: (int) Connection timeout. - refreshRate: (float) Optional. Just for live models. - timezone: (str) Optional. Timezone. - schema: (str) Database schema that will be used. - parameters: (dict) Other parameters such as UserName, Password, Database…
Returns:(Connection) The new connection.
delete()[source]

Delete the current connection.

get(oid: str) → sisense.resource.Resource[source]

Get the specified connection.

Parameters:oid – (str) Connections’s ID.
Returns:(Connection)
update(**kwargs) → sisense.resource.Resource[source]

Update the current connection.

Parameters:kwargs – Keyword arguments. - owner: (str) User’s ID. - provider: (str) Connection type: Excel, MySQL, MS SQL… - timeout: (int) Connection timeout. - refreshRate: (float) Optional. Just for live models. - timezone: (str) Optional. Timezone. - schema: (str) Database schema that will be used. - parameters: (dict) Other parameters such as UserName, Password, Database…
Returns:(Connection) The updated connection.

sisense.data.datamodel module

class sisense.data.datamodel.Datamodel(api: sisense.api.API, rjson: dict = None)[source]

Bases: sisense.resource.Resource

clone(title: str) → sisense.resource.Resource[source]

Clone this datamodel.

Parameters:title – (str) Datamodel’s title.
Returns:(Datamodel) The new datamodel.
create(title: str, server: str = 'LocalHost', ctype: str = 'extract') → sisense.resource.Resource[source]

Create a new datamodel.

Parameters:
  • title – (str) Datamodel’s title.
  • server – (str, default ‘LocalHost’) Server in which the datamodel should be created.
  • ctype – (str, default ‘extract’) Creation type.
Returns:

(Datamodel) The new datamodel.

delete()[source]

Delete this data model.

do_export(filepath: str, full: bool = False)[source]

Export the datamodel.

Parameters:
  • filepath – (str) Where to save the downloaded file, including file’s name.
  • full – (bool, default False) If true, export datamodel with schema and data. Otherwise, only export datamodel’s schema.
do_import(title: str, filepath: str, full: bool = False) → sisense.resource.Resource[source]

Import a datamodel.

Parameters:
  • title – (str) New datamodel’s title.
  • filepath – (str) Where to get data for import, including file’s name.
  • full – (bool, default False) If true, import datamodel with schema and data. Otherwise, only import datamodel’s schema.
Returns:

(Datamodel) The new datamodel.

get(oid: str = None, title: str = None) → sisense.resource.Resource[source]

Get datamodel by ID. At least one of the parameters should be set.

Parameters:
  • oid – (str, default None) Datamodel’s ID to search for.
  • title – (str, default None) Datamodel’s title to search for. If oid is set, title is ignored.
Returns:

Datamodel

get_latest_build_log(start_from: int = 1)[source]

Get datamodel’s latest build log.

Parameters:start_from – (int, default 1) From log sequence number.
Returns:(list) Logs. Example: [{
”timestamp”: “2022-10-25T19:03:12.069Z”, “verbosity”: “Info”, “type”: “buildFlow”, “message”: “Waiting in queue”, “trackId”: “77d24bba-c7f8-4c47-9de9-a64bc5a7e746”, “contextRef”: null, “serverId”: “7c3f73dd-0b38-48dc-9347-c78811bd80c4”, “serverName”: “localhost”, “cubeId”: “Bot”, “sessionId”: “0c2152c0-d716-4579-895e-1f24f3aa8670”, “buildSeq”: 1, “typeValue”: {
”tableName”: null, “columnName”: null, “trackingItemEventId”: null, “title”: “Waiting in queue”, “description”: “Waiting in queue”, “additionalInfo”: null, “__typename”: “BuildLogGeneralInfoTypeValue”

}, “serverTime”: “2022-10-28T17:42:00.795Z”, “__typename”: “BuildLogEntry”

}, …]

list()[source]
Get the following information for each elasticube:
  • instance: Query instance
  • id: elasticube’s ID
  • name: elasticube’s name
  • runtime_status: RUNNING or STOPPED
  • index_size: LONG or SHORT
  • path: path to the elasticube data on Linux
  • shadow_path: (?)
  • next_path: in case the elasticube is divided into two paths
  • last_failure_message: if build failed, shows the last message
Returns:(list) a list of Datamodel objects
start()[source]

Start this data model.

stop()[source]

Stop this data model.

sisense.data.datasecurity module

class sisense.data.datasecurity.DataSecurity(api: sisense.api.API, rjson: dict = None, elasticube_name: str = None)[source]

Bases: sisense.resource.Resource

all(table: str = None, column: str = None, elasticube: str = None) → list[source]

Get elasticube’s data security rules. If ‘table’ and ‘column’ are specified, get rules for that specific column.

Parameters:
  • table – (str, default None) Datatable’s name.
  • column – (str, default None) Column’s name.
  • elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
Returns:

(list) of DataSecurity objects

create(table: str, column: str, datatype: str, shares: list, elasticube: str = None, **kwargs) → sisense.resource.Resource[source]

Create a new data security rule.

Parameters:
  • table – (str) Datatable’s name.
  • column – (str) Column’s name.
  • datatype – (str) Type of data. For example: ‘text’.
  • shares – (list) List of shares dict {‘party’: <user/group id>, ‘type’: <’user’ or ‘group’>}
  • members – (list, default None) Values considered. For example: if column is CountryName, then members can be a list of country names to allow or deny.
  • all_members – (bool, default True) Whether to apply the rules for all members. If members is set, this parameter is ignored.
  • exclusionary – (bool, default True) Allow (False) or deny (True) members.
  • elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
Returns:

(DataSecurity) The new data security rule.

delete()[source]

Delete the current data security rule.

delete_all(table: str = None, column: str = None, elasticube: str = None)[source]

Delete data security rules for a specific column.

Parameters:
  • table – (str, default None) Datatable’s name. If None, use self.table.
  • column – (str, default None) Column’s name. If None, use self.column.
  • elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
get(oid: str, elasticube: str = None) → sisense.resource.Resource[source]

Get the specified data security rule.

Parameters:
  • oid – (str) Rule’s ID.
  • elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
Returns:

(DataSecurity) if found. Otherwise, None.

update() → sisense.resource.Resource[source]

Update the current data security rule.

Returns:(DataSecurity) updated.

sisense.data.datasource module

class sisense.data.datasource.Datasource(api: sisense.api.API, rjson: dict = None)[source]

Bases: sisense.resource.Resource

from_sql(datasource, query: str) → dict[source]

Execute a SQL statement in the specified datasource.

Parameters:
  • datasource – (str or dict) Elasticube name or datasource representation as JSON.
  • query – (str) A SQL statement.
Returns:

(dict) {“headers”: list, “values”: list of lists}

jaql(datasource: [<class 'dict'>, <class 'str'>], metadata: list) → dict[source]

Execute JAQL on datasource.

Parameters:
  • datasource – (str or dict) Elasticube name or datasource representation as JSON.
  • metadata – (list) A list of JAQL representations as dict. See https://sisense.dev/reference/jaql/ for details.
Returns:

returns a dictionary with the structure of a widget expected in headers, metadata, datasource, values.

to_csv(datasource, metadata: list) → str[source]

Execute JAQL and return the result as CSV.

Parameters:
  • datasource – (str or dict) Elasticube name or datasource representation as JSON.
  • metadata – (list) A list of JAQL representations as dict. See https://sisense.dev/reference/jaql/ for details.
Returns:

(pandas.DataFrame) Data as CSV represent by a pandas.DataFrame.

sisense.data.elasticube module

class sisense.data.elasticube.Elasticube(api: sisense.api.API, rjson: dict = None)[source]

Bases: sisense.resource.Resource

all() → list[source]

Get all elasticubes.

Returns:(list) of Elasticube objects.
get(name: str) → sisense.resource.Resource[source]

Get elasticube.

Parameters:name – (str) Elasticube’s name.
Returns:(Elasticube)

sisense.data.hierarchy module

class sisense.data.hierarchy.Hierarchy(api: sisense.api.API, rjson: dict = None, elasticube_name: str = None)[source]

Bases: sisense.resource.Resource

all(elasticube: str = None) → list[source]

Get elasticube’s hierarchies.

Parameters:elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
Returns:a list of Hierarchy objects
create(title: str, levels: list, always_included: bool, elasticube: str = None) → sisense.resource.Resource[source]

Create a new hierarchy.

Parameters:
  • title – (str) Hierarchy’s title.
  • levels – (list) List of dict {‘title’: str, ‘table’: str, ‘column’: str, ‘datatype’: str, ‘dim’: str, index: int}.
  • always_included – (bool) Whether to always include the hierarchy on widget.
  • elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
Returns:

(Hierarchy) The new hierarchy.

delete()[source]

Delete the current hierarchy.

get(oid: str, elasticube: str = None) → sisense.resource.Resource[source]

Get the specified hierarchy.

Parameters:
  • oid – (str) Hierarchy’s ID.
  • elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
Returns:

(Hierarchy) if found. Otherwise, None.

sisense.data.permission module

class sisense.data.permission.Permission(api: sisense.api.API, rjson: dict = None, elasticube_name: str = None)[source]

Bases: sisense.resource.Resource

all(elasticube: str = None) → list[source]

Get permissions (shares) for the specified elasticube.

Parameters:elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
Returns:a list of permission objects
create(oid: str = None, ptype: str = None, level: str = None, elasticube: str = None) → sisense.resource.Resource[source]

Create new permission to the specified elasticube. If any optional parameters are None, add the current permission.

Parameters:
  • oid – (str, default None) Group/user id.
  • ptype – (str, default None) Party’s type. Possible values are: ‘group’ or ‘user’.
  • level – (str, default None) Permission’s type. Possible values are: ‘r’ (read) or ‘w’ (write).
  • elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
Returns:

(Permission) The new permission.

delete()[source]

Delete the current permission.

delete_all(elasticube: str = None)[source]

Delete all elasticube’s permissions.

Parameters:elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
get(oid: str, elasticube: str = None) → sisense.resource.Resource[source]

Get the permission for a user/group.

Parameters:
  • oid – (str) Party ID.
  • elasticube – (str, default None) Elasticube’s name. If None, use self.elasticube.
Returns:

(Permission) if found. None, otherwise.

Module contents