tff.framework.Intrinsic

Class Intrinsic

A representation of an intrinsic in TFF's internal language.

Inherits From: ComputationBuildingBlock

Defined in core/impl/computation_building_blocks.py.

An instrinsic is a symbol known to the TFF's compiler pipeline, represended a a known URI. It generally appears in expressions with a concrete type, although all intrinsic are defined with template types. This class does not deal with parsing intrinsic URIs and verifying their types, it is only a container. Parsing and type analysis are a responsibility or the components that manipulate ASTs.

__init__

__init__(
    uri,
    type_spec
)

Creates an intrinsic.

Args:

  • uri: The URI of the intrinsic.
  • type_spec: Either the types.Type that represents the type of this intrinsic, or something convertible to it by types.to_type().

Raises:

  • TypeError: if the arguments are of the wrong types.

Properties

proto

Returns a serialized form of this object as a pb.Computation instance.

tff_repr

Returns the representation of the instance using TFF syntax.

type_signature

Returns the TFF type of this object (an instance of tff.Type).

uri

Methods

from_proto

@classmethod
from_proto(
    cls,
    computation_proto
)

Returns an instance of a derived class based on 'computation_proto'.

Args:

  • computation_proto: An instance of pb.Computation.

Returns:

An instance of a class that implements 'ComputationBuildingBlock' and that contains the deserialized logic from in 'computation_proto'.

Raises:

  • NotImplementedError: if computation_proto contains a kind of computation for which deserialization has not been implemented yet.
  • ValueError: if deserialization failed due to the argument being invalid.