Added Function to evaluated items
This commit is contained in:
@ -2,6 +2,7 @@
|
|||||||
from dataclasses import dataclass, field, replace, asdict
|
from dataclasses import dataclass, field, replace, asdict
|
||||||
from itertools import product, islice, cycle
|
from itertools import product, islice, cycle
|
||||||
from math import floor
|
from math import floor
|
||||||
|
from types import LambdaType
|
||||||
import operator
|
import operator
|
||||||
import random
|
import random
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
@ -458,7 +459,7 @@ class RomanNumeral(Event):
|
|||||||
class Function(Event):
|
class Function(Event):
|
||||||
"""Class for functions"""
|
"""Class for functions"""
|
||||||
|
|
||||||
run: str = field(default=None)
|
run: ... = field(default=None)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(kw_only=True)
|
@dataclass(kw_only=True)
|
||||||
@ -560,7 +561,10 @@ class Sequence(Meta):
|
|||||||
options[item.variable.name] = item.value
|
options[item.variable.name] = item.value
|
||||||
elif isinstance(item, Variable):
|
elif isinstance(item, Variable):
|
||||||
if options[item.name]:
|
if options[item.name]:
|
||||||
variable = deepcopy(options[item.name])
|
opt_item = options[item.name]
|
||||||
|
if isinstance(opt_item, LambdaType):
|
||||||
|
yield Function(run=opt_item, text=item.text, kwargs=options)
|
||||||
|
variable = deepcopy(opt_item)
|
||||||
yield from _resolve_item(variable, options)
|
yield from _resolve_item(variable, options)
|
||||||
elif isinstance(item, Range):
|
elif isinstance(item, Range):
|
||||||
yield from item.evaluate(options)
|
yield from item.evaluate(options)
|
||||||
|
|||||||
@ -29,7 +29,7 @@ from .classes import (
|
|||||||
RepeatedSequence,
|
RepeatedSequence,
|
||||||
VariableAssignment,
|
VariableAssignment,
|
||||||
Variable,
|
Variable,
|
||||||
Measure,
|
Measure
|
||||||
)
|
)
|
||||||
from .common import flatten, sum_dict
|
from .common import flatten, sum_dict
|
||||||
from .defaults import DEFAULT_DURS, OPERATORS
|
from .defaults import DEFAULT_DURS, OPERATORS
|
||||||
@ -459,4 +459,4 @@ class ZiffersTransformer(Transformer):
|
|||||||
repeats=items[1],
|
repeats=items[1],
|
||||||
wrap_start="",
|
wrap_start="",
|
||||||
wrap_end=":" + items[1].text,
|
wrap_end=":" + items[1].text,
|
||||||
)
|
)
|
||||||
Reference in New Issue
Block a user