#NEWLINE# def parse_spec( ttype , spec = None ) : #NEWLINE# #INDENT# name_map = TType . _VALUES_TO_NAMES #NEWLINE# def _type( s ) : #NEWLINE# #INDENT# return ( parse_spec ( * s ) if isinstance ( s , tuple ) else name_map [ s ] ) #NEWLINE# #UNINDENT# if ( spec is None ) : #NEWLINE# #INDENT# return name_map [ ttype ] #NEWLINE# #UNINDENT# if ( ttype == TType . STRUCT ) : #NEWLINE# #INDENT# return spec . __name__ #NEWLINE# #UNINDENT# if ( ttype in ( TType . LIST , TType . SET ) ) : #NEWLINE# #INDENT# return ( '%s<%s>' % ( name_map [ ttype ] , _type ( spec ) ) ) #NEWLINE# #UNINDENT# if ( ttype == TType . MAP ) : #NEWLINE# #INDENT# return ( 'MAP<%s, %s>' % ( _type ( spec [ 0 ] ) , _type ( spec [ 1 ] ) ) )