Home | History | Annotate | Download | only in includes
      1 typedef struct _typeobject {
      2     PyObject_VAR_HEAD
      3     char *tp_name; /* For printing, in format "<module>.<name>" */
      4     int tp_basicsize, tp_itemsize; /* For allocation */
      5 
      6     /* Methods to implement standard operations */
      7 
      8     destructor tp_dealloc;
      9     printfunc tp_print;
     10     getattrfunc tp_getattr;
     11     setattrfunc tp_setattr;
     12     cmpfunc tp_compare;
     13     reprfunc tp_repr;
     14 
     15     /* Method suites for standard classes */
     16 
     17     PyNumberMethods *tp_as_number;
     18     PySequenceMethods *tp_as_sequence;
     19     PyMappingMethods *tp_as_mapping;
     20 
     21     /* More standard operations (here for binary compatibility) */
     22 
     23     hashfunc tp_hash;
     24     ternaryfunc tp_call;
     25     reprfunc tp_str;
     26     getattrofunc tp_getattro;
     27     setattrofunc tp_setattro;
     28 
     29     /* Functions to access object as input/output buffer */
     30     PyBufferProcs *tp_as_buffer;
     31 
     32     /* Flags to define presence of optional/expanded features */
     33     long tp_flags;
     34 
     35     char *tp_doc; /* Documentation string */
     36 
     37     /* Assigned meaning in release 2.0 */
     38     /* call function for all accessible objects */
     39     traverseproc tp_traverse;
     40 
     41     /* delete references to contained objects */
     42     inquiry tp_clear;
     43 
     44     /* Assigned meaning in release 2.1 */
     45     /* rich comparisons */
     46     richcmpfunc tp_richcompare;
     47 
     48     /* weak reference enabler */
     49     long tp_weaklistoffset;
     50 
     51     /* Added in release 2.2 */
     52     /* Iterators */
     53     getiterfunc tp_iter;
     54     iternextfunc tp_iternext;
     55 
     56     /* Attribute descriptor and subclassing stuff */
     57     struct PyMethodDef *tp_methods;
     58     struct PyMemberDef *tp_members;
     59     struct PyGetSetDef *tp_getset;
     60     struct _typeobject *tp_base;
     61     PyObject *tp_dict;
     62     descrgetfunc tp_descr_get;
     63     descrsetfunc tp_descr_set;
     64     long tp_dictoffset;
     65     initproc tp_init;
     66     allocfunc tp_alloc;
     67     newfunc tp_new;
     68     freefunc tp_free; /* Low-level free-memory routine */
     69     inquiry tp_is_gc; /* For PyObject_IS_GC */
     70     PyObject *tp_bases;
     71     PyObject *tp_mro; /* method resolution order */
     72     PyObject *tp_cache;
     73     PyObject *tp_subclasses;
     74     PyObject *tp_weaklist;
     75 
     76 } PyTypeObject;
     77