Sequence Protocol¶
-
intPySequence_Check(PyObject*o)¶
- Part of theStable ABI.
Return
1
if the object provides the sequence protocol, and0
otherwise. Note that it returns1
for Python classes with a__getitem__()
method, unless they aredict
subclasses, since in general it is impossible to determine what type of keys the class supports. This function always succeeds.
-
Py_ssize_tPySequence_Size(PyObject*o)¶
-
Py_ssize_tPySequence_Length(PyObject*o)¶
- Part of theStable ABI.
Returns the number of objects in sequenceoon success, and
-1
on failure. This is equivalent to the Python expressionlen(o)
.
-
PyObject*PySequence_Concat(PyObject*o1,PyObject*o2)¶
- Return value: New reference.Part of theStable ABI.
Return the concatenation ofo1ando2on success, and
NULL
on failure. This is the equivalent of the Python expressiono1+o2
.
-
PyObject*PySequence_Repeat(PyObject*o,Py_ssize_tcount)¶
- Return value: New reference.Part of theStable ABI.
Return the result of repeating sequence objectocounttimes, or
NULL
on failure. This is the equivalent of the Python expressiono*count
.
-
PyObject*PySequence_InPlaceConcat(PyObject*o1,PyObject*o2)¶
- Return value: New reference.Part of theStable ABI.
Return the concatenation ofo1ando2on success, and
NULL
on failure. The operation is donein-placewheno1supports it. This is the equivalent of the Python expressiono1+=o2
.
-
PyObject*PySequence_InPlaceRepeat(PyObject*o,Py_ssize_tcount)¶
- Return value: New reference.Part of theStable ABI.
Return the result of repeating sequence objectocounttimes, or
NULL
on failure. The operation is donein-placewhenosupports it. This is the equivalent of the Python expressiono*=count
.
-
PyObject*PySequence_GetItem(PyObject*o,Py_ssize_ti)¶
- Return value: New reference.Part of theStable ABI.
Return theith element ofo,or
NULL
on failure. This is the equivalent of the Python expressiono[i]
.
-
PyObject*PySequence_GetSlice(PyObject*o,Py_ssize_ti1,Py_ssize_ti2)¶
- Return value: New reference.Part of theStable ABI.
Return the slice of sequence objectobetweeni1andi2,or
NULL
on failure. This is the equivalent of the Python expressiono[i1:i2]
.
-
intPySequence_SetItem(PyObject*o,Py_ssize_ti,PyObject*v)¶
- Part of theStable ABI.
Assign objectvto theith element ofo.Raise an exception and return
-1
on failure; return0
on success. This is the equivalent of the Python statemento[i]=v
.This functiondoes notsteal a reference tov.Ifvis
NULL
,the element is deleted, but this feature is deprecated in favour of usingPySequence_DelItem()
.
-
intPySequence_DelItem(PyObject*o,Py_ssize_ti)¶
- Part of theStable ABI.
Delete theith element of objecto.Returns
-1
on failure. This is the equivalent of the Python statementdelo[i]
.
-
intPySequence_SetSlice(PyObject*o,Py_ssize_ti1,Py_ssize_ti2,PyObject*v)¶
- Part of theStable ABI.
Assign the sequence objectvto the slice in sequence objectofromi1to i2.This is the equivalent of the Python statement
o[i1:i2]=v
.
-
intPySequence_DelSlice(PyObject*o,Py_ssize_ti1,Py_ssize_ti2)¶
- Part of theStable ABI.
Delete the slice in sequence objectofromi1toi2.Returns
-1
on failure. This is the equivalent of the Python statementdelo[i1:i2]
.
-
Py_ssize_tPySequence_Count(PyObject*o,PyObject*value)¶
- Part of theStable ABI.
Return the number of occurrences ofvalueino,that is, return the number of keys for which
o[key]==value
.On failure, return-1
.This is equivalent to the Python expressiono.count(value)
.
-
intPySequence_Contains(PyObject*o,PyObject*value)¶
- Part of theStable ABI.
Determine ifocontainsvalue.If an item inois equal tovalue, return
1
,otherwise return0
.On error, return-1
.This is equivalent to the Python expressionvalueino
.
-
Py_ssize_tPySequence_Index(PyObject*o,PyObject*value)¶
- Part of theStable ABI.
Return the first indexifor which
o[i]==value
.On error, return-1
.This is equivalent to the Python expressiono.index(value)
.
-
PyObject*PySequence_List(PyObject*o)¶
- Return value: New reference.Part of theStable ABI.
Return a list object with the same contents as the sequence or iterableo, or
NULL
on failure. The returned list is guaranteed to be new. This is equivalent to the Python expressionlist(o)
.
-
PyObject*PySequence_Tuple(PyObject*o)¶
- Return value: New reference.Part of theStable ABI.
Return a tuple object with the same contents as the sequence or iterableo, or
NULL
on failure. Ifois a tuple, a new reference will be returned, otherwise a tuple will be constructed with the appropriate contents. This is equivalent to the Python expressiontuple(o)
.
-
PyObject*PySequence_Fast(PyObject*o,constchar*m)¶
- Return value: New reference.Part of theStable ABI.
Return the sequence or iterableoas an object usable by the other
PySequence_Fast*
family of functions. If the object is not a sequence or iterable, raisesTypeError
withmas the message text. ReturnsNULL
on failure.The
PySequence_Fast*
functions are thus named because they assume ois aPyTupleObject
or aPyListObject
and access the data fields ofodirectly.As a CPython implementation detail, ifois already a sequence or list, it will be returned.
-
Py_ssize_tPySequence_Fast_GET_SIZE(PyObject*o)¶
Returns the length ofo,assuming thatowas returned by
PySequence_Fast()
and thatois notNULL
.The size can also be retrieved by callingPySequence_Size()
ono,butPySequence_Fast_GET_SIZE()
is faster because it can assumeois a list or tuple.
-
PyObject*PySequence_Fast_GET_ITEM(PyObject*o,Py_ssize_ti)¶
- Return value: Borrowed reference.
Return theith element ofo,assuming thatowas returned by
PySequence_Fast()
,ois notNULL
,and thatiis within bounds.
-
PyObject**PySequence_Fast_ITEMS(PyObject*o)¶
Return the underlying array of PyObject pointers. Assumes thatowas returned by
PySequence_Fast()
andois notNULL
.Note, if a list gets resized, the reallocation may relocate the items array. So, only use the underlying array pointer in contexts where the sequence cannot change.
-
PyObject*PySequence_ITEM(PyObject*o,Py_ssize_ti)¶
- Return value: New reference.
Return theith element ofoor
NULL
on failure. Faster form ofPySequence_GetItem()
but without checking thatPySequence_Check()
onois true and without adjustment for negative indices.