drytorch.core.tracking

Module for coordinating logging of metadata, internal messages and metrics.

DEFAULT_TRACKERS

named trackers registered to experiments by default.

Type:

dict[str, drytorch.core.tracking.Tracker]

Functions

extend_default_trackers(tracker_list)

Add a list of trackers to the default ones.

remove_all_default_trackers()

Remove all default trackers.

Classes

EventDispatcher(exp_name)

Notifies tracker of an event.

MetadataManager()

Class that handles and generates metadata.

Tracker()

Abstract base class for tracking events with priority ordering.

class EventDispatcher(exp_name)[source]

Bases: object

Notifies tracker of an event.

exp_name

name of the current experiment.

Type:

str

named_trackers

a dictionary of trackers, indexed by their names.

Type:

dict[str, drytorch.core.tracking.Tracker]

Initialize.

Parameters:

exp_name (str) – name of the current experiment.

publish(event: Event) None[source]

Publish an event to all registered trackers.

Parameters:

event (Event) – the event to publish.

Raises:
Return type:

None

subscribe(*trackers: Tracker, **named_trackers: Tracker) None[source]

Subscribe trackers to the dispatcher.

Parameters:
  • trackers (Tracker) – trackers to register with their class names.

  • named_trackers (Tracker) – trackers to register with custom names.

Raises:

TrackerAlreadyRegisteredError – if a tracker is already registered.

Return type:

None

remove(tracker_name: str) None[source]

Remove a tracker by name from the dispatcher.

Parameters:

tracker_name (str) – name of the tracker to remove.

Return type:

None

Raises: :raises TrackerNotActiveError: if the tracker is not registered.

remove_all() None[source]

Remove all trackers from the dispatcher.

Return type:

None

class MetadataManager[source]

Bases: object

Class that handles and generates metadata.

metadata_dict

set to keep track of already registered names.

Type:

dict[str, Any]

Initialize.

register_actor(actor: Any, model: ModelProtocol[Any, Any]) None[source]

Record metadata of an object that acts on a model.

Parameters:
  • actor (Any) – the object acting on the model.

  • model (ModelProtocol[Any, Any]) – the model that is called.

Return type:

None

register_model(model: ModelProtocol[Any, Any]) None[source]

Record metadata of a given model.

Parameters:

model (ModelProtocol[Any, Any]) – the model to document.

Return type:

None

unregister_actor(actor: Any) None[source]

Unregister an object that acts on a model.

Parameters:

actor (Any) – the object actin on the model.

Return type:

None

unregister_model(model: ModelProtocol[Any, Any]) None[source]

Record metadata of a given model.

Parameters:

model (ModelProtocol[Any, Any]) – the model to document.

Return type:

None

static extract_metadata(obj: Any) dict[str, Any][source]

Wrapper of recursive_repr that catches RecursionError.

To change the maximum number of documented items in an obj, set a maximum number of recursive calls and include properties, see the global variables in utils.repr_utils.

Parameters:

obj (Any) – an object to document.

Return type:

dict[str, Any]

class Tracker[source]

Bases: object

Abstract base class for tracking events with priority ordering.

abstractmethod notify(event: Event) None[source]
abstractmethod notify(event: StartExperimentEvent) None
abstractmethod notify(event: StopExperimentEvent) None

Notify the tracker of an event.

Parameters:

event (Event) – the event to notify about.

Return type:

None

clean_up() None[source]

Override to clean up the tracker.

Return type:

None

classmethod get_current() Self[source]

Get the registered tracker that is already registered.

Returns:

The instance of the tracker registered to the current experiment.

Raises:

TrackerNotActiveError – if the tracker is not registered.

Return type:

Self

extend_default_trackers(tracker_list: list[Tracker]) None[source]

Add a list of trackers to the default ones.

Parameters:

tracker_list (list[Tracker])

Return type:

None

remove_all_default_trackers() None[source]

Remove all default trackers.

Return type:

None