caikit.interfaces.common.data_model

Domain agnostic data model objects

Submodules

Classes

File

A DataObject is a data model class that is backed by a @dataclass.

BoolSequence

Base class for all Sequences to enable type checking

FloatSequence

Base class for all Sequences to enable type checking

IntSequence

Base class for all Sequences to enable type checking

Sequence

Base class for all Sequences to enable type checking

StrSequence

Base class for all Sequences to enable type checking

ProducerId

Information about a data structure and the module that produced it.

ConnectionInfo

DataClass to store information regarding an external connection. This includes the hostname,

ConnectionTlsInfo

Helper dataclass to store information regarding TLS information.

FileReference

A DataObject is a data model class that is backed by a @dataclass.

ListOfFileReferences

A DataObject is a data model class that is backed by a @dataclass.

ListOfVector1D

Data representation for an embedding matrix holding 2D vectors

NpFloat32Sequence

A DataObject is a data model class that is backed by a @dataclass.

NpFloat64Sequence

A DataObject is a data model class that is backed by a @dataclass.

PyFloatSequence

A DataObject is a data model class that is backed by a @dataclass.

Vector1D

Data representation for a 1 dimension vector of float-type data.

Package Contents

class caikit.interfaces.common.data_model.File[source]

Bases: caikit.core.data_model.DataObjectBase

A DataObject is a data model class that is backed by a @dataclass.

Data model classes that use the @dataobject decorator must derive from this base class.

data: py_to_proto.dataclass_to_proto.Annotated[bytes, FieldNumber(1)]
filename: py_to_proto.dataclass_to_proto.Annotated[str | None, FieldNumber(2)]
type: py_to_proto.dataclass_to_proto.Annotated[str | None, FieldNumber(3)]
class caikit.interfaces.common.data_model.BoolSequence[source]

Bases: Sequence

Base class for all Sequences to enable type checking e.g. isinstance(<>, Sequence)

values: py_to_proto.dataclass_to_proto.Annotated[List[bool], FieldNumber(1)]
class caikit.interfaces.common.data_model.FloatSequence[source]

Bases: Sequence

Base class for all Sequences to enable type checking e.g. isinstance(<>, Sequence)

values: py_to_proto.dataclass_to_proto.Annotated[List[float], FieldNumber(1)]
class caikit.interfaces.common.data_model.IntSequence[source]

Bases: Sequence

Base class for all Sequences to enable type checking e.g. isinstance(<>, Sequence)

values: py_to_proto.dataclass_to_proto.Annotated[List[int], FieldNumber(1)]
class caikit.interfaces.common.data_model.Sequence[source]

Bases: caikit.core.data_model.DataObjectBase

Base class for all Sequences to enable type checking e.g. isinstance(<>, Sequence)

values: List[Any]
class caikit.interfaces.common.data_model.StrSequence[source]

Bases: Sequence

Base class for all Sequences to enable type checking e.g. isinstance(<>, Sequence)

values: py_to_proto.dataclass_to_proto.Annotated[List[str], FieldNumber(1)]
class caikit.interfaces.common.data_model.ProducerId[source]

Bases: caikit.core.data_model.dataobject.DataObjectBase

Information about a data structure and the module that produced it.

name: str
version: str
__add__(other)[source]

Add two producer ids.

classmethod from_proto(proto)[source]

Overloaded implementation for efficiency vs base introspection

fill_proto(proto)[source]

Overloaded implementation for efficiency vs base introspection

class caikit.interfaces.common.data_model.ConnectionInfo[source]

Bases: caikit.core.data_model.DataObjectBase

DataClass to store information regarding an external connection. This includes the hostname, port, tls, and timeout settings

hostname: str
port: int | None = None
tls: ConnectionTlsInfo | None
timeout: int | None = 60
options: caikit.core.data_model.json_dict.JsonDict | None
retries: int | None = 1
retry_options: caikit.core.data_model.json_dict.JsonDict | None
max_session_age: float | int = -1
__post_init__()[source]

Post init function to verify field types and set defaults

