|
Packit |
562c7a |
|
|
Packit |
562c7a |
ctypedef fused sequence:
|
|
Packit |
562c7a |
list
|
|
Packit |
562c7a |
tuple
|
|
Packit |
562c7a |
object
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def unpack_one(sequence it):
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> items = [1]
|
|
Packit |
562c7a |
>>> unpack_one(items)
|
|
Packit |
562c7a |
1
|
|
Packit |
562c7a |
>>> unpack_one(iter(items))
|
|
Packit |
562c7a |
1
|
|
Packit |
562c7a |
>>> unpack_one(list(items))
|
|
Packit |
562c7a |
1
|
|
Packit |
562c7a |
>>> unpack_one(tuple(items))
|
|
Packit |
562c7a |
1
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
a, = it
|
|
Packit |
562c7a |
return a
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def unpack_two(sequence it):
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> items = [1,2]
|
|
Packit |
562c7a |
>>> unpack_two(items)
|
|
Packit |
562c7a |
(1, 2)
|
|
Packit |
562c7a |
>>> unpack_two(iter(items))
|
|
Packit |
562c7a |
(1, 2)
|
|
Packit |
562c7a |
>>> unpack_two(list(items))
|
|
Packit |
562c7a |
(1, 2)
|
|
Packit |
562c7a |
>>> unpack_two(tuple(items))
|
|
Packit |
562c7a |
(1, 2)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
a,b = it
|
|
Packit |
562c7a |
return a,b
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def unpack_two_int(sequence it):
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> items = [1,2]
|
|
Packit |
562c7a |
>>> unpack_two_int(items)
|
|
Packit |
562c7a |
(1, 2)
|
|
Packit |
562c7a |
>>> unpack_two_int(iter(items))
|
|
Packit |
562c7a |
(1, 2)
|
|
Packit |
562c7a |
>>> unpack_two_int(list(items))
|
|
Packit |
562c7a |
(1, 2)
|
|
Packit |
562c7a |
>>> unpack_two_int(tuple(items))
|
|
Packit |
562c7a |
(1, 2)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
>>> items = [1, object()]
|
|
Packit |
562c7a |
>>> unpack_two_int(items) # doctest: +ELLIPSIS
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
TypeError: ...int...
|
|
Packit |
562c7a |
>>> unpack_two_int(iter(items)) # doctest: +ELLIPSIS
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
TypeError: ...int...
|
|
Packit |
562c7a |
>>> unpack_two_int(list(items)) # doctest: +ELLIPSIS
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
TypeError: ...int...
|
|
Packit |
562c7a |
>>> unpack_two_int(tuple(items)) # doctest: +ELLIPSIS
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
TypeError: ...int...
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int b
|
|
Packit |
562c7a |
a,b = it
|
|
Packit |
562c7a |
return a,b
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def unpack_many(sequence it):
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> items = range(1,13)
|
|
Packit |
562c7a |
>>> unpack_many(items)
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
|
|
Packit |
562c7a |
>>> unpack_many(iter(items))
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
|
|
Packit |
562c7a |
>>> unpack_many(list(items))
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
|
|
Packit |
562c7a |
>>> unpack_many(tuple(items))
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
a,b,c,d,e,f,g,h,i,j,k,l = it
|
|
Packit |
562c7a |
return a,b,c,d,e,f,g,h,i,j,k,l
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def unpack_many_int(sequence it):
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> items = range(1,13)
|
|
Packit |
562c7a |
>>> unpack_many_int(items)
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
|
|
Packit |
562c7a |
>>> unpack_many_int(iter(items))
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
|
|
Packit |
562c7a |
>>> unpack_many_int(list(items))
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
|
|
Packit |
562c7a |
>>> unpack_many_int(tuple(items))
|
|
Packit |
562c7a |
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
>>> items = range(1,10)
|
|
Packit |
562c7a |
>>> unpack_many_int(items)
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: need more than 9 values to unpack
|
|
Packit |
562c7a |
>>> unpack_many_int(iter(items))
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: need more than 9 values to unpack
|
|
Packit |
562c7a |
>>> unpack_many_int(list(items))
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: need more than 9 values to unpack
|
|
Packit |
562c7a |
>>> unpack_many_int(tuple(items))
|
|
Packit |
562c7a |
Traceback (most recent call last):
|
|
Packit |
562c7a |
ValueError: need more than 9 values to unpack
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int b
|
|
Packit |
562c7a |
cdef long f
|
|
Packit |
562c7a |
cdef Py_ssize_t h
|
|
Packit |
562c7a |
a,b,c,d,e,f,g,h,i,j,k,l = it
|
|
Packit |
562c7a |
return a,b,c,d,e,f,g,h,i,j,k,l
|