annotate Include/classobject.h @ 66978:aed2bbafa550 3.1

Blocked revisions 87324 via svnmerge ........ r87324 | r.david.murray | 2010-12-16 14:08:51 -0500 (Thu, 16 Dec 2010) | 9 lines #10719: restore messages generated on invalid compileall args Before the introduction of filename arguments to compileall it gave semi useful messages about not being able to 'list' names that weren't valid directories. This fix restores that behavior. In addition to the test for this case, the patch also adds a test for the default behavior of compileall when no arguments are provided, and fixes a bug in one of the previously added tests. ........
author R. David Murray <rdmurray@bitdance.com>
date Thu, 16 Dec 2010 19:10:16 +0000
parents 7c4c46342137
children 62b61abd02b8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
44026
48af6375207e Removed the API to create unbound methods and simplified the API for bound methods. The signature is PyMethod_New(func, instance).
Christian Heimes <christian@cheimes.de>
parents: 39536
diff changeset
1 /* Former class object interface -- now only bound methods are here */
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
1290
7971fecbf28e * Lots of small changes related to access.
Guido van Rossum <guido@python.org>
parents: 1289
diff changeset
3 /* Revealing some structures (not for general use) */
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
4
13444
5709ddba423c ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 13256
diff changeset
5 #ifndef Py_CLASSOBJECT_H
5709ddba423c ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 13256
diff changeset
6 #define Py_CLASSOBJECT_H
5709ddba423c ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 13256
diff changeset
7 #ifdef __cplusplus
5709ddba423c ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 13256
diff changeset
8 extern "C" {
5709ddba423c ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 13256
diff changeset
9 #endif
5709ddba423c ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 13256
diff changeset
10
1289
4d292c7857d4 Access checks now work, at least for instance data (not for methods
Guido van Rossum <guido@python.org>
parents: 1288
diff changeset
11 typedef struct {
13444
5709ddba423c ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 13256
diff changeset
12 PyObject_HEAD
5709ddba423c ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 13256
diff changeset
13 PyObject *im_func; /* The callable object implementing the method */
44026
48af6375207e Removed the API to create unbound methods and simplified the API for bound methods. The signature is PyMethod_New(func, instance).
Christian Heimes <christian@cheimes.de>
parents: 39536
diff changeset
14 PyObject *im_self; /* The instance it is bound to */
17169
d807488dfc7a Add the necessary field for weak reference support to the function and
Fred Drake <fdrake@acm.org>
parents: 16385
diff changeset
15 PyObject *im_weakreflist; /* List of weak references */
8657
ac43e2246695 Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents: 5195
diff changeset
16 } PyMethodObject;
ac43e2246695 Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents: 5195
diff changeset
17
39536
8f5b9982beba Completely get rid of PyClass and PyInstance.
Guido van Rossum <guido@python.org>
parents: 28527
diff changeset
18 PyAPI_DATA(PyTypeObject) PyMethod_Type;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
19
2129
05360cd616ae The great renaming, phase two: all header files have been updated to
Guido van Rossum <guido@python.org>
parents: 2074
diff changeset
20 #define PyMethod_Check(op) ((op)->ob_type == &PyMethod_Type)
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
21
44026
48af6375207e Removed the API to create unbound methods and simplified the API for bound methods. The signature is PyMethod_New(func, instance).
Christian Heimes <christian@cheimes.de>
parents: 39536
diff changeset
22 PyAPI_FUNC(PyObject *) PyMethod_New(PyObject *, PyObject *);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
23
24752
c1eb668525e1 Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents: 21300
diff changeset
24 PyAPI_FUNC(PyObject *) PyMethod_Function(PyObject *);
c1eb668525e1 Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents: 21300
diff changeset
25 PyAPI_FUNC(PyObject *) PyMethod_Self(PyObject *);
19751
3d76dfc34c57 Add PyMethod_Function(), PyMethod_Self(), PyMethod_Class() back.
Guido van Rossum <guido@python.org>
parents: 18933
diff changeset
26
8657
ac43e2246695 Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents: 5195
diff changeset
27 /* Macros for direct access to these values. Type checks are *not*
ac43e2246695 Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents: 5195
diff changeset
28 done, so use with care. */
ac43e2246695 Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents: 5195
diff changeset
29 #define PyMethod_GET_FUNCTION(meth) \
ac43e2246695 Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents: 5195
diff changeset
30 (((PyMethodObject *)meth) -> im_func)
ac43e2246695 Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents: 5195
diff changeset
31 #define PyMethod_GET_SELF(meth) \
ac43e2246695 Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents: 5195
diff changeset
32 (((PyMethodObject *)meth) -> im_self)
ac43e2246695 Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents: 5195
diff changeset
33
45371
7c4c46342137 Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60845 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44272
diff changeset
34 PyAPI_FUNC(int) PyMethod_ClearFreeList(void);
44272
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
35
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
36 typedef struct {
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
37 PyObject_HEAD
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
38 PyObject *func;
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
39 } PyInstanceMethodObject;
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
40
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
41 PyAPI_DATA(PyTypeObject) PyInstanceMethod_Type;
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
42
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
43 #define PyInstanceMethod_Check(op) ((op)->ob_type == &PyInstanceMethod_Type)
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
44
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
45 PyAPI_FUNC(PyObject *) PyInstanceMethod_New(PyObject *);
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
46 PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *);
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
47
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
48 /* Macros for direct access to these values. Type checks are *not*
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
49 done, so use with care. */
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
50 #define PyInstanceMethod_GET_FUNCTION(meth) \
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
51 (((PyInstanceMethodObject *)meth) -> func)
3e0867a07765 Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents: 44079
diff changeset
52
1329
519c25039c6a * Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents: 1290
diff changeset
53 #ifdef __cplusplus
519c25039c6a * Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents: 1290
diff changeset
54 }
519c25039c6a * Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents: 1290
diff changeset
55 #endif
519c25039c6a * Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents: 1290
diff changeset
56 #endif /* !Py_CLASSOBJECT_H */