Chris@87: #ifndef Py_SLICEOBJECT_H Chris@87: #define Py_SLICEOBJECT_H Chris@87: #ifdef __cplusplus Chris@87: extern "C" { Chris@87: #endif Chris@87: Chris@87: /* The unique ellipsis object "..." */ Chris@87: Chris@87: PyAPI_DATA(PyObject) _Py_EllipsisObject; /* Don't use this directly */ Chris@87: Chris@87: #define Py_Ellipsis (&_Py_EllipsisObject) Chris@87: Chris@87: /* Slice object interface */ Chris@87: Chris@87: /* Chris@87: Chris@87: A slice object containing start, stop, and step data members (the Chris@87: names are from range). After much talk with Guido, it was decided to Chris@87: let these be any arbitrary python type. Py_None stands for omitted values. Chris@87: */ Chris@87: Chris@87: typedef struct { Chris@87: PyObject_HEAD Chris@87: PyObject *start, *stop, *step; /* not NULL */ Chris@87: } PySliceObject; Chris@87: Chris@87: PyAPI_DATA(PyTypeObject) PySlice_Type; Chris@87: PyAPI_DATA(PyTypeObject) PyEllipsis_Type; Chris@87: Chris@87: #define PySlice_Check(op) (Py_TYPE(op) == &PySlice_Type) Chris@87: Chris@87: PyAPI_FUNC(PyObject *) PySlice_New(PyObject* start, PyObject* stop, Chris@87: PyObject* step); Chris@87: PyAPI_FUNC(PyObject *) _PySlice_FromIndices(Py_ssize_t start, Py_ssize_t stop); Chris@87: PyAPI_FUNC(int) PySlice_GetIndices(PySliceObject *r, Py_ssize_t length, Chris@87: Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step); Chris@87: PyAPI_FUNC(int) PySlice_GetIndicesEx(PySliceObject *r, Py_ssize_t length, Chris@87: Py_ssize_t *start, Py_ssize_t *stop, Chris@87: Py_ssize_t *step, Py_ssize_t *slicelength); Chris@87: Chris@87: #ifdef __cplusplus Chris@87: } Chris@87: #endif Chris@87: #endif /* !Py_SLICEOBJECT_H */