#NEWLINE# def type_equals( self , other ) : #NEWLINE# #INDENT# 'type_equals(other: PortSpec) -> Bool\n\n        Checks equality ignoring description strings. Only cares about types.\n        Does not do subtyping or supertyping: match must be perfect.\n\n        ' #NEWLINE# if ( ( self is None ) and ( other is None ) ) : #NEWLINE# #INDENT# return True #NEWLINE# #UNINDENT# if ( len ( self . descriptors ( ) ) != len ( other . descriptors ( ) ) ) : #NEWLINE# #INDENT# return False #NEWLINE# #UNINDENT# for ( mine , their ) in izip ( self . descriptors ( ) , other . descriptors ( ) ) : #NEWLINE# #INDENT# if ( other != their ) : #NEWLINE# #INDENT# return False #NEWLINE# #UNINDENT# #UNINDENT# return True