Model Classes

class pupil_labs.realtime_api.models.APIPath(value)[source]

Bases: Enum

An enumeration.

CALIBRATION = '/../calibration.bin'

Type:    str

EVENT = '/event'

Type:    str

RECORDING_CANCEL = '/recording:cancel'

Type:    str

RECORDING_START = '/recording:start'

Type:    str

RECORDING_STOP_AND_SAVE = '/recording:stop_and_save'

Type:    str

STATUS = '/status'

Type:    str

full_address(address, port, protocol='http', prefix='/api')[source]
Return type:

str

pupil_labs.realtime_api.models.Component

Type annotation for Status components.

Alias of Union[Phone, Hardware, Sensor, Recording, NetworkDevice]

pupil_labs.realtime_api.models.ComponentRaw

Type annotation for json-parsed responses from the REST and Websocket API.

Alias of Dict[str, Any]

namedtuple pupil_labs.realtime_api.models.DiscoveredDeviceInfo(name, server, port, addresses)[source]

Bases: NamedTuple

DiscoveredDeviceInfo(name, server, port, addresses)

Fields:
  1.  name (str) – Full mDNS service name. Follows 'PI monitor:<phone name>:<hardware id>._http._tcp.local.' naming pattern

  2.  server (str) – e.g. 'pi.local.'

  3.  port (int) – e.g. 8080

  4.  addresses (List[str]) – e.g. ['192.168.0.2']

namedtuple pupil_labs.realtime_api.models.Event(name, recording_id, timestamp)[source]

Bases: NamedTuple

Event(name, recording_id, timestamp)

Fields:
  1.  name (Optional[str]) – Alias for field number 0

  2.  recording_id (Optional[str]) – Alias for field number 1

  3.  timestamp (int) – Alias for field number 2

property datetime: datetime
Return type:

datetime

classmethod from_dict(dct)[source]
Return type:

Event

namedtuple pupil_labs.realtime_api.models.Hardware(version='unknown', glasses_serial='unknown', world_camera_serial='unknown', module_serial='unknown')[source]

Bases: NamedTuple

Hardware(version, glasses_serial, world_camera_serial, module_serial)

Fields:
  1.  version (str) – Alias for field number 0

  2.  glasses_serial (str) – Alias for field number 1

  3.  world_camera_serial (str) – Alias for field number 2

  4.  module_serial (str) – Alias for field number 3

namedtuple pupil_labs.realtime_api.models.NetworkDevice(ip, device_id, device_name, connected)[source]

Bases: NamedTuple

Information about devices discovered by the host device, not the client.

Note

This class represents device information made available via the websocket update connection by the host device (exposed via pupil_labs.realtime_api.device.Device.status_updates()). Devices discovered directly by this library are represented as DiscoveredDeviceInfo and returned by pupil_labs.realtime_api.discovery.discover_devices() and pupil_labs.realtime_api.discovery.Network.

Fields:
  1.  ip (str) – Alias for field number 0

  2.  device_id (str) – Alias for field number 1

  3.  device_name (str) – Alias for field number 2

  4.  connected (bool) – Alias for field number 3

namedtuple pupil_labs.realtime_api.models.Phone(battery_level, battery_state, device_id, device_name, ip, memory, memory_state, time_echo_port=None)[source]

Bases: NamedTuple

Phone(battery_level, battery_state, device_id, device_name, ip, memory, memory_state, time_echo_port)

Fields:
  1.  battery_level (int) – Alias for field number 0

  2.  battery_state (Literal['OK', 'LOW', 'CRITICAL']) – Alias for field number 1

  3.  device_id (str) – Alias for field number 2

  4.  device_name (str) – Alias for field number 3

  5.  ip (str) – Alias for field number 4

  6.  memory (int) – Alias for field number 5

  7.  memory_state (Literal['OK', 'LOW', 'CRITICAL']) – Alias for field number 6

  8.  time_echo_port (Optional[int]) – Alias for field number 7

namedtuple pupil_labs.realtime_api.models.Recording(action, id, message, rec_duration_ns)[source]

Bases: NamedTuple

Recording(action, id, message, rec_duration_ns)

Fields:
  1.  action (str) – Alias for field number 0

  2.  id (str) – Alias for field number 1

  3.  message (str) – Alias for field number 2

  4.  rec_duration_ns (int) – Alias for field number 3

property rec_duration_seconds: float
Return type:

float

namedtuple pupil_labs.realtime_api.models.Sensor(sensor, conn_type, connected=False, ip=None, params=None, port=None, protocol='rtsp')[source]

Bases: NamedTuple

Sensor(sensor, conn_type, connected, ip, params, port, protocol)

Fields:
  1.  sensor (str) – Alias for field number 0

  2.  conn_type (str) – Alias for field number 1

  3.  connected (bool) – Alias for field number 2

  4.  ip (Optional[str]) – Alias for field number 3

  5.  params (Optional[str]) – Alias for field number 4

  6.  port (Optional[int]) – Alias for field number 5

  7.  protocol (str) – Alias for field number 6

class Connection(value)[source]

Bases: Enum

An enumeration.

ANY = None

Type:    None

DIRECT = 'DIRECT'

Type:    str

WEBSOCKET = 'WEBSOCKET'

Type:    str

class Name(value)[source]

Bases: Enum

An enumeration.

ANY = None

Type:    None

EYES = 'eyes'

Type:    str

GAZE = 'gaze'

Type:    str

IMU = 'imu'

Type:    str

WORLD = 'world'

Type:    str

property url: str | None
Return type:

Optional[str]

class pupil_labs.realtime_api.models.Status(phone, hardware, sensors, recording)[source]

Bases: object

Represents the Companion’s full status

direct_eyes_sensor()[source]
Return type:

Optional[Sensor]

direct_gaze_sensor()[source]
Return type:

Optional[Sensor]

direct_imu_sensor()[source]
Return type:

Optional[Sensor]

direct_world_sensor()[source]
Return type:

Optional[Sensor]

classmethod from_dict(status_json_result)[source]
Return type:

Status

hardware

Type:    Hardware

matching_sensors(name, connection)[source]
phone

Type:    Phone

recording

Type:    Optional[Recording]

sensors

Type:    List[Sensor]

update(component)[source]
Return type:

None

exception pupil_labs.realtime_api.models.UnknownComponentError[source]

Bases: ValueError

pupil_labs.realtime_api.models.parse_component(raw)[source]

Initialize an explicitly modelled representation (pupil_labs.realtime_api.models.Component) from the json-parsed dictionary (pupil_labs.realtime_api.models.ComponentRaw) received from the API.

Raises:

UnknownComponentError – if the component name cannot be mapped to an explicitly modelled class or the contained data does not fit the modelled fields.

Return type:

Union[Phone, Hardware, Sensor, Recording, NetworkDevice]