Skip to content

forward_override

Attributes#

fastforward.forward_override.T = TypeVar('T') module-attribute #

Classes#

fastforward.forward_override.OverrideFn #

Bases: Protocol[T]


              flowchart TD
              fastforward.forward_override.OverrideFn[OverrideFn]

              

              click fastforward.forward_override.OverrideFn href "" "fastforward.forward_override.OverrideFn"
            

Protocol for override functions.

Override functions can be registered to override a quantizer. These acts as dynamic decorators that can be applied an removed at runtime.

fastforward.forward_override.OverrideHandle(quantizer) #

Handle object which that can be used to remove a function override.

Parameters:

Name Type Description Default
quantizer Quantizer

The quantizer that owns the override.

required
Attributes#
global_handles = 0 class-attribute instance-attribute #
handle_id = OverrideHandle.global_handles instance-attribute #
Methods#
remove() #

Remove override associated with this handle.

Returns:

Type Description
OverrideFn[Any] | None

(Callable) the override function associated with this handle

Functions#

fastforward.forward_override.apply_overrides(context, overridden_fn, override_map) #

Apply overrides in override_map to overridden_fn.

This returns a callable that, when applicable, calls functions overrides. These act similarly to decorators.

The overrides are applied in descending order of the key in override_map

Parameters:

Name Type Description Default
context Any

An object related to overridden fn that may store contextual data that is passed into the function overrides.

required
overridden_fn Callable[..., T]

The function to override.

required
override_map Mapping[int, OverrideFn[T]]

A mapping from int to overrides. The overrides are applied in order of the key.

required

Returns:

Type Description
_WrappedOverriddenFn[T] | Callable[..., T]

(Callable[..., T]) wrapped overridden_fn, or overridden_fn if override_map

_WrappedOverriddenFn[T] | Callable[..., T]

is empty.