Parameters

class audobject.Parameters(**kwargs)[source]

List of parameters.

Parameters

**kwargsaudobject.Parameter objects

Examples

>>> # create parameter
>>> foo = Parameter(
...     value_type=str,
...     description='foo',
... )
>>> # create list of parameters
>>> params = Parameters(foo=foo)
>>> # get / set parameter value
>>> params.foo = 'bar'
>>> params.foo
'bar'
>>> # add another parameter to list
>>> pi = Parameter(
...     value_type=float,
...     description='mathematical constant',
...     value=3.14159265359,
... )
>>> params['pi'] = pi
>>> print(params)
Name  Value          Default  Choices  Description            Version
----  -----          -------  -------  -----------            -------
foo   bar            None     None     foo                    None
pi    3.14159265359  None     None     mathematical constant  None
>>> # convert to dictionary
>>> params()
{'foo': 'bar', 'pi': 3.14159265359}

__call__()

Parameters.__call__()[source]

Return parameters as dictionary.

__contains__()

Parameters.__contains__(key)

Check if key is in dictionary.

__getitem__()

Parameters.__getitem__(name)

Return value at key from dictionary.

Return type

Any

__hash__()

Parameters.__hash__()

Hash based on object ID.

Return type

int

__len__()

Parameters.__len__()

Number of keys in dictionary.

__setitem__()

Parameters.__setitem__(key, value)

Set value at key in dictionary.

arguments

Parameters.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

Parameters.borrowed_arguments

Returns borrowed arguments.

Returns

Dictionary with borrowed arguments.

filter_by_version()

Parameters.filter_by_version(version)[source]

Filter parameters by version.

Returns a subset including only those parameters that match a given version.

Parameters

version (str) – version string

Return type

Parameters

Returns

List with matching parameters

from_command_line()

Parameters.from_command_line(args)[source]

Parse parameters from command line parser.

Parameters

args (Namespace) – command line arguments

Return type

Parameters

from_dict()

static Parameters.from_dict(d, root=None, **kwargs)
Return type

Object

from_yaml()

static Parameters.from_yaml(path_or_stream, **kwargs)
Return type

Object

from_yaml_s()

static Parameters.from_yaml_s(yaml_string, **kwargs)
Return type

Object

hidden_arguments

Parameters.hidden_arguments

Returns hidden arguments.

Returns

List with names of hidden arguments.

id

Parameters.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

Parameters.is_loaded_from_dict

Check if object was loaded from a dictionary.

Returns True if object was initialized from a dictionary, e.g. after loading it from a YAML file.

Returns

True if object was loaded from a dictionary,

otherwise False

items()

Parameters.items()

Return items view.

Return type

ItemsView[str, Any]

keys()

Parameters.keys()

Return the keys.

Return type

KeysView[str]

resolvers

Parameters.resolvers

Return resolvers.

Returns

Dictionary with resolvers.

short_id

Parameters.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_command_line()

Parameters.to_command_line(parser)[source]

Add parameters to command line parser.

Note

Command line arguments are named –<name>.

Parameters

parser (ArgumentParser) – command line parser

to_dict()

Parameters.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 using audobject.Object.from_dict(). However, if flatten=True, this is not possible.

Parameters
  • include_version (bool) – add version to class name

  • flatten (bool) – flatten the dictionary

  • root (Optional[str]) – if file is written to disk, set to target directory

Return type

Dict[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_path()

Parameters.to_path(*, delimiter='/', include=None, exclude=None, sort=False)[source]

Creates path from parameters.

Parameters

to_yaml()

Parameters.to_yaml(path_or_stream, *, include_version=True)

Save object to YAML file.

Parameters
  • path_or_stream (Union[str, IO]) – file path or stream

  • include_version (bool) – add version to class name

to_yaml_s()

Parameters.to_yaml_s(*, include_version=True)

Convert object to YAML string.

Parameters

include_version (bool) – add version to class name

Return type

str

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

update()

Parameters.update(other)

Update the dictionary with the key/value pairs from other.

Parameters

other (Dictionary) – the other dictionary

values()

Parameters.values()

Return values.

Return type

ValuesView[Any]