Well

Represents a Well asset. Inherits data and feed operations from Asset.

class roak_sdk.semantics.assets.well.Well(data, registry)[source]

Bases: Asset

Represents a Well asset.

Parameters:
  • data (dict)

  • registry (ClientRegistry)

DEFAULT_FEEDS: list[str] = ['waterLevelReference']
DEFAULT_TIMEFRAME_DAYS: int = 1
get_attributes()

Get the locally cached attribute dictionary.

Returns:

Raw data dictionary.

Return type:

dict

get_data(start_datetime=None, end_datetime=None, feeds=None)

First check if requested feeds exist. Fetch data for this asset within a date range.

Parameters:
  • start_datetime (datetime | int | None) – Start of the date range as timezone-aware datetime or milliseconds since epoch.

  • end_datetime (datetime | int | None) – End of the date range as timezone-aware datetime or milliseconds since epoch.

  • feeds (list[str] | None)

Returns:

List of data records.

Return type:

list[dict]

Raises:

AssetValidationError – If provided datetimes are naive or invalid.

get_feeds()

Fetch available data feeds for this asset.

Returns:

List of feed definitions.

Return type:

list[dict]

get_last_values()

Get one last-reading summary row per feed for this semantic.

Returns rows with:
  • feedname

  • last_value

  • unit (unit.name)

  • record_time

Return type:

list[dict]

refresh_attributes()

Fetch semantic attributes for this semantic and merge into _data.

Expects the API payload shape to be paged, with the attribute list in payload["content"].

Returns:

Updated attributes dictionary.

Return type:

dict

Raises:
  • KeyError – If content is missing from the API payload.

  • TypeError – If content is not iterable as expected.

guid: str
name: str