Fixes for first iterator tests

This commit is contained in:
2023-02-06 20:11:19 +02:00
parent 4e6a349ae5
commit de4cb4ce3c
2 changed files with 8 additions and 11 deletions

View File

@ -297,20 +297,17 @@ class RepeatedSequence(Sequence):
wrap_end: str = field(default=":]", repr=False)
@dataclass
class Ziffers(Meta):
class Ziffers(Sequence):
"""Main class for holding options and the current state"""
sequence: Sequence
options: dict = field(default_factory=DEFAULT_OPTIONS)
loop_i: int = 0
current: Item = None
it: iter = None
def __post_init__(self):
self.it = iter(self.sequence)
def __iter__(self):
return self
super().__post_init__()
self.it = iter(self.values)
def __next__(self):
try:
@ -340,13 +337,13 @@ class Ziffers(Meta):
# TODO: Handle options and generated values
def pcs(self) -> list[int]:
return [val.pc for val in self.sequence.values if isinstance(val,Pitch)]
return [val.pc for val in self.values if isinstance(val,Pitch)]
def durations(self) -> list[float]:
return [val.dur for val in self.sequence.values if isinstance(val,Pitch)]
return [val.dur for val in self.values if isinstance(val,Pitch)]
def pairs(self) -> list[tuple]:
return [(val.pc,val.dur) for val in self.sequence.values if isinstance(val,Pitch)]
return [(val.pc,val.dur) for val in self.values if isinstance(val,Pitch)]
def octaves(self) -> list[int]:
return [val.octave for val in self.sequence.values if isinstance(val,Pitch)]
return [val.octave for val in self.values if isinstance(val,Pitch)]

View File

@ -40,7 +40,7 @@ class ZiffersTransformer(Transformer):
def start(self, items):
seq = Sequence(values=items[0])
return Ziffers(sequence=seq,options={})
return Ziffers(values=seq,options={})
def sequence(self, items):
return flatten(items)