コード例 #1
0
ファイル: bytearrayobject.py プロジェクト: zielmicha/pypy
def makebytearraydata_w(space, w_source):
    # String-like argument
    try:
        buf = space.buffer_w(w_source, space.BUF_FULL_RO)
    except OperationError as e:
        if not e.match(space, space.w_TypeError):
            raise
    else:
        return list(buf.as_str())

    # sequence of bytes
    w_iter = space.iter(w_source)
    length_hint = space.length_hint(w_source, 0)
    data = newlist_hint(length_hint)
    extended = 0
    while True:
        try:
            w_item = space.next(w_iter)
        except OperationError as e:
            if not e.match(space, space.w_StopIteration):
                raise
            break
        value = getbytevalue(space, w_item)
        data.append(value)
        extended += 1
    if extended < length_hint:
        resizelist_hint(data, extended)
    return data
コード例 #2
0
ファイル: bytearrayobject.py プロジェクト: abhinavthomas/pypy
def makebytearraydata_w(space, w_source):
    # String-like argument
    try:
        buf = space.buffer_w(w_source, space.BUF_FULL_RO)
    except OperationError as e:
        if not e.match(space, space.w_TypeError):
            raise
    else:
        return list(buf.as_str())

    # sequence of bytes
    w_iter = space.iter(w_source)
    length_hint = space.length_hint(w_source, 0)
    data = newlist_hint(length_hint)
    extended = 0
    while True:
        try:
            w_item = space.next(w_iter)
        except OperationError as e:
            if not e.match(space, space.w_StopIteration):
                raise
            break
        value = getbytevalue(space, w_item)
        data.append(value)
        extended += 1
    if extended < length_hint:
        resizelist_hint(data, extended)
    return data
コード例 #3
0
ファイル: test_rlist.py プロジェクト: zcxowwww/pypy
 def dummyfn():
     lst = []
     i = 0
     while i < 30:
         i += 1
         resizelist_hint(lst, i)
         lst.append(i)
     return glob.seen
コード例 #4
0
ファイル: test_rlist.py プロジェクト: yuyichao/pypy
 def dummyfn():
     lst = []
     i = 0
     while i < 30:
         i += 1
         resizelist_hint(lst, i)
         lst.append(i)
     return glob.seen
コード例 #5
0
ファイル: bytearrayobject.py プロジェクト: sczfaker/pypy
def _from_byte_sequence(space, w_source):
    # Split off in a separate function for the JIT's benefit
    # and add a jitdriver with the type of w_iter as the green key
    w_iter = space.iter(w_source)
    length_hint = space.length_hint(w_source, 0)
    data = newlist_hint(length_hint)
    #
    _from_byte_sequence_loop(space, w_iter, data)
    #
    extended = len(data)
    if extended < length_hint:
        resizelist_hint(data, extended)
    return data
コード例 #6
0
ファイル: test_objectmodel.py プロジェクト: mozillazg/pypy
 def f(i):
     l = [44]
     resizelist_hint(l, i)
     return len(l)
コード例 #7
0
ファイル: test_objectmodel.py プロジェクト: mozillazg/pypy
 def f(z):
     x = []
     resizelist_hint(x, 39)
     return len(x)
コード例 #8
0
 def _inplace_add(self, other):
     resizelist_hint(self._data, len(self._data) + len(other))
     for i in range(len(other)):
         self._data.append(other[i])
コード例 #9
0
 def f(i):
     l = [44]
     resizelist_hint(l, i)
     return len(l)
コード例 #10
0
 def f(z):
     x = []
     resizelist_hint(x, 39)
     return len(x)
コード例 #11
0
    w_iter = space.iter(w_source)
    length_hint = space.length_hint(w_source, 0)
    data = newlist_hint(length_hint)
    extended = 0
    while True:
        try:
            w_item = space.next(w_iter)
        except OperationError, e:
            if not e.match(space, space.w_StopIteration):
                raise
            break
        value = getbytevalue(space, w_item)
        data.append(value)
        extended += 1
    if extended < length_hint:
        resizelist_hint(data, extended)
    return data


W_BytesObject.typedef = TypeDef(
    "bytes",
    __new__=interp2app(W_BytesObject.descr_new),
    __doc__="""bytes(iterable_of_ints) -> bytes
    bytes(string, encoding[, errors]) -> bytes
    bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer
    bytes(int) -> bytes object of size given by the parameter initialized with null bytes
    bytes() -> empty bytes object

    Construct an immutable array of bytes from:
      - an iterable yielding integers in range(256)
      - a text string encoded using the specified encoding
コード例 #12
0
ファイル: bytearraytype.py プロジェクト: charred/pypy
    w_iter = space.iter(w_source)
    length_hint = space.length_hint(w_source, 0)
    data = newlist_hint(length_hint)
    extended = 0
    while True:
        try:
            w_item = space.next(w_iter)
        except OperationError, e:
            if not e.match(space, space.w_StopIteration):
                raise
            break
        value = getbytevalue(space, w_item)
        data.append(value)
        extended += 1
    if extended < length_hint:
        resizelist_hint(data, extended)
    return data

def descr_bytearray__reduce__(space, w_self):
    from pypy.objspace.std.bytearrayobject import W_BytearrayObject
    assert isinstance(w_self, W_BytearrayObject)
    w_dict = w_self.getdict(space)
    if w_dict is None:
        w_dict = space.w_None
    return space.newtuple([
        space.type(w_self), space.newtuple([
            space.wrap(''.join(w_self.data).decode('latin-1')),
            space.wrap('latin-1')]),
        w_dict])

def _hex_digit_to_int(d):