mutwo.converters.abc¶
Defining the public api for any converter class.
Classes:
Abstract base class for all Converter classes. |
|
Abstract base class for Converter which handle mutwo events. |
|
Abstract base class for Converter which handle mutwo events. |
- class Converter[source]¶
Bases:
abc.ABCAbstract base class for all Converter classes.
Converter classes are defined as classes that convert data between two different encodings. Their only public method (besides initialisation) should be a convert method that has exactly one argument (the data that should be converted).
Methods:
convert(event_or_parameter_or_file_to_convert)
- class EventConverter[source]¶
Bases:
mutwo.converters.abc.ConverterAbstract base class for Converter which handle mutwo events.
This class helps building new classes which convert mutwo events with few general private methods (and without adding any new public method). Converting mutwo event often involves the same pattern: due to the nested structure of an Event, the converter has to iterate through the different layers until it reaches leaves (any class that inherits from
mutwo.events.basic.SimpleEvent). This common iteration process and the different time treatment betweenmutwo.events.basic.SequentialEventandmutwo.events.basic.SimultaneousEventare implemented inEventConverter. For writing a new EventConverter class, one only has to override the abstract method_convert_simple_event()and the abstract methodconvert()(where one will perhaps call_convert_event().).Example:
The following example defines a dummy class for demonstrating how to use EventConverter.
>>> from mutwo.converters import abc >>> class DurationPrintConverter(abc.EventConverter): >>> def _convert_simple_event(self, event_to_convert, absolute_entry_delay): >>> return "{}: {}".format(absolute_entry_delay, event_to_convert.duration), >>> def convert(self, event_to_convert): >>> data_per_event = self._convert_event(event_to_convert, 0) >>> [print(data) for data in data_per_event] >>> # now test with random event >>> import random >>> from mutwo.events import basic >>> random.seed(100) >>> random_event = basic.SimultaneousEvent( >>> [ >>> basic.SequentialEvent( >>> [ >>> basic.SimpleEvent(random.uniform(0.5, 2)) >>> for _ in range(random.randint(2, 5)) >>> ] >>> ) >>> for _ in range(random.randint(1, 3)) >>> ] >>> ) >>> DurationPrintConverter().convert(random_event) 0: 1.182390506771032 1.182390506771032: 1.6561757084885333 2.8385662152595654: 1.558269840401042 4.396836055660607: 1.5979384595498836 5.994774515210491: 1.1502716523431056
Methods:
_convert_event(event_to_convert, ...)Convert
mutwo.events.abc.Eventof unknown type._convert_sequential_event(sequential_event, ...)Convert instance of
mutwo.events.basic.SequentialEvent._convert_simple_event(event_to_convert, ...)Convert instance of
mutwo.events.basic.SimpleEvent.Convert instance of
mutwo.events.basic.SimultaneousEvent.convert(event_or_parameter_or_file_to_convert)- _convert_event(event_to_convert, absolute_entry_delay)[source]¶
Convert
mutwo.events.abc.Eventof unknown type.The method calls different subroutines depending on whether the passed event either are instances from:
- Parameters
event_to_convert (mutwo.events.abc.Event) –
absolute_entry_delay (Union[float, fractions.Fraction]) –
- Return type
Any
- _convert_sequential_event(sequential_event, absolute_entry_delay)[source]¶
Convert instance of
mutwo.events.basic.SequentialEvent.- Parameters
sequential_event (mutwo.events.basic.SequentialEvent) –
absolute_entry_delay (Union[float, fractions.Fraction]) –
- Return type
Sequence[Any]
- abstract _convert_simple_event(event_to_convert, absolute_entry_delay)[source]¶
Convert instance of
mutwo.events.basic.SimpleEvent.- Parameters
event_to_convert (mutwo.events.basic.SimpleEvent) –
absolute_entry_delay (Union[float, fractions.Fraction]) –
- Return type
Sequence[Any]
- _convert_simultaneous_event(simultaneous_event, absolute_entry_delay)[source]¶
Convert instance of
mutwo.events.basic.SimultaneousEvent.- Parameters
simultaneous_event (mutwo.events.basic.SimultaneousEvent) –
absolute_entry_delay (Union[float, fractions.Fraction]) –
- Return type
Sequence[Any]
- abstract convert(event_or_parameter_or_file_to_convert)¶
- Parameters
event_or_parameter_or_file_to_convert (Any) –
- Return type
Any
- class SymmetricalEventConverter[source]¶
Bases:
mutwo.converters.abc.EventConverterAbstract base class for Converter which handle mutwo events.
This converter is a more specified version of the
EventConverter. It helps for building converters which aim to return mutwo events.Methods:
_convert_event(event_to_convert, ...)Convert
mutwo.events.abc.Eventof unknown type._convert_sequential_event(sequential_event, ...)Convert instance of
mutwo.events.basic.SequentialEvent._convert_simple_event(event_to_convert, ...)Convert instance of
mutwo.events.basic.SimpleEvent.Convert instance of
mutwo.events.basic.SimultaneousEvent.convert(event_or_parameter_or_file_to_convert)- _convert_event(event_to_convert, absolute_entry_delay)[source]¶
Convert
mutwo.events.abc.Eventof unknown type.The method calls different subroutines depending on whether the passed event either are instances from:
- Parameters
event_to_convert (mutwo.events.abc.Event) –
absolute_entry_delay (Union[float, fractions.Fraction]) –
- Return type
- _convert_sequential_event(sequential_event, absolute_entry_delay)[source]¶
Convert instance of
mutwo.events.basic.SequentialEvent.- Parameters
sequential_event (mutwo.events.basic.SequentialEvent) –
absolute_entry_delay (Union[float, fractions.Fraction]) –
- Return type
- _convert_simple_event(event_to_convert, absolute_entry_delay)[source]¶
Convert instance of
mutwo.events.basic.SimpleEvent.- Parameters
event_to_convert (mutwo.events.basic.SimpleEvent) –
absolute_entry_delay (Union[float, fractions.Fraction]) –
- Return type
mutwo.events.basic.SequentialEvent[mutwo.events.basic.SimpleEvent]
- _convert_simultaneous_event(simultaneous_event, absolute_entry_delay)[source]¶
Convert instance of
mutwo.events.basic.SimultaneousEvent.- Parameters
simultaneous_event (mutwo.events.basic.SimultaneousEvent) –
absolute_entry_delay (Union[float, fractions.Fraction]) –
- Return type
mutwo.events.basic.SimultaneousEvent[mutwo.events.abc.Event]
- abstract convert(event_or_parameter_or_file_to_convert)¶
- Parameters
event_or_parameter_or_file_to_convert (Any) –
- Return type
Any