Fixed some bugs and added new tests

New test_multi_03 can be used to test multiple variables at once. Based on new collect function that can be used to collect n variables from parsed Ziffers.
This commit is contained in:
2023-03-05 13:31:52 +02:00
parent 004578e56e
commit ea0e9ae0cd
8 changed files with 58 additions and 25 deletions

View File

@ -155,3 +155,25 @@ class Ziffers(Sequence):
for val in self.evaluated_values
if isinstance(val, (Pitch, Chord))
]
def collect(self, num: int = None, keys: str | list = None) -> list:
"""Collect n items from parsed Ziffers"""
if num is None:
num = len(self.evaluated_values)
if keys is None or isinstance(keys, str):
keys = [keys]
all_items = []
values = []
for key in keys:
for i in range(num):
if key is not None:
values.append(getattr(self[i], key, None))
else:
values.append(self[i])
all_items.append(values)
values = []
if len(all_items) > 1:
return all_items
if len(all_items) == 1:
return all_items[0]
return None