List¶
- class auglib.observe.List(elements, *, shuffle=False, draw=False)[source]¶
Iterate over a list of (observable) objects.
List can contain objects with any type. Objects that implement
auglib.observe.Baseare automatically observed and the observed value is returned.- Parameters
elements (
typing.MutableSequence[typing.Any]) – list of (observables) objectsshuffle (
bool) – return elements in random orderdraw (
bool) – randomly draw the next element
- Raises
ValueError – when trying to
shuffleanddrawat the same time
Examples
>>> import auglib >>> auglib.seed(1) >>> o = List([0, "b", "c"]) >>> [o() for _ in range(5)] [0, 'b', 'c', 0, 'b'] >>> o = List([0, "b", "c"], shuffle=True) >>> [o() for _ in range(5)] ['b', 'c', 0, 0, 'b'] >>> o = List([0, "b", "c"], draw=True) >>> [o() for _ in range(5)] ['b', 'b', 'b', 'c', 'b'] >>> o = List([IntUni(0, 5), 99]) >>> [o() for _ in range(5)] [5, 99, 3, 99, 4]
arguments¶
- List.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¶
- List.borrowed_arguments¶
Returns borrowed arguments.
- Returns
Dictionary with borrowed arguments.
id¶
- List.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¶
- List.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
short_id¶
- List.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()¶
- List.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
include_version (
bool) – add version to class nameflatten (
bool) – flatten the dictionaryroot (
typing.Optional[str]) – if file is written to disk, set to target directory
- Return type
typing.Dict[str,typing.Union[bool,datetime.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()¶
- List.to_yaml(path_or_stream, *, include_version=True)¶
Save object to YAML file.
- Parameters
path_or_stream (
typing.Union[str,typing.IO]) – file path or streaminclude_version (
bool) – add version to class name