Я хотел бы иметь кучу генераторов в моем config dict. Поэтому я попробовал это:
@yaml.register_class
class UniformDistribution:
yaml_tag = '!uniform'
@classmethod
def from_yaml(cls, a, node):
for x in node.value:
if x[0].value == 'min':
min_ = float(x[1].value)
if x[0].value == 'max':
max_ = float(x[1].value)
def f():
while True:
yield np.random.uniform(min_, max_)
g = f()
return g
Однако парсер никогда не возвращается, потому что генераторы используются внутри для разрешения ссылок, таких как &A
и *A
. Поэтому что-то вроде возврата (g,)
- это довольно простой обходной путь, но я бы предпочел решение, в котором мне не нужен дополнительный и очень запутанный член индекса 0 в next(config['position_generator'][0])
.
Любые идеи?