[pypy-commit] pypy unicode-utf8: more trivial use cases for Utf8StringIterator
fijal
pypy.commits at gmail.com
Wed Dec 6 14:01:19 EST 2017
Author: fijal
Branch: unicode-utf8
Changeset: r93288:0c5fc845224f
Date: 2017-12-06 21:00 +0200
http://bitbucket.org/pypy/pypy/changeset/0c5fc845224f/
Log: more trivial use cases for Utf8StringIterator
diff --git a/pypy/objspace/std/unicodeobject.py b/pypy/objspace/std/unicodeobject.py
--- a/pypy/objspace/std/unicodeobject.py
+++ b/pypy/objspace/std/unicodeobject.py
@@ -449,10 +449,7 @@
def _is_generic_loop(self, space, v, func_name):
func = getattr(self, func_name)
val = self._utf8
- i = 0
- while i < len(val):
- uchar = rutf8.codepoint_at_pos(val, i)
- i = rutf8.next_codepoint_pos(val, i)
+ for uchar in rutf8.Utf8StringIterator(val):
if not func(uchar):
return space.w_False
return space.w_True
@@ -535,11 +532,7 @@
def descr_istitle(self, space):
cased = False
previous_is_cased = False
- val = self._utf8
- i = 0
- while i < len(val):
- uchar = rutf8.codepoint_at_pos(val, i)
- i = rutf8.next_codepoint_pos(val, i)
+ for uchar in rutf8.Utf8StringIterator(self._utf8):
if unicodedb.isupper(uchar) or unicodedb.istitle(uchar):
if previous_is_cased:
return space.w_False
@@ -555,16 +548,12 @@
def descr_isupper(self, space):
cased = False
- i = 0
- val = self._utf8
- while i < len(val):
- uchar = rutf8.codepoint_at_pos(val, i)
+ for uchar in rutf8.Utf8StringIterator(self._utf8):
if (unicodedb.islower(uchar) or
unicodedb.istitle(uchar)):
return space.w_False
if not cased and unicodedb.isupper(uchar):
cased = True
- i = rutf8.next_codepoint_pos(val, i)
return space.newbool(cased)
def descr_startswith(self, space, w_prefix, w_start=None, w_end=None):
More information about the pypy-commit
mailing list