def get_unicode_property(self, i):
        """Get Unicode property."""

        index = i.index
        prop = []
        value = []
        try:
            c = next(i)
            if c.upper() in _ASCII_LETTERS:
                prop.append(c)
            elif c != '{':
                raise SyntaxError("Unicode property missing '{' at %d!" % (i.index - 1))
            else:
                c = next(i)
                if c == '^':
                    prop.append(c)
                    c = next(i)
                while c not in (':', '=', '}'):
                    if c not in _PROPERTY:
                        raise SyntaxError('Invalid Unicode property character at %d!' % (i.index - 1))
                    if c not in _PROPERTY_STRIP:
                        prop.append(c)
                    c = next(i)
                if c in (':', '='):
                    c = next(i)
                    while c != '}':
                        if c not in _PROPERTY:
                            raise SyntaxError('Invalid Unicode property character at %d!' % (i.index - 1))
                        if c not in _PROPERTY_STRIP:
                            value.append(c)
                        c = next(i)
                    if not value:
                        raise SyntaxError('Invalid Unicode property!')
        except StopIteration:
            raise SyntaxError("Missing or unmatched '{' at %d!" % index)

        return ''.join(prop).lower(), ''.join(value).lower()
def get_unicode_property ( self , i ) : index = i . index prop = [ ] value = [ ] try : c = next ( i ) if c . upper ( ) in _ASCII_LETTERS : prop . append ( c ) elif c != '{' : raise SyntaxError ( "Unicode property missing '{' at %d!" % ( i . index - 1 ) ) else : c = next ( i ) if c == '^' : prop . append ( c ) c = next ( i ) while c not in ( ':' , '=' , '}' ) : if c not in _PROPERTY : raise SyntaxError ( 'Invalid Unicode property character at %d!' % ( i . index - 1 ) ) if c not in _PROPERTY_STRIP : prop . append ( c ) c = next ( i ) if c in ( ':' , '=' ) : c = next ( i ) while c != '}' : if c not in _PROPERTY : raise SyntaxError ( 'Invalid Unicode property character at %d!' % ( i . index - 1 ) ) if c not in _PROPERTY_STRIP : value . append ( c ) c = next ( i ) if not value : raise SyntaxError ( 'Invalid Unicode property!' ) except StopIteration : raise SyntaxError ( "Missing or unmatched '{' at %d!" % index ) return '' . join ( prop ) . lower ( ) , '' . join ( value ) . lower ( )
Get Unicode property.