Specification

class samplomatic.tensor_interface.Specification[source]

Bases: ABC, Generic[T]

A specification of an expected value inside of an interface.

Attributes Summary

description

A description of this specification.

free_dimensions

Named dimensions whose sizes are free until an interface value binds their value.

name

The name of this specification.

optional

Whether this is an optional specification.

Methods Summary

describe()

Return a human-readable description of this specification.

validate_and_coerce(value)

Coerce a value into a correct type if valid.

Attributes Documentation

description

A description of this specification.

free_dimensions

Named dimensions whose sizes are free until an interface value binds their value.

Within a TensorInterface, all free dimensions of the same name must be consistently bound. This allows specification of dimensions of values that can be arbitrary, and that are only resolved once bound to an interface.

name

The name of this specification.

optional

Whether this is an optional specification.

Methods Documentation

abstractmethod describe() str[source]

Return a human-readable description of this specification.

abstractmethod validate_and_coerce(value: Any) tuple[T, dict[str, int]][source]

Coerce a value into a correct type if valid.

Parameters:

value – A value to validate and coerce with respect to this specification.

Raises:

TypeError – If the value cannot be coerced into a valid type.

Returns:

The coerced value, and a dictionary mapping each member of free_dimensions to a size implied by the value.