Mercurial > cpython-lru_cache-weakref
annotate Include/sliceobject.h @ 74135:9c19df6c8ea0 3.2
News entry for Issue12798
| author | Senthil Kumaran <senthil@uthcode.com> |
|---|---|
| date | Fri, 23 Dec 2011 11:11:21 +0800 |
| parents | 62b61abd02b8 |
| children | e9af9b1ca67e |
| rev | line source |
|---|---|
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 #ifndef Py_SLICEOBJECT_H |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 #define Py_SLICEOBJECT_H |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 #ifdef __cplusplus |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 extern "C" { |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 #endif |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 |
|
4403
3b3f7c3f6da2
Ellipses -> Ellipsis rename (the dictionary really says that it should
Guido van Rossum <guido@python.org>
parents:
3834
diff
changeset
|
7 /* The unique ellipsis object "..." */ |
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
23778
diff
changeset
|
9 PyAPI_DATA(PyObject) _Py_EllipsisObject; /* Don't use this directly */ |
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 |
|
4403
3b3f7c3f6da2
Ellipses -> Ellipsis rename (the dictionary really says that it should
Guido van Rossum <guido@python.org>
parents:
3834
diff
changeset
|
11 #define Py_Ellipsis (&_Py_EllipsisObject) |
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 /* Slice object interface */ |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 /* |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 A slice object containing start, stop, and step data members (the |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 names are from range). After much talk with Guido, it was decided to |
|
33856
60c60dc75c77
Wrote down the invariants of some common objects whose structure is
Armin Rigo <arigo@tunes.org>
parents:
24752
diff
changeset
|
19 let these be any arbitrary python type. Py_None stands for omitted values. |
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 */ |
|
66664
62b61abd02b8
Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
53368
diff
changeset
|
21 #ifndef Py_LIMITED_API |
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 typedef struct { |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
9586
diff
changeset
|
23 PyObject_HEAD |
|
33856
60c60dc75c77
Wrote down the invariants of some common objects whose structure is
Armin Rigo <arigo@tunes.org>
parents:
24752
diff
changeset
|
24 PyObject *start, *stop, *step; /* not NULL */ |
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 } PySliceObject; |
|
66664
62b61abd02b8
Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
53368
diff
changeset
|
26 #endif |
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
23778
diff
changeset
|
28 PyAPI_DATA(PyTypeObject) PySlice_Type; |
|
53368
b5e2bcbbfa74
Merged revisions 71757 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
44351
diff
changeset
|
29 PyAPI_DATA(PyTypeObject) PyEllipsis_Type; |
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 |
|
44351
86a2679dca46
#1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT.
Christian Heimes <christian@cheimes.de>
parents:
42334
diff
changeset
|
31 #define PySlice_Check(op) (Py_TYPE(op) == &PySlice_Type) |
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
23778
diff
changeset
|
33 PyAPI_FUNC(PyObject *) PySlice_New(PyObject* start, PyObject* stop, |
|
13445
091ca6b9348f
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
9586
diff
changeset
|
34 PyObject* step); |
|
66664
62b61abd02b8
Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
53368
diff
changeset
|
35 #ifndef Py_LIMITED_API |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36501
diff
changeset
|
36 PyAPI_FUNC(PyObject *) _PySlice_FromIndices(Py_ssize_t start, Py_ssize_t stop); |
|
66664
62b61abd02b8
Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
53368
diff
changeset
|
37 #endif |
|
62b61abd02b8
Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
53368
diff
changeset
|
38 PyAPI_FUNC(int) PySlice_GetIndices(PyObject *r, Py_ssize_t length, |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
33856
diff
changeset
|
39 Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step); |
|
66664
62b61abd02b8
Merge branches/pep-0384.
Martin v. Löwis <martin@v.loewis.de>
parents:
53368
diff
changeset
|
40 PyAPI_FUNC(int) PySlice_GetIndicesEx(PyObject *r, Py_ssize_t length, |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
33856
diff
changeset
|
41 Py_ssize_t *start, Py_ssize_t *stop, |
|
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
33856
diff
changeset
|
42 Py_ssize_t *step, Py_ssize_t *slicelength); |
|
3834
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 #ifdef __cplusplus |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 } |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 #endif |
|
77d912f2abcb
Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 #endif /* !Py_SLICEOBJECT_H */ |
