pyignite.datatypes.standard module

class pyignite.datatypes.standard.String

Bases: pyignite.datatypes.base.IgniteDataType

Pascal-style string: c_int counter, followed by count*bytes. UTF-8-encoded, so that one character may take 1 to 4 bytes.

classmethod build_c_type(length: int)
classmethod from_python(value)
classmethod parse(client: Client)
pythonic

alias of builtins.str

static to_python(ctype_object, *args, **kwargs)
type_code = b'\t'
class pyignite.datatypes.standard.DecimalObject

Bases: pyignite.datatypes.base.IgniteDataType

classmethod build_c_header()
default = Decimal('0.00')
classmethod from_python(value: decimal.Decimal)
classmethod parse(client: Client)
pythonic

alias of decimal.Decimal

classmethod to_python(ctype_object, *args, **kwargs)
type_code = b'\x1e'
class pyignite.datatypes.standard.UUIDObject

Bases: pyignite.datatypes.standard.StandardObject

Universally unique identifier (UUID), aka Globally unique identifier (GUID). Payload takes up 16 bytes.

classmethod build_c_type()
classmethod from_python(value: uuid.UUID)
classmethod to_python(ctypes_object, *args, **kwargs)
type_code = b'\n'
class pyignite.datatypes.standard.TimestampObject

Bases: pyignite.datatypes.standard.StandardObject

A signed integer number of milliseconds past 1 Jan 1970, aka Epoch (8 bytes long integer), plus the delta in nanoseconds (4 byte integer, only 0..999 range used).

The accuracy is ridiculous. For instance, common HPETs have less than 10ms accuracy. Therefore no ns range calculations is made; epoch and fraction stored separately and represented as tuple(datetime.datetime, integer).

classmethod build_c_type()
default = (datetime.datetime(1970, 1, 1, 0, 0), 0)
classmethod from_python(value: tuple)
pythonic

alias of builtins.tuple

classmethod to_python(ctypes_object, *args, **kwargs)
type_code = b'!'
class pyignite.datatypes.standard.DateObject

Bases: pyignite.datatypes.standard.StandardObject

A signed integer number of milliseconds past 1 Jan 1970, aka Epoch (8 bytes long integer).

Represented as a naive datetime.datetime in Python.

classmethod build_c_type()
default = datetime.datetime(1970, 1, 1, 0, 0)
classmethod from_python(value: [<class 'datetime.date'>, <class 'datetime.datetime'>])
pythonic

alias of datetime.datetime

classmethod to_python(ctypes_object, *args, **kwargs)
type_code = b'\x0b'
class pyignite.datatypes.standard.TimeObject

Bases: pyignite.datatypes.standard.StandardObject

Time of the day as a number of milliseconds since midnight.

Represented as a datetime.timedelta in Python.

classmethod build_c_type()
default = datetime.timedelta(0)
classmethod from_python(value: datetime.timedelta)
pythonic

alias of datetime.timedelta

classmethod to_python(ctypes_object, *args, **kwargs)
type_code = b'$'
class pyignite.datatypes.standard.StringArray

Bases: pyignite.datatypes.standard.StandardArray

Array of Pascal-like strings. Payload-only, i.e. no type_code field in binary representation.

List(str) in Python.

standard_type

alias of String

class pyignite.datatypes.standard.DecimalArray

Bases: pyignite.datatypes.standard.StandardArray

standard_type

alias of DecimalObject

class pyignite.datatypes.standard.UUIDArray

Bases: pyignite.datatypes.standard.StandardArray

standard_type

alias of UUIDObject

class pyignite.datatypes.standard.TimestampArray

Bases: pyignite.datatypes.standard.StandardArray

standard_type

alias of TimestampObject

class pyignite.datatypes.standard.DateArray

Bases: pyignite.datatypes.standard.StandardArray

standard_type

alias of DateObject

class pyignite.datatypes.standard.TimeArray

Bases: pyignite.datatypes.standard.StandardArray

standard_type

alias of TimeObject

class pyignite.datatypes.standard.StringArrayObject

Bases: pyignite.datatypes.standard.StandardArrayObject

List of strings.

standard_type

alias of String

type_code = b'\x14'
class pyignite.datatypes.standard.DecimalArrayObject

Bases: pyignite.datatypes.standard.StandardArrayObject

List of decimal.Decimal objects.

standard_type

alias of DecimalObject

type_code = b'\x1f'
class pyignite.datatypes.standard.UUIDArrayObject

Bases: pyignite.datatypes.standard.StandardArrayObject

Translated into Python as a list(uuid.UUID)

standard_type

alias of UUIDObject

type_code = b'\x15'
class pyignite.datatypes.standard.TimestampArrayObject

Bases: pyignite.datatypes.standard.StandardArrayObject

Translated into Python as a list of (datetime.datetime, integer) tuples.

standard_type

alias of TimestampObject

type_code = b'"'
class pyignite.datatypes.standard.TimeArrayObject

Bases: pyignite.datatypes.standard.StandardArrayObject

List of datetime.timedelta type values.

standard_type

alias of TimeObject

type_code = b'%'
class pyignite.datatypes.standard.DateArrayObject

Bases: pyignite.datatypes.standard.StandardArrayObject

List of datetime.datetime type values.

standard_type

alias of DateObject

type_code = b'\x16'
class pyignite.datatypes.standard.EnumObject

Bases: pyignite.datatypes.standard.StandardObject

Two integers used as the ID of the enumeration type, and its value.

This type itself is useless in Python, but can be used for interoperability (using language-specific type serialization is a good way to kill the interoperability though), so it represented by tuple(int, int) in Python.

classmethod build_c_type()
classmethod from_python(value: tuple)
classmethod to_python(ctypes_object, *args, **kwargs)
type_code = b'\x1c'
class pyignite.datatypes.standard.EnumArray

Bases: pyignite.datatypes.standard.StandardArray

standard_type

alias of EnumObject

class pyignite.datatypes.standard.EnumArrayObject

Bases: pyignite.datatypes.standard.StandardArrayObject

Array of (int, int) tuples, plus it holds a type_id in its header. The only type_id value of -1 (user type) works from Python perspective.

classmethod build_header_class()
classmethod from_python(value)
standard_type

alias of EnumObject

classmethod to_python(ctype_object, *args, **kwargs)
type_code = b'\x1d'
class pyignite.datatypes.standard.BinaryEnumObject

Bases: pyignite.datatypes.standard.EnumObject

Another way of representing the enum type. Same, but different.

type_code = b'&'
class pyignite.datatypes.standard.BinaryEnumArrayObject

Bases: pyignite.datatypes.standard.EnumArrayObject

standard_type

alias of BinaryEnumObject

class pyignite.datatypes.standard.ObjectArray

Bases: pyignite.datatypes.standard.EnumArrayObject

standard_type

alias of BinaryEnumObject