I have multiple generator functions that yield objects which are appended to a list. There's a lot of duplicated code, is there a possibility to minimize this (for Python 3.5+)?
Generators:
def gen1(obj):
if obj == 'something':
yield ValueError()
def gen2(obj):
if obj == 'else':
yield ValueError()
value_errors =[]
Working version but duplicated code:
for exc in gen1(obj):
if isinstance(exc, ValueError):
value_errors.append(exc)
for exc in gen2(obj):
if isinstance(exc, ValueError):
value_errors.append(exc)
Not working but no duplicated code:
generators = [
gen1(obj),
gen2(obj)
]
for yielded in generators:
if isInstance(yielded, ValueError):
value_errors.append(yielded)
)
This does not work because it yields generators not the generator's yielded value. Is it possible to fix this?