forward_override
fastforward.forward_override.T = TypeVar('T')
module-attribute
#
fastforward.forward_override.OverrideFn
#
Bases: Protocol[T]
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.
__call__(__context, __overridden_fn, __args, __kwargs)
#
Generic call signature.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
__context
|
Any
|
The quantizer that is overridden by this override function |
required |
__overridden_fn
|
Callable[..., T]
|
The function that is overridden, this may the forward method of a quantizer, or a reference to another override. This should be called instead of the forward method on __context in order for an override to cooperate with other overrides. |
required |
__args
|
tuple[Any, ...]
|
The arguments passed to the quantizer. |
required |
__kwargs
|
dict[str, Any]
|
The keyword arguments passed to the quantizer. |
required |
Source code in fastforward/forward_override.py
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
fastforward.forward_override.OverrideHandle(override_map)
#
Handle object which that can be used to remove a function override.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
override_map
|
MutableMapping[int, OverrideFn[Any]]
|
Mapping that stores overrides indexed by override id. |
required |
Source code in fastforward/forward_override.py
52 53 54 55 |
|
global_handles = 0
class-attribute
instance-attribute
#
handle_id = OverrideHandle.global_handles
instance-attribute
#
override_map = weakref.ref(override_map)
instance-attribute
#
__enter__()
#
Source code in fastforward/forward_override.py
68 69 |
|
__exit__(type, value, traceback)
#
Source code in fastforward/forward_override.py
71 72 |
|
remove()
#
Remove override associated with this handle.
Returns:
Type | Description |
---|---|
OverrideFn[Any] | None
|
(Callable) the override function associated with this handle |
Source code in fastforward/forward_override.py
57 58 59 60 61 62 63 64 65 66 |
|
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. |
Source code in fastforward/forward_override.py
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
|