NEURON
nrnpy_nrn.h
Go to the documentation of this file.
1 static PyType_Slot nrnpy_SectionType_slots[] = {
2  {Py_tp_dealloc, (void*) NPySecObj_dealloc},
3  {Py_tp_repr, (void*) pysec_repr_safe},
4  {Py_tp_hash, (void*) pysec_hash_safe},
5  {Py_tp_call, (void*) NPySecObj_call_safe},
6  {Py_tp_getattro, (void*) section_getattro_safe},
7  {Py_tp_setattro, (void*) section_setattro_safe},
8  {Py_tp_richcompare, (void*) pysec_richcmp_safe},
9  {Py_tp_iter, (void*) seg_of_section_iter_safe},
10  {Py_tp_methods, (void*) NPySecObj_methods},
11  {Py_tp_init, (void*) NPySecObj_init_safe},
12  {Py_tp_new, (void*) NPySecObj_new_safe},
13  {Py_tp_doc, (void*) "Section objects"},
14  {Py_sq_contains, (void*) NPySecObj_contains_safe},
15  {0, 0},
16 };
17 static PyType_Spec nrnpy_SectionType_spec = {
18  "nrn.Section",
19  sizeof(NPySecObj),
20  0,
21  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
23 };
24 
25 
26 static PyType_Slot nrnpy_AllSegOfSecIterType_slots[] = {
27  {Py_tp_dealloc, (void*) NPyAllSegOfSecIter_dealloc_safe},
28  {Py_tp_iter, (void*) allseg_of_sec_iter_safe},
29  {Py_tp_iternext, (void*) allseg_of_sec_next_safe},
30  {Py_tp_init, (void*) NPyAllSegOfSecIter_init_safe},
31  {Py_tp_new, (void*) NPyAllSegOfSecIter_new_safe},
32  {Py_tp_doc, (void*) "Iterate over all Segments of a Section, including x=0 and 1"},
33  {0, 0},
34 };
35 static PyType_Spec nrnpy_AllSegOfSecIterType_spec = {
36  "nrn.AllsegIter",
37  sizeof(NPyAllSegOfSecIter),
38  0,
39  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
41 };
42 
43 static PyType_Slot nrnpy_SegOfSecIterType_slots[] = {
44  {Py_tp_dealloc, (void*) NPySegOfSecIter_dealloc_safe},
45  {Py_tp_iter, (void*) PyObject_SelfIter},
46  {Py_tp_iternext, (void*) seg_of_sec_next_safe},
47  {Py_tp_doc,
48  (void*) "Iterate over nonzero area Segments of a Section (does not include x=0 and 1)"},
49  {0, 0},
50 };
51 static PyType_Spec nrnpy_SegOfSecIterType_spec = {
52  "nrn.SegOfSecIter",
53  sizeof(NPySegOfSecIter),
54  0,
55  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
57 };
58 
59 static PyType_Slot nrnpy_SegmentType_slots[] = {
60  {Py_tp_dealloc, (void*) NPySegObj_dealloc_safe},
61  {Py_tp_repr, (void*) pyseg_repr_safe},
62  {Py_tp_hash, (void*) pyseg_hash_safe},
63  {Py_tp_getattro, (void*) segment_getattro_safe},
64  {Py_tp_setattro, (void*) segment_setattro_safe},
65  {Py_tp_richcompare, (void*) pyseg_richcmp_safe},
66  {Py_tp_iter, (void*) mech_of_segment_iter_safe},
67  {Py_tp_methods, (void*) NPySegObj_methods},
68  {Py_tp_members, (void*) NPySegObj_members},
69  {Py_tp_init, (void*) NPySegObj_init},
70  {Py_tp_new, (void*) NPySegObj_new_safe},
71  {Py_tp_doc, (void*) "Segment objects"},
72  {Py_sq_contains, (void*) NPySegObj_contains_safe},
73  {0, 0},
74 };
75 static PyType_Spec nrnpy_SegmentType_spec = {
76  "nrn.Segment",
77  sizeof(NPySegObj),
78  0,
79  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
81 };
82 
83 static PyType_Slot nrnpy_MechOfSegIterType_slots[] = {
84  {Py_tp_dealloc, (void*) NPyMechOfSegIter_dealloc_safe},
85  {Py_tp_iter, (void*) PyObject_SelfIter},
86  {Py_tp_iternext, (void*) mech_of_seg_next_safe},
87  {Py_tp_doc, (void*) "Iterate over Mechanisms in a Segment of a Section"},
88  {0, 0},
89 };
90 static PyType_Spec nrnpy_MechOfSegIterType_spec = {
91  "nrn.MechOfSegIter",
92  sizeof(NPyMechOfSegIter),
93  0,
94  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
96 };
97 
98 static PyType_Slot nrnpy_MechanismType_slots[] = {
99  {Py_tp_dealloc, (void*) NPyMechObj_dealloc_safe},
100  {Py_tp_repr, (void*) pymech_repr_safe},
101  {Py_tp_getattro, (void*) mech_getattro_safe},
102  {Py_tp_setattro, (void*) mech_setattro_safe},
103  {Py_tp_iter, (void*) var_of_mech_iter_safe},
104  {Py_tp_methods, (void*) NPyMechObj_methods},
105  {Py_tp_members, (void*) NPyMechObj_members},
106  {Py_tp_init, (void*) NPyMechObj_init_safe},
107  {Py_tp_new, (void*) NPyMechObj_new_safe},
108  {Py_tp_doc, (void*) "Mechanism objects"},
109  {0, 0},
110 };
111 static PyType_Spec nrnpy_MechanismType_spec = {
112  "nrn.Mechanism",
113  sizeof(NPyMechObj),
114  0,
115  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
117 };
118 
119 static PyType_Slot nrnpy_MechFuncType_slots[] = {
120  {Py_tp_dealloc, (void*) NPyMechFunc_dealloc_safe},
121  {Py_tp_repr, (void*) pymechfunc_repr_safe},
122  {Py_tp_methods, (void*) NPyMechFunc_methods},
123  {Py_tp_call, (void*) NPyMechFunc_call_safe},
124  {Py_tp_doc, (void*) "Mechanism Function"},
125  {0, 0},
126 };
127 static PyType_Spec nrnpy_MechFuncType_spec = {
128  "nrn.MechFunc",
129  sizeof(NPyMechFunc),
130  0,
131  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
133 };
134 
135 static PyType_Slot nrnpy_VarOfMechIterType_slots[] = {
136  {Py_tp_dealloc, (void*) NPyVarOfMechIter_dealloc_safe},
137  {Py_tp_iter, (void*) PyObject_SelfIter},
138  {Py_tp_iternext, (void*) var_of_mech_next_safe},
139  {Py_tp_doc, (void*) "Iterate over variables in a Mechanism"},
140  {0, 0},
141 };
142 static PyType_Spec nrnpy_VarOfMechIterType_spec = {
143  "nrn.VarOfMechIter",
144  sizeof(NPyVarOfMechIter),
145  0,
146  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
148 };
149 
150 static PyType_Slot nrnpy_RangeType_slots[] = {
151  {Py_tp_dealloc, (void*) NPyRangeVar_dealloc_safe},
152  {Py_tp_methods, (void*) NPyRangeVar_methods},
153  {Py_tp_init, (void*) NPyRangeVar_init_safe},
154  {Py_tp_new, (void*) NPyRangeVar_new_safe},
155  {Py_tp_doc, (void*) "Range Variable Array objects"},
156  {Py_sq_length, (void*) rv_len_safe},
157  {Py_sq_item, (void*) rv_getitem_safe},
158  {Py_sq_ass_item, (void*) rv_setitem_safe},
159  {0, 0},
160 };
161 static PyType_Spec nrnpy_RangeType_spec = {
162  "nrn.RangeVar",
163  sizeof(NPyRangeVar),
164  0,
165  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
167 };
168 
169 static PyType_Slot nrnpy_OpaquePointerType_slots[] = {
170  {Py_tp_doc, (void*) "Opaque pointer."},
171  {0, 0},
172 };
173 static PyType_Spec nrnpy_OpaquePointerType_spec = {
174  "nrn.OpaquePointer",
175  sizeof(NPyOpaquePointer),
176  0,
177  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
179 };
180 
181 static struct PyModuleDef nrnmodule = {PyModuleDef_HEAD_INIT,
182  "nrn",
183  "NEURON interaction with Python",
184  -1,
186  NULL,
187  NULL,
188  NULL,
189  NULL};
190 
191 /*
192 limited namespace version of nrn module which will not have the mechanism
193 names added. (At least one ModelDB model has a mechanism called 'cas')
194 */
195 static struct PyModuleDef nrnsectionmodule = {PyModuleDef_HEAD_INIT,
196  "_neuron_section",
197  "NEURON interaction with Python",
198  -1,
200  NULL,
201  NULL,
202  NULL,
203  NULL};
static int NPyMechObj_init_safe(NPyMechObj *self, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:692
static PyObject * NPyRangeVar_new_safe(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:590
static PyObject * NPySegObj_new_safe(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:544
static PyMethodDef NPyMechFunc_methods[]
Definition: nrnpy_nrn.cpp:2948
static void NPySecObj_dealloc(NPySecObj *self)
Definition: nrnpy_nrn.cpp:256
static PyMethodDef NPySegObj_methods[]
Definition: nrnpy_nrn.cpp:2905
PyObject * NPySecObj_new_safe(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:493
static int NPySecObj_contains_safe(PyObject *sec, PyObject *obj)
Definition: nrnpy_nrn.cpp:221
static int mech_setattro_safe(NPyMechObj *self, PyObject *pyname, PyObject *value)
Definition: nrnpy_nrn.cpp:2622
static PyObject * pysec_richcmp_safe(NPySecObj *self, PyObject *other, int op)
Definition: nrnpy_nrn.cpp:1298
static int rv_setitem_safe(PyObject *self, Py_ssize_t ix, PyObject *value)
Definition: nrnpy_nrn.cpp:2759
static void NPyMechOfSegIter_dealloc_safe(NPyMechOfSegIter *self)
Definition: nrnpy_nrn.cpp:381
static PyObject * allseg_of_sec_next_safe(NPyAllSegOfSecIter *self)
Definition: nrnpy_nrn.cpp:1676
static PyObject * rv_getitem_safe(PyObject *self, Py_ssize_t ix)
Definition: nrnpy_nrn.cpp:2706
static int NPySegObj_contains_safe(PyObject *segment, PyObject *obj)
Definition: nrnpy_nrn.cpp:574
static PyObject * segment_getattro_safe(NPySegObj *self, PyObject *pyname)
Definition: nrnpy_nrn.cpp:2304
static PyObject * NPyMechObj_new_safe(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:565
static PyObject * mech_of_segment_iter_safe(NPySegObj *self)
Definition: nrnpy_nrn.cpp:1898
static void NPySegOfSecIter_dealloc_safe(NPySegOfSecIter *self)
Definition: nrnpy_nrn.cpp:299
static PyObject * pyseg_richcmp_safe(NPySegObj *self, PyObject *other, int op)
Definition: nrnpy_nrn.cpp:1277
static void NPySegObj_dealloc_safe(NPySegObj *self)
Definition: nrnpy_nrn.cpp:310
static PyMemberDef NPyMechObj_members[]
Definition: nrnpy_nrn.cpp:2964
static PyObject * NPyMechFunc_call_safe(NPyMechFunc *self, PyObject *args)
Definition: nrnpy_nrn.cpp:1369
static void NPyAllSegOfSecIter_dealloc_safe(NPyAllSegOfSecIter *self)
Definition: nrnpy_nrn.cpp:288
static void NPyMechFunc_dealloc_safe(NPyMechFunc *self)
Definition: nrnpy_nrn.cpp:371
PyObject * NPyAllSegOfSecIter_new_safe(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:508
static PyMethodDef NPyMechObj_methods[]
Definition: nrnpy_nrn.cpp:2933
static int NPySegObj_init(NPySegObj *self, PyObject *, PyObject *)
Definition: nrnpy_nrn.cpp:594
static PyObject * seg_of_sec_next_safe(NPySegOfSecIter *self)
Definition: nrnpy_nrn.cpp:1699
static PyObject * pymech_repr_safe(PyObject *p)
Definition: nrnpy_nrn.cpp:1410
static PyMethodDef NPySecObj_methods[]
Definition: nrnpy_nrn.cpp:2763
static Py_ssize_t rv_len_safe(PyObject *self)
Definition: nrnpy_nrn.cpp:2668
static PyObject * var_of_mech_next_safe(NPyVarOfMechIter *self)
Definition: nrnpy_nrn.cpp:2186
static PyObject * mech_of_seg_next_safe(NPyMechOfSegIter *self)
Definition: nrnpy_nrn.cpp:2146
static PyMemberDef NPySegObj_members[]
Definition: nrnpy_nrn.cpp:2928
static void NPyVarOfMechIter_dealloc_safe(NPyVarOfMechIter *self)
Definition: nrnpy_nrn.cpp:391
static PyObject * pysec_repr_safe(PyObject *p)
Definition: nrnpy_nrn.cpp:969
static PyObject * NPySecObj_call_safe(NPySecObj *self, PyObject *args)
Definition: nrnpy_nrn.cpp:2654
static long pysec_hash_safe(PyObject *self)
Definition: nrnpy_nrn.cpp:1253
static PyObject * section_getattro_safe(NPySecObj *self, PyObject *pyname)
Definition: nrnpy_nrn.cpp:2030
static int NPySecObj_init_safe(NPySecObj *self, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:460
static PyObject * mech_getattro_safe(NPyMechObj *self, PyObject *pyname)
Definition: nrnpy_nrn.cpp:2568
static PyObject * var_of_mech_iter_safe(NPyMechObj *self)
Definition: nrnpy_nrn.cpp:2166
static PyMethodDef nrnpy_methods[]
Definition: nrnpy_nrn.cpp:2981
static long pyseg_hash_safe(PyObject *self)
Definition: nrnpy_nrn.cpp:1262
static PyObject * pymechfunc_repr_safe(PyObject *p)
Definition: nrnpy_nrn.cpp:1419
static PyObject * allseg_of_sec_iter_safe(NPyAllSegOfSecIter *self)
Definition: nrnpy_nrn.cpp:1647
static PyObject * seg_of_section_iter_safe(NPySecObj *self)
Definition: nrnpy_nrn.cpp:1623
static PyObject * pyseg_repr_safe(PyObject *p)
Definition: nrnpy_nrn.cpp:984
static void NPyMechObj_dealloc_safe(NPyMechObj *self)
Definition: nrnpy_nrn.cpp:333
static int section_setattro_safe(NPySecObj *self, PyObject *pyname, PyObject *value)
Definition: nrnpy_nrn.cpp:2121
static int NPyAllSegOfSecIter_init_safe(NPyAllSegOfSecIter *self, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:478
static int segment_setattro_safe(NPySegObj *self, PyObject *pyname, PyObject *value)
Definition: nrnpy_nrn.cpp:2407
static int NPyRangeVar_init_safe(NPyRangeVar *self, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:700
static PyMethodDef NPyRangeVar_methods[]
Definition: nrnpy_nrn.cpp:2956
static void NPyRangeVar_dealloc_safe(NPyRangeVar *self)
Definition: nrnpy_nrn.cpp:321
static PyType_Spec nrnpy_MechOfSegIterType_spec
Definition: nrnpy_nrn.h:90
static PyType_Slot nrnpy_MechOfSegIterType_slots[]
Definition: nrnpy_nrn.h:83
static PyType_Slot nrnpy_SegmentType_slots[]
Definition: nrnpy_nrn.h:59
static PyType_Spec nrnpy_VarOfMechIterType_spec
Definition: nrnpy_nrn.h:142
static PyType_Spec nrnpy_AllSegOfSecIterType_spec
Definition: nrnpy_nrn.h:35
static PyType_Spec nrnpy_SectionType_spec
Definition: nrnpy_nrn.h:17
static PyType_Spec nrnpy_SegOfSecIterType_spec
Definition: nrnpy_nrn.h:51
static PyType_Slot nrnpy_SegOfSecIterType_slots[]
Definition: nrnpy_nrn.h:43
static struct PyModuleDef nrnsectionmodule
Definition: nrnpy_nrn.h:195
static PyType_Slot nrnpy_OpaquePointerType_slots[]
Definition: nrnpy_nrn.h:169
static PyType_Slot nrnpy_MechFuncType_slots[]
Definition: nrnpy_nrn.h:119
static PyType_Slot nrnpy_MechanismType_slots[]
Definition: nrnpy_nrn.h:98
static PyType_Spec nrnpy_MechanismType_spec
Definition: nrnpy_nrn.h:111
static PyType_Spec nrnpy_RangeType_spec
Definition: nrnpy_nrn.h:161
static PyType_Slot nrnpy_AllSegOfSecIterType_slots[]
Definition: nrnpy_nrn.h:26
static struct PyModuleDef nrnmodule
Definition: nrnpy_nrn.h:181
static PyType_Slot nrnpy_RangeType_slots[]
Definition: nrnpy_nrn.h:150
static PyType_Slot nrnpy_VarOfMechIterType_slots[]
Definition: nrnpy_nrn.h:135
static PyType_Spec nrnpy_MechFuncType_spec
Definition: nrnpy_nrn.h:127
static PyType_Slot nrnpy_SectionType_slots[]
Definition: nrnpy_nrn.h:1
static PyType_Spec nrnpy_SegmentType_spec
Definition: nrnpy_nrn.h:75
static PyType_Spec nrnpy_OpaquePointerType_spec
Definition: nrnpy_nrn.h:173
#define NULL
Definition: spdefs.h:105