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},
4  {Py_tp_hash, (void*) pysec_hash},
5  {Py_tp_call, (void*) NPySecObj_call},
6  {Py_tp_getattro, (void*) section_getattro},
7  {Py_tp_setattro, (void*) section_setattro},
8  {Py_tp_richcompare, (void*) pysec_richcmp},
9  {Py_tp_iter, (void*) seg_of_section_iter},
10  {Py_tp_methods, (void*) NPySecObj_methods},
11  {Py_tp_init, (void*) NPySecObj_init},
12  {Py_tp_new, (void*) NPySecObj_new},
13  {Py_tp_doc, (void*) "Section objects"},
14  {Py_sq_contains, (void*) NPySecObj_contains},
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},
28  {Py_tp_iter, (void*) allseg_of_sec_iter},
29  {Py_tp_iternext, (void*) allseg_of_sec_next},
30  {Py_tp_init, (void*) NPyAllSegOfSecIter_init},
31  {Py_tp_new, (void*) NPyAllSegOfSecIter_new},
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},
45  {Py_tp_iter, (void*) PyObject_SelfIter},
46  {Py_tp_iternext, (void*) seg_of_sec_next},
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},
61  {Py_tp_repr, (void*) pyseg_repr},
62  {Py_tp_hash, (void*) pyseg_hash},
63  {Py_tp_getattro, (void*) segment_getattro},
64  {Py_tp_setattro, (void*) segment_setattro},
65  {Py_tp_richcompare, (void*) pyseg_richcmp},
66  {Py_tp_iter, (void*) mech_of_segment_iter},
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},
71  {Py_tp_doc, (void*) "Segment objects"},
72  {0, 0},
73 };
74 static PyType_Spec nrnpy_SegmentType_spec = {
75  "nrn.Segment",
76  sizeof(NPySegObj),
77  0,
78  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
80 };
81 
82 static PyType_Slot nrnpy_MechOfSegIterType_slots[] = {
83  {Py_tp_dealloc, (void*) NPyMechOfSegIter_dealloc},
84  {Py_tp_iter, (void*) PyObject_SelfIter},
85  {Py_tp_iternext, (void*) mech_of_seg_next},
86  {Py_tp_doc, (void*) "Iterate over Mechanisms in a Segment of a Section"},
87  {0, 0},
88 };
89 static PyType_Spec nrnpy_MechOfSegIterType_spec = {
90  "nrn.MechOfSegIter",
91  sizeof(NPyMechOfSegIter),
92  0,
93  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
95 };
96 
97 static PyType_Slot nrnpy_MechanismType_slots[] = {
98  {Py_tp_dealloc, (void*) NPyMechObj_dealloc},
99  {Py_tp_repr, (void*) pymech_repr},
100  {Py_tp_getattro, (void*) mech_getattro},
101  {Py_tp_setattro, (void*) mech_setattro},
102  {Py_tp_iter, (void*) var_of_mech_iter},
103  {Py_tp_methods, (void*) NPyMechObj_methods},
104  {Py_tp_members, (void*) NPyMechObj_members},
105  {Py_tp_init, (void*) NPyMechObj_init},
106  {Py_tp_new, (void*) NPyMechObj_new},
107  {Py_tp_doc, (void*) "Mechanism objects"},
108  {0, 0},
109 };
110 static PyType_Spec nrnpy_MechanismType_spec = {
111  "nrn.Mechanism",
112  sizeof(NPyMechObj),
113  0,
114  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
116 };
117 
118 static PyType_Slot nrnpy_VarOfMechIterType_slots[] = {
119  {Py_tp_dealloc, (void*) NPyVarOfMechIter_dealloc},
120  {Py_tp_iter, (void*) PyObject_SelfIter},
121  {Py_tp_iternext, (void*) var_of_mech_next},
122  {Py_tp_doc, (void*) "Iterate over variables in a Mechanism"},
123  {0, 0},
124 };
125 static PyType_Spec nrnpy_VarOfMechIterType_spec = {
126  "nrn.VarOfMechIter",
127  sizeof(NPyVarOfMechIter),
128  0,
129  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
131 };
132 
133 static PyType_Slot nrnpy_RangeType_slots[] = {
134  {Py_tp_dealloc, (void*) NPyRangeVar_dealloc},
135  {Py_tp_methods, (void*) NPyRangeVar_methods},
136  {Py_tp_init, (void*) NPyRangeVar_init},
137  {Py_tp_new, (void*) NPyRangeVar_new},
138  {Py_tp_doc, (void*) "Range Variable Array objects"},
139  {Py_sq_length, (void*) rv_len},
140  {Py_sq_item, (void*) rv_getitem},
141  {Py_sq_ass_item, (void*) rv_setitem},
142  {0, 0},
143 };
144 static PyType_Spec nrnpy_RangeType_spec = {
145  "nrn.RangeVar",
146  sizeof(NPyRangeVar),
147  0,
148  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
150 };
151 
152 static struct PyModuleDef nrnmodule = {PyModuleDef_HEAD_INIT,
153  "nrn",
154  "NEURON interaction with Python",
155  -1,
157  NULL,
158  NULL,
159  NULL,
160  NULL};
161 
162 /*
163 limited namespace version of nrn module which will not have the mechanism
164 names added. (At least one ModelDB model has a mechanism called 'cas')
165 */
166 static struct PyModuleDef nrnsectionmodule = {PyModuleDef_HEAD_INIT,
167  "_neuron_section",
168  "NEURON interaction with Python",
169  -1,
171  NULL,
172  NULL,
173  NULL,
174  NULL};
static PyObject * pysec_richcmp(NPySecObj *self, PyObject *other, int op)
Definition: nrnpy_nrn.cpp:1044
static PyObject * var_of_mech_next(NPyVarOfMechIter *self)
Definition: nrnpy_nrn.cpp:1772
static PyObject * seg_of_section_iter(NPySecObj *self)
Definition: nrnpy_nrn.cpp:1278
static void NPySecObj_dealloc(NPySecObj *self)
Definition: nrnpy_nrn.cpp:205
static PyMethodDef NPySegObj_methods[]
Definition: nrnpy_nrn.cpp:2384
static PyObject * mech_of_segment_iter(NPySegObj *self)
Definition: nrnpy_nrn.cpp:1514
static PyObject * section_getattro(NPySecObj *self, PyObject *pyname)
Definition: nrnpy_nrn.cpp:1593
static PyObject * pyseg_repr(PyObject *p)
Definition: nrnpy_nrn.cpp:805
static int NPySegObj_init(NPySegObj *self, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:429
static Py_ssize_t rv_len(PyObject *self)
Definition: nrnpy_nrn.cpp:2171
static int NPyAllSegOfSecIter_init(NPyAllSegOfSecIter *self, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:333
static int NPyMechObj_init(NPyMechObj *self, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:538
static int section_setattro(NPySecObj *self, PyObject *pyname, PyObject *value)
Definition: nrnpy_nrn.cpp:1650
static int segment_setattro(NPySegObj *self, PyObject *pyname, PyObject *value)
Definition: nrnpy_nrn.cpp:1925
static PyObject * pysec_repr(PyObject *p)
Definition: nrnpy_nrn.cpp:797
static PyObject * rv_getitem(PyObject *self, Py_ssize_t ix)
Definition: nrnpy_nrn.cpp:2180
static PyMemberDef NPyMechObj_members[]
Definition: nrnpy_nrn.cpp:2446
static PyMethodDef NPyMechObj_methods[]
Definition: nrnpy_nrn.cpp:2426
static void NPySegObj_dealloc(NPySegObj *self)
Definition: nrnpy_nrn.cpp:237
static PyObject * pyseg_richcmp(NPySegObj *self, PyObject *other, int op)
Definition: nrnpy_nrn.cpp:1031
static PyObject * segment_getattro(NPySegObj *self, PyObject *pyname)
Definition: nrnpy_nrn.cpp:1788
static PyObject * NPySecObj_call(NPySecObj *self, PyObject *args)
Definition: nrnpy_nrn.cpp:2161
static void NPySegOfSecIter_dealloc(NPySegOfSecIter *self)
Definition: nrnpy_nrn.cpp:231
static PyObject * pymech_repr(PyObject *p)
Definition: nrnpy_nrn.cpp:1101
static PyMethodDef NPySecObj_methods[]
Definition: nrnpy_nrn.cpp:2248
PyObject * NPyAllSegOfSecIter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:360
static void NPyAllSegOfSecIter_dealloc(NPyAllSegOfSecIter *self)
Definition: nrnpy_nrn.cpp:225
static PyMemberDef NPySegObj_members[]
Definition: nrnpy_nrn.cpp:2417
static PyObject * NPySegObj_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:377
static PyObject * seg_of_sec_next(NPySegOfSecIter *self)
Definition: nrnpy_nrn.cpp:1334
static void NPyMechOfSegIter_dealloc(NPyMechOfSegIter *self)
Definition: nrnpy_nrn.cpp:255
static void NPyRangeVar_dealloc(NPyRangeVar *self)
Definition: nrnpy_nrn.cpp:243
static int mech_setattro(NPyMechObj *self, PyObject *pyname, PyObject *value)
Definition: nrnpy_nrn.cpp:2086
static void NPyMechObj_dealloc(NPyMechObj *self)
Definition: nrnpy_nrn.cpp:249
static void NPyVarOfMechIter_dealloc(NPyVarOfMechIter *self)
Definition: nrnpy_nrn.cpp:261
static long pysec_hash(PyObject *self)
Definition: nrnpy_nrn.cpp:1022
static int NPyRangeVar_init(NPyRangeVar *self, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:551
static int rv_setitem(PyObject *self, Py_ssize_t ix, PyObject *value)
Definition: nrnpy_nrn.cpp:2207
static PyMethodDef nrnpy_methods[]
Definition: nrnpy_nrn.cpp:2458
static PyObject * mech_getattro(NPyMechObj *self, PyObject *pyname)
Definition: nrnpy_nrn.cpp:2019
static int NPySecObj_init(NPySecObj *self, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:277
static PyObject * mech_of_seg_next(NPyMechOfSegIter *self)
Definition: nrnpy_nrn.cpp:1736
static PyObject * allseg_of_sec_iter(NPyAllSegOfSecIter *self)
Definition: nrnpy_nrn.cpp:1303
static int NPySecObj_contains(PyObject *sec, PyObject *obj)
Definition: nrnpy_nrn.cpp:173
static PyObject * var_of_mech_iter(NPyMechObj *self)
Definition: nrnpy_nrn.cpp:1753
static long pyseg_hash(PyObject *self)
Definition: nrnpy_nrn.cpp:1026
static PyObject * NPyMechObj_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:401
PyObject * NPySecObj_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:347
static PyMethodDef NPyRangeVar_methods[]
Definition: nrnpy_nrn.cpp:2438
static PyObject * NPyRangeVar_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: nrnpy_nrn.cpp:417
static PyObject * allseg_of_sec_next(NPyAllSegOfSecIter *self)
Definition: nrnpy_nrn.cpp:1309
static PyType_Spec nrnpy_MechOfSegIterType_spec
Definition: nrnpy_nrn.h:89
static PyType_Slot nrnpy_MechOfSegIterType_slots[]
Definition: nrnpy_nrn.h:82
static PyType_Slot nrnpy_SegmentType_slots[]
Definition: nrnpy_nrn.h:59
static PyType_Spec nrnpy_VarOfMechIterType_spec
Definition: nrnpy_nrn.h:125
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:166
static PyType_Slot nrnpy_MechanismType_slots[]
Definition: nrnpy_nrn.h:97
static PyType_Spec nrnpy_MechanismType_spec
Definition: nrnpy_nrn.h:110
static PyType_Spec nrnpy_RangeType_spec
Definition: nrnpy_nrn.h:144
static PyType_Slot nrnpy_AllSegOfSecIterType_slots[]
Definition: nrnpy_nrn.h:26
static struct PyModuleDef nrnmodule
Definition: nrnpy_nrn.h:152
static PyType_Slot nrnpy_RangeType_slots[]
Definition: nrnpy_nrn.h:133
static PyType_Slot nrnpy_VarOfMechIterType_slots[]
Definition: nrnpy_nrn.h:118
static PyType_Slot nrnpy_SectionType_slots[]
Definition: nrnpy_nrn.h:1
static PyType_Spec nrnpy_SegmentType_spec
Definition: nrnpy_nrn.h:74
#define NULL
Definition: sptree.h:16