| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | typedef struct _typeobject { | 
					
						
							|  |  |  |     PyObject_VAR_HEAD | 
					
						
							|  |  |  |     char *tp_name; /* For printing, in format "<module>.<name>" */ | 
					
						
							|  |  |  |     int tp_basicsize, tp_itemsize; /* For allocation */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* Methods to implement standard operations */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     destructor tp_dealloc; | 
					
						
							|  |  |  |     printfunc tp_print; | 
					
						
							|  |  |  |     getattrfunc tp_getattr; | 
					
						
							|  |  |  |     setattrfunc tp_setattr; | 
					
						
							| 
									
										
										
										
											2009-02-02 21:29:40 +00:00
										 |  |  |     void *tp_reserved; | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  |     reprfunc tp_repr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* Method suites for standard classes */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     PyNumberMethods *tp_as_number; | 
					
						
							|  |  |  |     PySequenceMethods *tp_as_sequence; | 
					
						
							|  |  |  |     PyMappingMethods *tp_as_mapping; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* More standard operations (here for binary compatibility) */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     hashfunc tp_hash; | 
					
						
							|  |  |  |     ternaryfunc tp_call; | 
					
						
							|  |  |  |     reprfunc tp_str; | 
					
						
							|  |  |  |     getattrofunc tp_getattro; | 
					
						
							|  |  |  |     setattrofunc tp_setattro; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* Functions to access object as input/output buffer */ | 
					
						
							|  |  |  |     PyBufferProcs *tp_as_buffer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* Flags to define presence of optional/expanded features */ | 
					
						
							|  |  |  |     long tp_flags; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     char *tp_doc; /* Documentation string */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* call function for all accessible objects */ | 
					
						
							|  |  |  |     traverseproc tp_traverse; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* delete references to contained objects */ | 
					
						
							|  |  |  |     inquiry tp_clear; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* rich comparisons */ | 
					
						
							|  |  |  |     richcmpfunc tp_richcompare; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* weak reference enabler */ | 
					
						
							|  |  |  |     long tp_weaklistoffset; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* Iterators */ | 
					
						
							|  |  |  |     getiterfunc tp_iter; | 
					
						
							|  |  |  |     iternextfunc tp_iternext; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* Attribute descriptor and subclassing stuff */ | 
					
						
							|  |  |  |     struct PyMethodDef *tp_methods; | 
					
						
							|  |  |  |     struct PyMemberDef *tp_members; | 
					
						
							|  |  |  |     struct PyGetSetDef *tp_getset; | 
					
						
							|  |  |  |     struct _typeobject *tp_base; | 
					
						
							|  |  |  |     PyObject *tp_dict; | 
					
						
							|  |  |  |     descrgetfunc tp_descr_get; | 
					
						
							|  |  |  |     descrsetfunc tp_descr_set; | 
					
						
							|  |  |  |     long tp_dictoffset; | 
					
						
							|  |  |  |     initproc tp_init; | 
					
						
							|  |  |  |     allocfunc tp_alloc; | 
					
						
							|  |  |  |     newfunc tp_new; | 
					
						
							|  |  |  |     freefunc tp_free; /* Low-level free-memory routine */ | 
					
						
							|  |  |  |     inquiry tp_is_gc; /* For PyObject_IS_GC */ | 
					
						
							|  |  |  |     PyObject *tp_bases; | 
					
						
							|  |  |  |     PyObject *tp_mro; /* method resolution order */ | 
					
						
							|  |  |  |     PyObject *tp_cache; | 
					
						
							|  |  |  |     PyObject *tp_subclasses; | 
					
						
							|  |  |  |     PyObject *tp_weaklist; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } PyTypeObject; |