<s> from __future__ import absolute_import , print_function <EOL> from . c_spec import common_base_converter <EOL> from . c_spec import num_to_c_types <EOL> import numpy <EOL> num_typecode = { '<STR_LIT:?>' : '<STR_LIT>' , <EOL> '<STR_LIT:b>' : '<STR_LIT>' , <EOL> '<STR_LIT:B>' : '<STR_LIT>' , <EOL> '<STR_LIT:h>' : '<STR_LIT>' , <EOL> '<STR_LIT:H>' : '<STR_LIT>' , <EOL> '<STR_LIT:i>' : '<STR_LIT>' , <EOL> '<STR_LIT:I>' : '<STR_LIT>' , <EOL> '<STR_LIT:l>' : '<STR_LIT>' , <EOL> '<STR_LIT:L>' : '<STR_LIT>' , <EOL> '<STR_LIT:q>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:f>' : '<STR_LIT>' , <EOL> '<STR_LIT:d>' : '<STR_LIT>' , <EOL> '<STR_LIT:g>' : '<STR_LIT>' , <EOL> '<STR_LIT:F>' : '<STR_LIT>' , <EOL> '<STR_LIT:D>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' } <EOL> type_check_code = """<STR_LIT>""" <EOL> size_check_code = """<STR_LIT>""" <EOL> numeric_init_code = """<STR_LIT>""" <EOL> class array_converter ( common_base_converter ) : <EOL> def init_info ( self ) : <EOL> common_base_converter . init_info ( self ) <EOL> self . type_name = '<STR_LIT>' <EOL> self . check_func = '<STR_LIT>' <EOL> self . c_type = '<STR_LIT>' <EOL> self . return_type = '<STR_LIT>' <EOL> self . to_c_return = '<STR_LIT>' <EOL> self . matching_types = [ numpy . ndarray ] <EOL> self . headers = [ '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ] <EOL> self . support_code = [ size_check_code , type_check_code ] <EOL> self . module_init_code = [ numeric_init_code ] <EOL> def get_var_type ( self , value ) : <EOL> return value . dtype . char <EOL> def template_vars ( self , inline = <NUM_LIT:0> ) : <EOL> res = common_base_converter . template_vars ( self , inline ) <EOL> if hasattr ( self , '<STR_LIT>' ) : <EOL> res [ '<STR_LIT>' ] = num_to_c_types [ self . var_type ] <EOL> res [ '<STR_LIT>' ] = num_typecode [ self . var_type ] <EOL> res [ '<STR_LIT>' ] = self . name + "<STR_LIT>" <EOL> res [ '<STR_LIT>' ] = self . name . upper ( ) <EOL> return res <EOL> def declaration_code ( self , templatize = <NUM_LIT:0> , inline = <NUM_LIT:0> ) : <EOL> res = self . template_vars ( inline = inline ) <EOL> cap_name = self . name . upper ( ) <EOL> res [ '<STR_LIT>' ] = cap_name <EOL> code2 = '<STR_LIT>' '<STR_LIT>' '<STR_LIT>' '<STR_LIT>' <EOL> res [ '<STR_LIT>' ] = code2 % res <EOL> code = '<STR_LIT>' '<STR_LIT>' '<STR_LIT>' '<STR_LIT>' '<STR_LIT>' '<STR_LIT>' '<STR_LIT>' '<STR_LIT>' <EOL> code = code % res <EOL> self . __doundef = <NUM_LIT:1> <EOL> return code <EOL> def cleanup_code ( self ) : <EOL> code = common_base_converter . cleanup_code ( self ) <EOL> try : <EOL> if self . __doundef != <NUM_LIT:1> : <EOL> return code <EOL> cap_name = self . name . upper ( ) <EOL> newcode = "<STR_LIT>" "<STR_LIT>" % { '<STR_LIT>' : cap_name } <EOL> code = "<STR_LIT>" % ( code , newcode ) <EOL> except AttributeError : <EOL> pass <EOL> return code </s>
