Skip to content

Commit be085f7

Browse files
committed
preliminary integration of ArrayMap
1 parent d837a91 commit be085f7

File tree

4 files changed

+2792
-2
lines changed

4 files changed

+2792
-2
lines changed

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def get_ext_dir(*components: tp.Iterable[str]) -> tp.Sequence[str]:
4040
'src/delimited_to_arrays.c',
4141
'src/methods.c',
4242
'src/tri_map.c',
43+
'src/auto_map.c',
4344
],
4445
include_dirs=get_ext_dir('numpy', '_core', 'include') + ['src'],
4546
library_dirs=get_ext_dir('numpy', '_core', 'lib'),

src/_arraykit.c

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
# include "delimited_to_arrays.h"
1212
# include "methods.h"
1313
# include "tri_map.h"
14+
# include "auto_map.h"
1415

1516
static PyMethodDef arraykit_methods[] = {
1617
{"immutable_filter", immutable_filter, METH_O, NULL},
@@ -85,6 +86,15 @@ PyInit__arraykit(void)
8586
return NULL;
8687
}
8788

89+
NonUniqueError = PyErr_NewExceptionWithDoc(
90+
"arraykit.NonUniqueError",
91+
"ValueError for non-unique values.",
92+
PyExc_ValueError,
93+
NULL);
94+
if (NonUniqueError == NULL) {
95+
return NULL;
96+
}
97+
8898
PyObject *copy = PyImport_ImportModule("copy");
8999
if (copy == NULL) {
90100
return NULL;
@@ -107,12 +117,19 @@ PyInit__arraykit(void)
107117
PyType_Ready(&BIIterBlockType) ||
108118
PyType_Ready(&TriMapType) ||
109119
PyType_Ready(&ArrayGOType) ||
120+
PyType_Ready(&AMType) ||
121+
PyType_Ready(&FAMIType) ||
122+
PyType_Ready(&FAMVType) ||
123+
PyType_Ready(&FAMType) ||
110124
PyModule_AddObject(m, "BlockIndex", (PyObject *) &BlockIndexType) ||
111125
PyModule_AddObject(m, "TriMap", (PyObject *) &TriMapType) ||
112126
PyModule_AddObject(m, "ArrayGO", (PyObject *) &ArrayGOType) ||
113127
PyModule_AddObject(m, "deepcopy", deepcopy) ||
114-
PyModule_AddObject(m, "ErrorInitTypeBlocks", ErrorInitTypeBlocks)
115-
){
128+
PyModule_AddObject(m, "ErrorInitTypeBlocks", ErrorInitTypeBlocks) ||
129+
PyModule_AddObject(m, "AutoMap", (PyObject *)&AMType) ||
130+
PyModule_AddObject(m, "FrozenAutoMap", (PyObject *)&FAMType) ||
131+
PyModule_AddObject(m, "NonUniqueError", NonUniqueError)
132+
){
116133
Py_DECREF(deepcopy);
117134
Py_XDECREF(m);
118135
return NULL;

0 commit comments

Comments
 (0)