Author: Manuel Jacob Branch: refactor-str-types Changeset: r66263:e75b57683b2b Date: 2013-08-20 16:00 +0200 http://bitbucket.org/pypy/pypy/changeset/e75b57683b2b/
Log: Remove all ``@specialize.argtype(0)`` and use import_from_mixin(). diff --git a/pypy/objspace/std/bytearrayobject.py b/pypy/objspace/std/bytearrayobject.py --- a/pypy/objspace/std/bytearrayobject.py +++ b/pypy/objspace/std/bytearrayobject.py @@ -9,14 +9,16 @@ from pypy.objspace.std.stdtypedef import StdTypeDef from pypy.objspace.std.stringmethods import StringMethods from pypy.objspace.std.util import get_positive_index -from rpython.rlib.objectmodel import newlist_hint, resizelist_hint +from rpython.rlib.objectmodel import newlist_hint, resizelist_hint, import_from_mixin from rpython.rlib.rstring import StringBuilder def _make_data(s): return [s[i] for i in range(len(s))] -class W_BytearrayObject(W_Root, StringMethods): +class W_BytearrayObject(W_Root): + import_from_mixin(StringMethods) + def __init__(w_self, data): w_self.data = data diff --git a/pypy/objspace/std/bytesobject.py b/pypy/objspace/std/bytesobject.py --- a/pypy/objspace/std/bytesobject.py +++ b/pypy/objspace/std/bytesobject.py @@ -12,7 +12,7 @@ from pypy.objspace.std.unicodeobject import (unicode_from_string, decode_object, unicode_from_encoded_object, _get_encoding_and_errors) from rpython.rlib.jit import we_are_jitted -from rpython.rlib.objectmodel import compute_hash, compute_unique_id +from rpython.rlib.objectmodel import compute_hash, compute_unique_id, import_from_mixin from rpython.rlib.rstring import StringBuilder, replace @@ -424,7 +424,8 @@ pass -class W_BytesObject(StringMethods, W_AbstractBytesObject): +class W_BytesObject(W_AbstractBytesObject): + import_from_mixin(StringMethods) _immutable_fields_ = ['_value'] def __init__(self, str): diff --git a/pypy/objspace/std/stringmethods.py b/pypy/objspace/std/stringmethods.py --- a/pypy/objspace/std/stringmethods.py +++ b/pypy/objspace/std/stringmethods.py @@ -9,8 +9,6 @@ class StringMethods(object): - _mixin_ = True - def _sliced(self, space, s, start, stop, orig_obj): assert start >= 0 assert stop >= 0 @@ -26,7 +24,6 @@ space, lenself, w_start, w_end, upper_bound=upper_bound) return (value, start, end) - @specialize.argtype(0) def descr_eq(self, space, w_other): try: return space.newbool(self._val(space) == self._op_val(space, w_other)) @@ -42,7 +39,6 @@ return space.w_False raise - @specialize.argtype(0) def descr_ne(self, space, w_other): try: return space.newbool(self._val(space) != self._op_val(space, w_other)) @@ -58,7 +54,6 @@ return space.w_True raise - @specialize.argtype(0) def descr_lt(self, space, w_other): try: return space.newbool(self._val(space) < self._op_val(space, w_other)) @@ -66,7 +61,6 @@ if e.match(space, space.w_TypeError): return space.w_NotImplemented - @specialize.argtype(0) def descr_le(self, space, w_other): try: return space.newbool(self._val(space) <= self._op_val(space, w_other)) @@ -74,7 +68,6 @@ if e.match(space, space.w_TypeError): return space.w_NotImplemented - @specialize.argtype(0) def descr_gt(self, space, w_other): try: return space.newbool(self._val(space) > self._op_val(space, w_other)) @@ -82,7 +75,6 @@ if e.match(space, space.w_TypeError): return space.w_NotImplemented - @specialize.argtype(0) def descr_ge(self, space, w_other): try: return space.newbool(self._val(space) >= self._op_val(space, w_other)) @@ -90,15 +82,12 @@ if e.match(space, space.w_TypeError): return space.w_NotImplemented - @specialize.argtype(0) def descr_len(self, space): return space.wrap(self._len()) - #@specialize.argtype(0) #def descr_iter(self, space): # pass - @specialize.argtype(0) def descr_contains(self, space, w_sub): from pypy.objspace.std.bytearrayobject import W_BytearrayObject if (isinstance(self, W_BytearrayObject) and @@ -113,11 +102,9 @@ return space.w_False return space.newbool(self._val(space).find(self._op_val(space, w_sub)) >= 0) - @specialize.argtype(0) def descr_add(self, space, w_other): return self._new(self._val(space) + self._op_val(space, w_other)) - @specialize.argtype(0) def descr_mul(self, space, w_times): try: times = space.getindex_w(w_times, space.w_OverflowError) @@ -131,7 +118,6 @@ return self._new(self._val(space)[0] * times) return self._new(self._val(space) * times) - @specialize.argtype(0) def descr_getitem(self, space, w_index): if isinstance(w_index, W_SliceObject): selfvalue = self._val(space) @@ -160,7 +146,6 @@ #return wrapchar(space, selfvalue[index]) return self._new(selfvalue[index]) - @specialize.argtype(0) def descr_getslice(self, space, w_start, w_stop): selfvalue = self._val(space) start, stop = normalize_simple_slice(space, len(selfvalue), w_start, @@ -170,7 +155,6 @@ else: return self._sliced(space, selfvalue, start, stop, self) - @specialize.argtype(0) def descr_capitalize(self, space): value = self._val(space) if len(value) == 0: @@ -183,7 +167,6 @@ return self._new(builder.build()) @unwrap_spec(width=int, w_fillchar=WrappedDefault(' ')) - @specialize.argtype(0) def descr_center(self, space, width, w_fillchar): value = self._val(space) fillchar = self._op_val(space, w_fillchar) @@ -201,12 +184,10 @@ return self._new(u_centered) - @specialize.argtype(0) def descr_count(self, space, w_sub, w_start=None, w_end=None): value, start, end = self._convert_idx_params(space, w_start, w_end) return space.newint(value.count(self._op_val(space, w_sub), start, end)) - @specialize.argtype(0) def descr_decode(self, space, w_encoding=None, w_errors=None): from pypy.objspace.std.unicodeobject import _get_encoding_and_errors, \ unicode_from_string, decode_object @@ -215,7 +196,6 @@ return unicode_from_string(space, self) return decode_object(space, self, encoding, errors) - @specialize.argtype(0) def descr_encode(self, space, w_encoding=None, w_errors=None): from pypy.objspace.std.unicodeobject import _get_encoding_and_errors, \ encode_object @@ -223,7 +203,6 @@ return encode_object(space, self, encoding, errors) @unwrap_spec(tabsize=int) - @specialize.argtype(0) def descr_expandtabs(self, space, tabsize=8): value = self._val(space) if not value: @@ -266,19 +245,16 @@ return distance - @specialize.argtype(0) def descr_find(self, space, w_sub, w_start=None, w_end=None): (value, start, end) = self._convert_idx_params(space, w_start, w_end) res = value.find(self._op_val(space, w_sub), start, end) return space.wrap(res) - @specialize.argtype(0) def descr_rfind(self, space, w_sub, w_start=None, w_end=None): (value, start, end) = self._convert_idx_params(space, w_start, w_end) res = value.rfind(self._op_val(space, w_sub), start, end) return space.wrap(res) - @specialize.argtype(0) def descr_index(self, space, w_sub, w_start=None, w_end=None): (value, start, end) = self._convert_idx_params(space, w_start, w_end) res = value.find(self._op_val(space, w_sub), start, end) @@ -288,7 +264,6 @@ return space.wrap(res) - @specialize.argtype(0) def descr_rindex(self, space, w_sub, w_start=None, w_end=None): (value, start, end) = self._convert_idx_params(space, w_start, w_end) res = value.rfind(self._op_val(space, w_sub), start, end) @@ -318,19 +293,15 @@ return space.w_False return space.w_True - @specialize.argtype(0) def descr_isalnum(self, space): return self._is_generic(space, '_isalnum') - @specialize.argtype(0) def descr_isalpha(self, space): return self._is_generic(space, '_isalpha') - @specialize.argtype(0) def descr_isdigit(self, space): return self._is_generic(space, '_isdigit') - @specialize.argtype(0) def descr_islower(self, space): v = self._val(space) if len(v) == 1: @@ -344,11 +315,9 @@ cased = True return space.newbool(cased) - @specialize.argtype(0) def descr_isspace(self, space): return self._is_generic(space, '_isspace') - @specialize.argtype(0) def descr_istitle(self, space): input = self._val(space) cased = False @@ -370,7 +339,6 @@ return space.newbool(cased) - @specialize.argtype(0) def descr_isupper(self, space): v = self._val(space) if len(v) == 1: @@ -384,7 +352,6 @@ cased = True return space.newbool(cased) - @specialize.argtype(0) def descr_join(self, space, w_list): from pypy.objspace.std.bytesobject import W_BytesObject from pypy.objspace.std.unicodeobject import W_UnicodeObject @@ -445,7 +412,6 @@ assert False, 'unreachable' @unwrap_spec(width=int, w_fillchar=WrappedDefault(' ')) - @specialize.argtype(0) def descr_ljust(self, space, width, w_fillchar): value = self._val(space) fillchar = self._op_val(space, w_fillchar) @@ -461,7 +427,6 @@ return self._new(value) @unwrap_spec(width=int, w_fillchar=WrappedDefault(' ')) - @specialize.argtype(0) def descr_rjust(self, space, width, w_fillchar): value = self._val(space) fillchar = self._op_val(space, w_fillchar) @@ -476,7 +441,6 @@ return self._new(value) - @specialize.argtype(0) def descr_lower(self, space): value = self._val(space) builder = self._builder(len(value)) @@ -484,7 +448,6 @@ builder.append(self._lower(value[i])) return self._new(builder.build()) - @specialize.argtype(0) def descr_partition(self, space, w_sub): value = self._val(space) sub = self._op_val(space, w_sub) @@ -505,7 +468,6 @@ [self._sliced(space, value, 0, pos, self), w_sub, self._sliced(space, value, pos+len(sub), len(value), self)]) - @specialize.argtype(0) def descr_rpartition(self, space, w_sub): value = self._val(space) sub = self._op_val(space, w_sub) @@ -527,7 +489,6 @@ self._sliced(space, value, pos+len(sub), len(value), self)]) @unwrap_spec(count=int) - @specialize.argtype(0) def descr_replace(self, space, w_old, w_new, count=-1): input = self._val(space) sub = self._op_val(space, w_old) @@ -540,7 +501,6 @@ return self._new(res) @unwrap_spec(maxsplit=int) - @specialize.argtype(0) def descr_split(self, space, w_sep=None, maxsplit=-1): res = [] value = self._val(space) @@ -581,7 +541,6 @@ return self._newlist_unwrapped(space, res) @unwrap_spec(maxsplit=int) - @specialize.argtype(0) def descr_rsplit(self, space, w_sep=None, maxsplit=-1): res = [] value = self._val(space) @@ -625,7 +584,6 @@ return self._newlist_unwrapped(space, res) @unwrap_spec(keepends=bool) - @specialize.argtype(0) def descr_splitlines(self, space, keepends=False): value = self._val(space) length = len(value) @@ -647,7 +605,6 @@ strs.append(value[pos:length]) return self._newlist_unwrapped(space, strs) - @specialize.argtype(0) def descr_startswith(self, space, w_prefix, w_start=None, w_end=None): (value, start, end) = self._convert_idx_params(space, w_start, w_end, True) @@ -658,11 +615,9 @@ return space.w_False return space.newbool(self._startswith(space, value, w_prefix, start, end)) - @specialize.argtype(0) def _startswith(self, space, value, w_prefix, start, end): return startswith(value, self._op_val(space, w_prefix), start, end) - @specialize.argtype(0) def descr_endswith(self, space, w_suffix, w_start=None, w_end=None): (value, start, end) = self._convert_idx_params(space, w_start, w_end, True) @@ -674,7 +629,6 @@ return space.w_False return space.newbool(self._endswith(space, value, w_suffix, start, end)) - @specialize.argtype(0) def _endswith(self, space, value, w_prefix, start, end): return endswith(value, self._op_val(space, w_prefix), start, end) @@ -717,25 +671,21 @@ assert rpos >= lpos # annotator hint, don't remove return self._sliced(space, value, lpos, rpos, self) - @specialize.argtype(0) def descr_strip(self, space, w_chars=None): if space.is_none(w_chars): return self._strip_none(space, left=1, right=1) return self._strip(space, w_chars, left=1, right=1) - @specialize.argtype(0) def descr_lstrip(self, space, w_chars=None): if space.is_none(w_chars): return self._strip_none(space, left=1, right=0) return self._strip(space, w_chars, left=1, right=0) - @specialize.argtype(0) def descr_rstrip(self, space, w_chars=None): if space.is_none(w_chars): return self._strip_none(space, left=0, right=1) return self._strip(space, w_chars, left=0, right=1) - @specialize.argtype(0) def descr_swapcase(self, space): selfvalue = self._val(space) builder = self._builder(len(selfvalue)) @@ -749,7 +699,6 @@ builder.append(ch) return self._new(builder.build()) - @specialize.argtype(0) def descr_title(self, space): selfval = self._val(space) if len(selfval) == 0: @@ -770,7 +719,6 @@ # for bytes and bytearray, overridden by unicode @unwrap_spec(w_deletechars=WrappedDefault('')) - @specialize.argtype(0) def descr_translate(self, space, w_table, w_deletechars): if space.is_w(w_table, space.w_None): table = self.DEFAULT_NOOP_TABLE @@ -797,7 +745,6 @@ buf.append(table[ord(char)]) return self._new(buf.build()) - @specialize.argtype(0) def descr_upper(self, space): value = self._val(space) builder = self._builder(len(value)) @@ -806,7 +753,6 @@ return self._new(builder.build()) @unwrap_spec(width=int) - @specialize.argtype(0) def descr_zfill(self, space, width): selfval = self._val(space) if len(selfval) == 0: @@ -827,6 +773,5 @@ builder.append_slice(selfval, start, len(selfval)) return self._new(builder.build()) - @specialize.argtype(0) def descr_getnewargs(self, space): return space.newtuple([self._new(self._val(space))]) 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 @@ -10,7 +10,7 @@ from pypy.objspace.std.formatting import mod_format from pypy.objspace.std.stdtypedef import StdTypeDef from pypy.objspace.std.stringmethods import StringMethods -from rpython.rlib.objectmodel import compute_hash, compute_unique_id +from rpython.rlib.objectmodel import compute_hash, compute_unique_id, import_from_mixin from rpython.rlib.rstring import UnicodeBuilder from rpython.rlib.runicode import (str_decode_utf_8, str_decode_ascii, unicode_encode_utf_8, unicode_encode_ascii, make_unicode_escape_function) @@ -20,7 +20,8 @@ 'unicode_from_string', 'unicode_to_decimal_w'] -class W_UnicodeObject(W_Root, StringMethods): +class W_UnicodeObject(W_Root): + import_from_mixin(StringMethods) _immutable_fields_ = ['_value'] def __init__(w_self, unistr): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit