Fixes for first iterator tests
This commit is contained in:
@ -297,20 +297,17 @@ class RepeatedSequence(Sequence):
|
|||||||
wrap_end: str = field(default=":]", repr=False)
|
wrap_end: str = field(default=":]", repr=False)
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Ziffers(Meta):
|
class Ziffers(Sequence):
|
||||||
"""Main class for holding options and the current state"""
|
"""Main class for holding options and the current state"""
|
||||||
|
|
||||||
sequence: Sequence
|
|
||||||
options: dict = field(default_factory=DEFAULT_OPTIONS)
|
options: dict = field(default_factory=DEFAULT_OPTIONS)
|
||||||
loop_i: int = 0
|
loop_i: int = 0
|
||||||
current: Item = None
|
current: Item = None
|
||||||
it: iter = None
|
it: iter = None
|
||||||
|
|
||||||
def __post_init__(self):
|
def __post_init__(self):
|
||||||
self.it = iter(self.sequence)
|
super().__post_init__()
|
||||||
|
self.it = iter(self.values)
|
||||||
def __iter__(self):
|
|
||||||
return self
|
|
||||||
|
|
||||||
def __next__(self):
|
def __next__(self):
|
||||||
try:
|
try:
|
||||||
@ -340,13 +337,13 @@ class Ziffers(Meta):
|
|||||||
|
|
||||||
# TODO: Handle options and generated values
|
# TODO: Handle options and generated values
|
||||||
def pcs(self) -> list[int]:
|
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]:
|
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]:
|
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]:
|
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)]
|
||||||
@ -40,7 +40,7 @@ class ZiffersTransformer(Transformer):
|
|||||||
|
|
||||||
def start(self, items):
|
def start(self, items):
|
||||||
seq = Sequence(values=items[0])
|
seq = Sequence(values=items[0])
|
||||||
return Ziffers(sequence=seq,options={})
|
return Ziffers(values=seq,options={})
|
||||||
|
|
||||||
def sequence(self, items):
|
def sequence(self, items):
|
||||||
return flatten(items)
|
return flatten(items)
|
||||||
|
|||||||
Reference in New Issue
Block a user