Function¶
- class audonnx.Function(func, *, func_args=None)[source]¶
Turn function into an
audobject.Object.- Parameters:
Examples
>>> object = Function(lambda x, sr: float(x.mean())) >>> object {'$audonnx.core.function.Function': {'func': 'lambda x, sr: float(x.mean())', 'func_args': {}}} >>> object(np.array([1, 2, 3]), 10) 2.0 >>> def feature_addition(x, offset=1): ... return float(x.mean() + offset) >>> object = Function(feature_addition) >>> object {'$audonnx.core.function.Function': {'func': 'def feature_addition(x, offset=1):\n return float(x.mean() + offset)\n', 'func_args': {}}} >>> object({"x": np.array([1, 2, 3]), "offset": 1}) 3.0
__call__()¶
- Function.__call__(inputs, sampling_rate=None)[source]¶
Apply function on inputs.
All required arguments of the function that are not already set in the
func_argsmust be provided.If
inputsis anumpy.ndarray, it is passed as a positional argument to the function, and thesampling_rate, if provided, is passed as the second positional argument.If
inputsis a dictionary, the dictionary entries are matched to the function arguments and passed as keyword arguments. Keys that don’t occur in the function arguments are ignored.
arguments¶
- Function.arguments¶
Returns arguments that are serialized.
- Returns:
Dictionary of arguments and their values.
- Raises:
RuntimeError – if arguments are found that are not assigned to attributes of the same name
Examples
>>> import audobject.testing >>> o = audobject.testing.TestObject("test", point=(1, 1)) >>> o.arguments {'name': 'test', 'point': (1, 1)}
borrowed_arguments¶
- Function.borrowed_arguments¶
Returns borrowed arguments.
- Returns:
Dictionary with borrowed arguments.
from_dict()¶
from_yaml()¶
from_yaml_s()¶
func¶
- Function.func¶
Function
func_args¶
- Function.func_args¶
Default set function arguments
id¶
- Function.id¶
Object identifier.
The ID of an object ID is created from its non-hidden arguments.
- Returns:
object identifier
Examples
>>> class Foo(Object): ... def __init__(self, bar: str): ... self.bar = bar >>> foo1 = Foo("I am unique!") >>> foo1.id '893df240-babe-d796-cdf1-c436171b7a96' >>> foo2 = Foo("I am different!") >>> foo2.id '9303f2a5-bfc9-e5ff-0ffa-a9846e2d2190' >>> foo3 = Foo("I am unique!") >>> foo1.id == foo3.id True
is_loaded_from_dict¶
- Function.is_loaded_from_dict¶
Check if object was loaded from a dictionary.
Returns
Trueif object was initialized from a dictionary, e.g. after loading it from a YAML file.- Returns:
Trueif object was loaded from a dictionary,otherwise
False
parameters¶
- Function.parameters¶
Function parameters
resolvers¶
- Function.resolvers¶
Return resolvers.
- Returns:
Dictionary with resolvers.
short_id¶
- Function.short_id¶
Short object identifier.
The short ID consists of eight characters and is created from its non-hidden arguments.
- Returns:
short object identifier
Examples
>>> class Foo(Object): ... def __init__(self, bar: str): ... self.bar = bar >>> foo1 = Foo("I am unique!") >>> foo1.id '893df240-babe-d796-cdf1-c436171b7a96' >>> foo1.short_id '171b7a96' >>> foo2 = Foo("I am different!") >>> foo2.short_id '6e2d2190' >>> foo3 = Foo("I am unique!") >>> foo1.short_id == foo3.short_id True
to_dict()¶
- Function.to_dict(*, include_version=True, flatten=False, root=None)¶
Converts object to a dictionary.
Includes items from
audobject.Object.arguments. If an argument has a resolver, its value is encoded. Usually, the object can be re-instantiated usingaudobject.Object.from_dict(). However, ifflatten=True, this is not possible.- Parameters:
- Return type:
Mapping[str,Union[bool,datetime,dict,float,int,list,None,str]]- Returns:
dictionary that represent the object
Examples
>>> import audobject.testing >>> o = audobject.testing.TestObject("test", point=(1, 1)) >>> o.to_dict(include_version=False) {'$audobject.core.testing.TestObject': {'name': 'test', 'point': [1, 1]}} >>> o.to_dict(flatten=True) {'name': 'test', 'point.0': 1, 'point.1': 1}
to_yaml()¶
to_yaml_s()¶
- Function.to_yaml_s(*, include_version=True)¶
Convert object to YAML string.
- Parameters:
include_version (
bool) – add version to class name- Return type:
- Returns:
YAML string
Examples
>>> import audobject.testing >>> o = audobject.testing.TestObject("test", point=(1, 1)) >>> print(o.to_yaml_s(include_version=False)) $audobject.core.testing.TestObject: name: test point: - 1 - 1