parameters: (serde)
docstring: inner function
docstring_summary: inner function
docstring_tokens: inner function
function: def origin(serde):
      """ inner function"""
      if isinstance(serde, Optional):
          return origin(serde._orig_serde)
      if isinstance(serde, TupleSerde):
          return tuple(map(origin, serde._args))
      if isinstance(serde, ListSerde):
          return origin(serde._delegate)
      if isinstance(serde, TupleLikeListSerde):
          return list(map(origin, serde._values))
      if isinstance(serde, SameTypeListSerde):
          return [origin(serde._value)]
  
      if isinstance(serde, DictSerde):
          return {origin(serde._key): origin(serde._value)}
  
      if isinstance(serde, SetSerde):
          return {origin(serde._value)}
  
      if isinstance(serde, Serde):
          return serde
  
      assert False, str(serde) + " is not a serde"
function_tokens: def origin ( serde ) : if isinstance ( serde , Optional ) : return origin ( serde . _orig_serde ) if isinstance ( serde , TupleSerde ) : return tuple ( map ( origin , serde . _args ) ) if isinstance ( serde , ListSerde ) : return origin ( serde . _delegate ) if isinstance ( serde , TupleLikeListSerde ) : return list ( map ( origin , serde . _values ) ) if isinstance ( serde , SameTypeListSerde ) : return [ origin ( serde . _value ) ] if isinstance ( serde , DictSerde ) : return { origin ( serde . _key ) : origin ( serde . _value ) } if isinstance ( serde , SetSerde ) : return { origin ( serde . _value ) } if isinstance ( serde , Serde ) : return serde assert False , str ( serde ) + " is not a serde"