diff options
author | David Cournapeau <cournape@gmail.com> | 2009-10-08 13:51:55 +0000 |
---|---|---|
committer | David Cournapeau <cournape@gmail.com> | 2009-10-08 13:51:55 +0000 |
commit | d27fe422c70e4c3b7fec250cfaa75febf3b859db (patch) | |
tree | 1d5bbcafd5b5b52073dffd129812328630eb1283 | |
parent | dc0960522dd532ef9916111ff4cc178c0a4bd489 (diff) | |
download | numpy-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.py | 23 |
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 |