class d3m.primitive_interfaces.generator.GeneratorPrimitiveBase(*, hyperparams, random_seed=0, docker_containers=None, volumes=None, temporary_directory=None)[source]

Bases: d3m.primitive_interfaces.base.PrimitiveBase[[d3m.container.list.List, typing.Outputs, typing.Params], typing.Hyperparams]

A base class for primitives which have to be fitted before they can start producing (useful) outputs, but they are fitted only on output data. Moreover, they do not accept any inputs to generate outputs, which is represented as a sequence (list) of non-negative integer values to produce method, only to signal how many outputs are requested, and which one from the potential set of outputs.

The list of integer values to produce method provides support for batching. A caller does not have to rely on the order in which the primitive is called but can specify the index of the requested output.

This class is parameterized using only by three type variables, Outputs, Params, and Hyperparams.

fit_multi_produce(*, produce_methods, inputs, outputs, timeout=None, iterations=None)[source]

A method calling fit and after that multiple produce methods at once.

  • produce_methods (Sequence[str]) – A list of names of produce methods to call.

  • inputs (List) – The inputs given to all produce methods.

  • outputs (~Outputs) – The outputs given to set_training_data.

  • timeout (Optional[float]) – A maximum time this primitive should take to both fit the primitive and produce outputs for all produce methods listed in produce_methods argument, in seconds.

  • iterations (Optional[int]) – How many of internal iterations should the primitive do for both fitting and producing outputs of all produce methods.


A dict of values for each produce method wrapped inside MultiCallResult.

Return type


abstract set_training_data(*, outputs)[source]

Sets training data of this primitive.


outputs (~Outputs) – The outputs.

Return type


docker_containers: Dict[str, d3m.primitive_interfaces.base.DockerContainer][source]

A dict mapping Docker image keys from primitive’s metadata to (named) tuples containing container’s address under which the container is accessible by the primitive, and a dict mapping exposed ports to ports on that address.

hyperparams: Hyperparams[source]

Hyperparams passed to the constructor.

logger: ClassVar[logging.Logger][source]

Primitive’s logger. Available as a class attribute. This gets automatically set to primitive’s logger in metaclass.

metadata: ClassVar[d3m.metadata.base.PrimitiveMetadata][source]

Primitive’s metadata. Available as a class attribute. Primitive author should provide all fields which cannot be determined automatically inside the code. In this way metadata is close to the code and it is easier for consumers to make sure metadata they are using is really matching the code they are using. PrimitiveMetadata class updates itself with metadata about code and other things it can extract automatically.

random_seed: int[source]

Random seed passed to the constructor.

temporary_directory: Optional[str][source]

An absolute path to a temporary directory a primitive can use to store any files for the duration of the current pipeline run phase. Directory is automatically cleaned up after the current pipeline run phase finishes.

volumes: Dict[str, str][source]

A dict mapping volume keys from primitive’s metadata to file and directory paths where downloaded and extracted files are available to the primitive.