streamsx.spl.types

SPL type definitions.

Overview

SPL is strictly typed, thus when invoking SPL operators using classes from streamsx.spl.op then any parameters must use the SPL type required by the operator.

Module contents

Functions

float32

Create an SPL float32 value.

float64

Create an SPL float64 value.

int16

Create an SPL int16 value.

int32

Create an SPL int32 value.

int64

Create an SPL int64 value.

int8

Create an SPL int8 value.

null

Return an SPL null.

rstring

Create an SPL rstring value.

uint16

Create an SPL uint16 value.

uint32

Create an SPL uint32 value.

uint64

Create an SPL uint64 value.

uint8

Create an SPL uint8 value.

Classes

Timestamp

SPL native timestamp type with nanosecond resolution.

class streamsx.spl.types.Timestamp

Bases: streamsx.spl.runtime.Timestamp

SPL native timestamp type with nanosecond resolution.

Common usage is to store the seconds and nanoseconds since the Unix Epoch (Jan 1, 1970), but this is not enforced by the Timestamp class.

Machine identifier is an optional application defined identifier for the machine the timestamp was created on. It is the responsibility of the application to set the machine identifier if required. The machine identifier may be used to detect if two timestamps were created on the same machine, as there may be variations in the clocks on different machines.

A instance can be created by passing seconds, nanoseconds and optionally machine identifier:

# Timestamp with the current time in seconds
# discarding any fractional seconds.
ts = Timestamp(time.time(), 0)

# Timestamp set to a specific time with a machine identifier
ts = Timestamp(1516500542, 9511447, 4)

A Timestamp is a namedtuple with three fields seconds, nanoseconds and machine_id.

A Timestamp acts as a datetime.datetime instance (duck typing) with the exception of:

  • time() - returns an int instead of datetime.time

  • datetime.datetime operations (+,-,<) are not supported

  • string representation (uses Timestamp representation)

  • is not an instance of datetime.datetime

The value of the equivalent datetime.datetime is identical to the instance returned by datetime().

seconds

Seconds since epoch.

Type

int

nanoseconds

Nanosecond component.

Type

int

machine_id

Optional machine identifier, defaults to zero.

Type

int

Warning

Implementation of Timestamp changed with 1.8.3 to be a namedtuple maintaining the existing class API.

Changed in version 1.14: Timestamp acts as a datetime.datetime.

count()

Return number of occurrences of value.

datetime()

Return the UTC datetime corresponding to the POSIX timestamp.

This is identical to datetime.datetime.utcfromtimestamp(self.time()). Nanosecond resolution may be lost.

Returns

Timestamp converted to a datetime.datetime.

Return type

datetime.datetime

static from_datetime(dt, machine_id=0)

Convert a datetime to an SPL Timestamp.

Parameters
  • dt (datetime.datetime) – Datetime to be converted.

  • machine_id (int) – Machine identifier.

Returns

Datetime converted to Timestamp.

Return type

Timestamp

static from_time(t, machine_id=0)

Convert seconds since epoch to a Timestamp.

The time argument matches the return from time.time().

Parameters
  • t (float) – Time to be converted.

  • machine_id (int) – Machine identifier.

Returns

Time converted to Timestamp.

Return type

Timestamp

New in version 1.8.3.

index()

Return first index of value.

Raises ValueError if the value is not present.

property machine_id

Alias for field number 2

property nanoseconds

Alias for field number 1

static now(machine_id=0)

Timestamp representing the current time.

Parameters

machine_id (int) – Machine identifier.

Returns

Current time.

Return type

Timestamp

New in version 1.8.3.

property seconds

Alias for field number 0

time()

Get the time in seconds since the epoch.

Returns

time in seconds since the epoch.

Return type

float

streamsx.spl.types.int8(value)

Create an SPL int8 value.

Returns

Expression representing the value.

Return type

Expression

streamsx.spl.types.int16(value)

Create an SPL int16 value.

Returns

Expression representing the value.

Return type

Expression

streamsx.spl.types.int32(value)

Create an SPL int32 value.

Returns

Expression representing the value.

Return type

Expression

Parameters

value (int) – Value to be types as int32.

streamsx.spl.types.int64(value)

Create an SPL int64 value.

Returns

Expression representing the value.

Return type

Expression

streamsx.spl.types.uint8(value)

Create an SPL uint8 value.

Returns

Expression representing the value.

Return type

Expression

streamsx.spl.types.uint16(value)

Create an SPL uint16 value.

Returns

Expression representing the value.

Return type

Expression

streamsx.spl.types.uint32(value)

Create an SPL uint32 value.

Returns

Expression representing the value.

Return type

Expression

streamsx.spl.types.uint64(value)

Create an SPL uint64 value.

Returns

Expression representing the value.

Return type

Expression

streamsx.spl.types.float32(value)

Create an SPL float32 value.

Returns

Expression representing the value.

Return type

Expression

streamsx.spl.types.float64(value)

Create an SPL float64 value.

Returns

Expression representing the value.

Return type

Expression

streamsx.spl.types.rstring(value)

Create an SPL rstring value.

Returns

Expression representing the value.

Return type

Expression

streamsx.spl.types.null()

Return an SPL null.

Returns

Expression representing an SPL null value.

Return type

Expression

New in version 1.10.