class caikit.interfaces.common.data_model.ConnectionTlsInfo[source]

Bases: caikit.core.data_model.DataObjectBase

Helper dataclass to store information regarding TLS information.

enabled: bool = False
insecure_verify: bool = False
ca_file: str | None
cert_file: str | None
key_file: str | None
property mtls_enabled: bool

Helper property to identify if mtls is enabled

_private_slots = ('_ca_data', '_cert_data', '_key_data')
property ca_data: bytes | None
property key_data: bytes | None
property cert_data: bytes | None
__post_init__()[source]

Post init function to verify field types and arguments

verify_ssl_data()[source]

Helper function to verify all TLS data was read correctly.

Raises:

FileNotFoundError: If any of the tls files were provided but could not be found

class caikit.interfaces.common.data_model.FileReference[source]

Bases: caikit.core.data_model.DataObjectBase

A DataObject is a data model class that is backed by a @dataclass.

Data model classes that use the @dataobject decorator must derive from this base class.

filename: py_to_proto.dataclass_to_proto.Annotated[str, FieldNumber(1)]
class caikit.interfaces.common.data_model.ListOfFileReferences[source]

Bases: caikit.core.data_model.DataObjectBase

A DataObject is a data model class that is backed by a @dataclass.

Data model classes that use the @dataobject decorator must derive from this base class.

files: py_to_proto.dataclass_to_proto.Annotated[List[str], FieldNumber(1)]
class caikit.interfaces.common.data_model.ListOfVector1D[source]

Bases: caikit.core.DataObjectBase

Data representation for an embedding matrix holding 2D vectors

vectors: py_to_proto.dataclass_to_proto.Annotated[List[Vector1D], FieldNumber(1)]
__post_init__()[source]
classmethod from_json(json_str: Dict[str, Any] | str) ListOfVector1D[source]

Fill in the vector data in an appropriate data_<float type sequence>

class caikit.interfaces.common.data_model.NpFloat32Sequence[source]

Bases: caikit.core.DataObjectBase

A DataObject is a data model class that is backed by a @dataclass.

Data model classes that use the @dataobject decorator must derive from this base class.

values: py_to_proto.dataclass_to_proto.Annotated[List[numpy.float32], FieldNumber(1)]
classmethod from_proto(proto)[source]

Build a DataBase from protobufs.

Args:

proto: A protocol buffer to serialize from.

Returns:

protobufs: A DataBase object.

class caikit.interfaces.common.data_model.NpFloat64Sequence[source]

Bases: caikit.core.DataObjectBase

A DataObject is a data model class that is backed by a @dataclass.

Data model classes that use the @dataobject decorator must derive from this base class.

values: py_to_proto.dataclass_to_proto.Annotated[List[numpy.float64], FieldNumber(1)]
classmethod from_proto(proto)[source]

Build a DataBase from protobufs.

Args:

proto: A protocol buffer to serialize from.

Returns:

protobufs: A DataBase object.

class caikit.interfaces.common.data_model.PyFloatSequence[source]

Bases: caikit.core.DataObjectBase

A DataObject is a data model class that is backed by a @dataclass.

Data model classes that use the @dataobject decorator must derive from this base class.

values: py_to_proto.dataclass_to_proto.Annotated[List[float], FieldNumber(1)] = []
class caikit.interfaces.common.data_model.Vector1D[source]

Bases: caikit.core.DataObjectBase

Data representation for a 1 dimension vector of float-type data.

data: py_to_proto.dataclass_to_proto.Annotated[PyFloatSequence | NpFloat32Sequence | NpFloat64Sequence, FieldNumber(1)]
__post_init__()[source]
classmethod from_vector(vector)[source]
classmethod from_json(json_str: Dict[str, Any] | str) Vector1D[source]

JSON does not have different float types. Move data into data_pyfloatsequence

to_dict() dict[source]

to_dict is needed to make things serializable

classmethod from_proto(proto)[source]

Wrap the data in an appropriate float sequence, wrapped by this class

fill_proto(proto)[source]

Fill in the data in an appropriate data_<float type sequence>