GenConverter incorrectly unstructures tuples when in union (or optional). Converter does do it correctly.
from typing import Optional, Tuple
import cattr
orig = (1,'2')
c = cattr.Converter()
print( c.unstructure(orig, Tuple[int,str] ) )
# -> (1, '2')
print( c.unstructure(orig, Optional[Tuple[int,str]] ) )
# -> (1, '2')
c = cattr.GenConverter()
print( c.unstructure(orig, Tuple[int,str] ) )
# -> (1, '2')
print( c.unstructure(orig, Optional[Tuple[int,str]] ) )
# -> [1, '2'] <<< incorrect, no more tuple
Description
GenConverter incorrectly unstructures tuples when in union (or optional). Converter does do it correctly.
Example: