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?
 
     
     
    