summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Cournapeau <cournape@gmail.com>2009-10-08 13:51:55 +0000
committerDavid Cournapeau <cournape@gmail.com>2009-10-08 13:51:55 +0000
commitd27fe422c70e4c3b7fec250cfaa75febf3b859db (patch)
tree1d5bbcafd5b5b52073dffd129812328630eb1283
parentdc0960522dd532ef9916111ff4cc178c0a4bd489 (diff)
downloadnumpy-d27fe422c70e4c3b7fec250cfaa75febf3b859db.tar.gz
ENH: create a name -> *Api item dict.
This is the first step toward the actual cleaning of the code generation: we can now gradually generate __multiarray_api* file exclusively from the api dict in numpy_api.
-rw-r--r--numpy/core/code_generators/generate_numpy_api.py23
1 files changed, 21 insertions, 2 deletions
diff --git a/numpy/core/code_generators/generate_numpy_api.py b/numpy/core/code_generators/generate_numpy_api.py
index 14f98e78d..66f1ca01e 100644
--- a/numpy/core/code_generators/generate_numpy_api.py
+++ b/numpy/core/code_generators/generate_numpy_api.py
@@ -259,16 +259,35 @@ def do_generate_api(targets, sources):
init_list = []
# Check multiarray api indexes
- multiarray_api_dict = genapi2.merge_api_dicts((numpy_api.multiarray_funcs_api,
+ multiarray_api_index = genapi2.merge_api_dicts((numpy_api.multiarray_funcs_api,
numpy_api.multiarray_global_vars, numpy_api.multiarray_scalar_bool_values,
numpy_api.multiarray_types_api))
- genapi2.check_api_dict(multiarray_api_dict)
+ genapi2.check_api_dict(multiarray_api_index)
multiarray_funcs = numpy_api.multiarray_funcs_api
numpyapi_list = genapi2.get_api_functions('NUMPY_API',
multiarray_funcs)
ordered_funcs_api = genapi2.order_dict(multiarray_funcs)
+ # Create dict name -> *Api instance
+ multiarray_api_dict = {}
+ for f in numpyapi_list:
+ name = f.name
+ index = multiarray_funcs[name]
+ multiarray_api_dict[f.name] = FunctionApi(f.name, index, f.return_type, f.args)
+
+ for name, index in numpy_api.multiarray_global_vars.items():
+ type = numpy_api.multiarray_global_vars_types[name]
+ multiarray_api_dict[name] = GlobalVarApi(name, index, type)
+
+ for name, index in numpy_api.multiarray_scalar_bool_values.items():
+ multiarray_api_dict[name] = BoolValuesApi(name, index)
+
+ for name, index in numpy_api.multiarray_types_api.items():
+ multiarray_api_dict[name] = TypeApi(name, index, 'PyTypeObject')
+
+ assert len(multiarray_api_dict) == len(multiarray_api_index)
+
# XXX: pop up the first function as it is used only here, not for the .c
# file nor doc (for now). This is a temporary hack to generate file as
# similar as before for easier comparison and should be removed once we