Home | History | Annotate | Download | only in c-api
      1 .. highlightlang:: c
      2 
      3 .. _slice-objects:
      4 
      5 Slice Objects
      6 -------------
      7 
      8 
      9 .. c:var:: PyTypeObject PySlice_Type
     10 
     11    The type object for slice objects.  This is the same as :class:`slice` in the
     12    Python layer.
     13 
     14 
     15 .. c:function:: int PySlice_Check(PyObject *ob)
     16 
     17    Return true if *ob* is a slice object; *ob* must not be *NULL*.
     18 
     19 
     20 .. c:function:: PyObject* PySlice_New(PyObject *start, PyObject *stop, PyObject *step)
     21 
     22    Return a new slice object with the given values.  The *start*, *stop*, and
     23    *step* parameters are used as the values of the slice object attributes of
     24    the same names.  Any of the values may be *NULL*, in which case the
     25    ``None`` will be used for the corresponding attribute.  Return *NULL* if
     26    the new object could not be allocated.
     27 
     28 
     29 .. c:function:: int PySlice_GetIndices(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)
     30 
     31    Retrieve the start, stop and step indices from the slice object *slice*,
     32    assuming a sequence of length *length*. Treats indices greater than
     33    *length* as errors.
     34 
     35    Returns ``0`` on success and ``-1`` on error with no exception set (unless one of
     36    the indices was not :const:`None` and failed to be converted to an integer,
     37    in which case ``-1`` is returned with an exception set).
     38 
     39    You probably do not want to use this function.
     40 
     41    .. versionchanged:: 3.2
     42       The parameter type for the *slice* parameter was ``PySliceObject*``
     43       before.
     44 
     45 
     46 .. c:function:: int PySlice_GetIndicesEx(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength)
     47 
     48    Usable replacement for :c:func:`PySlice_GetIndices`.  Retrieve the start,
     49    stop, and step indices from the slice object *slice* assuming a sequence of
     50    length *length*, and store the length of the slice in *slicelength*.  Out
     51    of bounds indices are clipped in a manner consistent with the handling of
     52    normal slices.
     53 
     54    Returns ``0`` on success and ``-1`` on error with exception set.
     55 
     56    .. versionchanged:: 3.2
     57       The parameter type for the *slice* parameter was ``PySliceObject*``
     58       before.
     59