def unicode_capitalize__Unicode(space, w_self): input = w_self._value if len(input) == 0: return W_UnicodeObject.EMPTY result = [u'\0'] * len(input) result[0] = unichr(unicodedb.toupper(ord(input[0]))) for i in range(1, len(input)): result[i] = unichr(unicodedb.tolower(ord(input[i]))) return W_UnicodeObject(u''.join(result))
def unicode_swapcase__Unicode(space, w_self): input = w_self._value result = [u'\0'] * len(input) for i in range(len(input)): unichar = ord(input[i]) if unicodedb.islower(unichar): result[i] = unichr(unicodedb.toupper(unichar)) elif unicodedb.isupper(unichar): result[i] = unichr(unicodedb.tolower(unichar)) else: result[i] = input[i] return W_UnicodeObject(u''.join(result))
def unicode_title__Unicode(space, w_self): input = w_self._value if len(input) == 0: return w_self result = [u'\0'] * len(input) previous_is_cased = False for i in range(len(input)): unichar = ord(input[i]) if previous_is_cased: result[i] = unichr(unicodedb.tolower(unichar)) else: result[i] = unichr(unicodedb.totitle(unichar)) previous_is_cased = unicodedb.iscased(unichar) return W_UnicodeObject(u''.join(result))
def test_compare_methods(self): for code in range(0x10000): char = unichr(code) assert char.isalnum() == unicodedb_4_1_0.isalnum(code) assert char.isalpha() == unicodedb_4_1_0.isalpha(code) assert char.isdecimal() == unicodedb_4_1_0.isdecimal(code) assert char.isdigit() == unicodedb_4_1_0.isdigit(code) assert char.islower() == unicodedb_4_1_0.islower(code) assert (code in self.diff_numeric or char.isnumeric()) == unicodedb_4_1_0.isnumeric(code) assert code in self.diff_isspace or char.isspace() == unicodedb_4_1_0.isspace(code), hex(code) assert char.istitle() == (unicodedb_4_1_0.isupper(code) or unicodedb_4_1_0.istitle(code)), code assert char.isupper() == unicodedb_4_1_0.isupper(code) assert char.lower() == unichr(unicodedb_4_1_0.tolower(code)) assert char.upper() == unichr(unicodedb_4_1_0.toupper(code)) assert code in self.diff_title or char.title() == unichr(unicodedb_4_1_0.totitle(code)), hex(code)
def unicode_lower__Unicode(space, w_self): input = w_self._value result = [u'\0'] * len(input) for i in range(len(input)): result[i] = unichr(unicodedb.tolower(ord(input[i]))) return W_UnicodeObject(u''.join(result))