<s> """<STR_LIT>""" <EOL> from __future__ import print_function <EOL> import os <EOL> from pandas . compat import StringIO <EOL> import numpy as np <EOL> _int64_max = np . iinfo ( np . int64 ) . max <EOL> warning_to_new_contributors = """<STR_LIT>""" <EOL> header = """<STR_LIT>""" <EOL> inner_take_1d_template = """<STR_LIT>""" <EOL> take_1d_template = """<STR_LIT>""" + inner_take_1d_template + """<STR_LIT>""" + inner_take_1d_template <EOL> inner_take_2d_axis0_template = """<STR_LIT>""" <EOL> take_2d_axis0_template = """<STR_LIT>""" + inner_take_2d_axis0_template + """<STR_LIT>""" + inner_take_2d_axis0_template <EOL> inner_take_2d_axis1_template = """<STR_LIT>""" <EOL> take_2d_axis1_template = """<STR_LIT>""" + inner_take_2d_axis1_template + """<STR_LIT>""" + inner_take_2d_axis1_template <EOL> take_2d_multi_template = """<STR_LIT>""" <EOL> """<STR_LIT>""" <EOL> backfill_template = """<STR_LIT>""" <EOL> pad_template = """<STR_LIT>""" <EOL> pad_1d_template = """<STR_LIT>""" <EOL> pad_2d_template = """<STR_LIT>""" <EOL> backfill_2d_template = """<STR_LIT>""" <EOL> backfill_1d_template = """<STR_LIT>""" <EOL> diff_2d_template = """<STR_LIT>""" <EOL> is_monotonic_template = '''<STR_LIT>''' <EOL> map_indices_template = '''<STR_LIT>''' <EOL> groupby_template = '''<STR_LIT>''' <EOL> group_last_template = '''<STR_LIT>''' <EOL> group_nth_template = '''<STR_LIT>''' <EOL> group_add_template = '''<STR_LIT>''' <EOL> group_prod_template = '''<STR_LIT>''' <EOL> group_var_template = '''<STR_LIT>''' <EOL> group_max_template = '''<STR_LIT>''' <EOL> group_min_template = '''<STR_LIT>''' <EOL> group_mean_template = '''<STR_LIT>''' <EOL> group_ohlc_template = '''<STR_LIT>''' <EOL> arrmap_template = '''<STR_LIT>''' <EOL> left_join_unique_template = '''<STR_LIT>''' <EOL> left_join_template = '''<STR_LIT>''' <EOL> inner_join_template = '''<STR_LIT>''' <EOL> outer_join_template2 = '''<STR_LIT>''' <EOL> outer_join_template = '''<STR_LIT>''' <EOL> ensure_dtype_template = """<STR_LIT>""" <EOL> ensure_functions = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ] <EOL> def generate_ensure_dtypes ( ) : <EOL> output = StringIO ( ) <EOL> for name , ctype , dtype in ensure_functions : <EOL> filled = ensure_dtype_template % locals ( ) <EOL> output . write ( filled ) <EOL> return output . getvalue ( ) <EOL> put2d_template = """<STR_LIT>""" <EOL> grouping_no_template = '''<STR_LIT>''' <EOL> def generate_put_template ( template , use_ints = True , use_floats = True , <EOL> use_objects = False , use_datelikes = False ) : <EOL> floats_list = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ] <EOL> ints_list = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ] <EOL> date_like_list = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ] <EOL> object_list = [ ( '<STR_LIT:object>' , '<STR_LIT:object>' , '<STR_LIT:object>' , '<STR_LIT>' , False ) ] <EOL> function_list = [ ] <EOL> if use_floats : <EOL> function_list . extend ( floats_list ) <EOL> if use_ints : <EOL> function_list . extend ( ints_list ) <EOL> if use_objects : <EOL> function_list . extend ( object_list ) <EOL> if use_datelikes : <EOL> function_list . extend ( date_like_list ) <EOL> output = StringIO ( ) <EOL> for name , c_type , dest_type , dest_dtype , nogil in function_list : <EOL> func = template % { '<STR_LIT:name>' : name , <EOL> '<STR_LIT>' : c_type , <EOL> '<STR_LIT>' : dest_type . replace ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : dest_type , <EOL> '<STR_LIT>' : dest_dtype , <EOL> '<STR_LIT>' : '<STR_LIT>' if nogil else '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:U+0020>' if nogil else '<STR_LIT>' } <EOL> output . write ( func ) <EOL> output . write ( "<STR_LIT:\n>" ) <EOL> return output . getvalue ( ) <EOL> def generate_put_min_max_template ( template , use_ints = True , use_floats = True , <EOL> use_objects = False , use_datelikes = False ) : <EOL> floats_list = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ] <EOL> ints_list = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , _int64_max , True ) , <EOL> ] <EOL> date_like_list = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , _int64_max , True ) , <EOL> ] <EOL> object_list = [ ( '<STR_LIT:object>' , '<STR_LIT:object>' , '<STR_LIT>' , '<STR_LIT>' , False ) ] <EOL> function_list = [ ] <EOL> if use_floats : <EOL> function_list . extend ( floats_list ) <EOL> if use_ints : <EOL> function_list . extend ( ints_list ) <EOL> if use_objects : <EOL> function_list . extend ( object_list ) <EOL> if use_datelikes : <EOL> function_list . extend ( date_like_list ) <EOL> output = StringIO ( ) <EOL> for name , dest_type , nan_val , inf_val , nogil in function_list : <EOL> func = template % { '<STR_LIT:name>' : name , <EOL> '<STR_LIT>' : dest_type , <EOL> '<STR_LIT>' : nan_val , <EOL> '<STR_LIT>' : inf_val , <EOL> '<STR_LIT>' : "<STR_LIT>" if nogil else '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:U+0020>' if nogil else '<STR_LIT>' } <EOL> output . write ( func ) <EOL> output . write ( "<STR_LIT:\n>" ) <EOL> return output . getvalue ( ) <EOL> def generate_put_selection_template ( template , use_ints = True , use_floats = True , <EOL> use_objects = False , use_datelikes = False ) : <EOL> floats_list = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ] <EOL> ints_list = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ] <EOL> date_like_list = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True ) , <EOL> ] <EOL> object_list = [ ( '<STR_LIT:object>' , '<STR_LIT:object>' , '<STR_LIT:object>' , '<STR_LIT>' , False ) ] <EOL> function_list = [ ] <EOL> if use_floats : <EOL> function_list . extend ( floats_list ) <EOL> if use_ints : <EOL> function_list . extend ( ints_list ) <EOL> if use_objects : <EOL> function_list . extend ( object_list ) <EOL> if use_datelikes : <EOL> function_list . extend ( date_like_list ) <EOL> output = StringIO ( ) <EOL> for name , c_type , dest_type , nan_val , nogil in function_list : <EOL> if nogil : <EOL> nogil = "<STR_LIT>" <EOL> tab = '<STR_LIT:U+0020>' <EOL> else : <EOL> nogil = '<STR_LIT>' <EOL> tab = '<STR_LIT>' <EOL> func = template % { '<STR_LIT:name>' : name , <EOL> '<STR_LIT>' : c_type , <EOL> '<STR_LIT>' : dest_type , <EOL> '<STR_LIT>' : nan_val , <EOL> '<STR_LIT>' : nogil , <EOL> '<STR_LIT>' : tab } <EOL> output . write ( func ) <EOL> output . write ( "<STR_LIT:\n>" ) <EOL> return output . getvalue ( ) <EOL> def generate_take_template ( template , exclude = None ) : <EOL> function_list = [ <EOL> ( '<STR_LIT:bool>' , '<STR_LIT:bool>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True , True ) , <EOL> ( '<STR_LIT:bool>' , '<STR_LIT:object>' , '<STR_LIT>' , '<STR_LIT:object>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , False , False ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True , False ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True , True ) , <EOL> ( '<STR_LIT:object>' , '<STR_LIT:object>' , '<STR_LIT:object>' , '<STR_LIT:object>' , '<STR_LIT>' , '<STR_LIT>' , False , False ) , <EOL> ] <EOL> output = StringIO ( ) <EOL> for ( name , dest , c_type_in , c_type_out , <EOL> preval , postval , can_copy , nogil ) in function_list : <EOL> if exclude is not None and name in exclude : <EOL> continue <EOL> if nogil : <EOL> nogil = "<STR_LIT>" <EOL> tab = '<STR_LIT:U+0020>' <EOL> else : <EOL> nogil = '<STR_LIT>' <EOL> tab = '<STR_LIT>' <EOL> func = template % { '<STR_LIT:name>' : name , '<STR_LIT>' : dest , <EOL> '<STR_LIT>' : c_type_in , '<STR_LIT>' : c_type_out , <EOL> '<STR_LIT>' : preval , '<STR_LIT>' : postval , <EOL> '<STR_LIT>' : '<STR_LIT:True>' if can_copy else '<STR_LIT:False>' , <EOL> '<STR_LIT>' : nogil , <EOL> '<STR_LIT>' : tab } <EOL> output . write ( func ) <EOL> output . write ( "<STR_LIT:\n>" ) <EOL> return output . getvalue ( ) <EOL> def generate_from_template ( template , exclude = None ) : <EOL> function_list = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , True , True ) , <EOL> ( '<STR_LIT:object>' , '<STR_LIT:object>' , '<STR_LIT:object>' , True , False ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) , <EOL> ( '<STR_LIT:bool>' , '<STR_LIT>' , '<STR_LIT>' , False , True ) <EOL> ] <EOL> output = StringIO ( ) <EOL> for name , c_type , dtype , can_hold_na , nogil in function_list : <EOL> if exclude is not None and name in exclude : <EOL> continue <EOL> func = template % { '<STR_LIT:name>' : name , '<STR_LIT>' : c_type , <EOL> '<STR_LIT>' : dtype , <EOL> '<STR_LIT>' : '<STR_LIT:False>' if can_hold_na else '<STR_LIT:True>' , <EOL> '<STR_LIT>' : '<STR_LIT>' if nogil else '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:U+0020>' if nogil else '<STR_LIT>' } <EOL> output . write ( func ) <EOL> output . write ( "<STR_LIT:\n>" ) <EOL> return output . getvalue ( ) <EOL> put_2d = [ diff_2d_template ] <EOL> groupbys = [ group_add_template , <EOL> group_prod_template , <EOL> group_var_template , <EOL> group_mean_template , <EOL> group_ohlc_template ] <EOL> groupby_selection = [ group_last_template , <EOL> group_nth_template ] <EOL> groupby_min_max = [ group_min_template , <EOL> group_max_template ] <EOL> templates_1d = [ map_indices_template , <EOL> pad_template , <EOL> backfill_template , <EOL> pad_1d_template , <EOL> backfill_1d_template , <EOL> pad_2d_template , <EOL> backfill_2d_template , <EOL> is_monotonic_template , <EOL> groupby_template , <EOL> arrmap_template ] <EOL> nobool_1d_templates = [ left_join_unique_template , <EOL> left_join_template , <EOL> outer_join_template2 , <EOL> inner_join_template ] <EOL> take_templates = [ take_1d_template , <EOL> take_2d_axis0_template , <EOL> take_2d_axis1_template , <EOL> take_2d_multi_template ] <EOL> def generate_take_cython_file ( ) : <EOL> directory = os . path . dirname ( os . path . realpath ( __file__ ) ) <EOL> filename = '<STR_LIT>' <EOL> path = os . path . join ( directory , filename ) <EOL> with open ( path , '<STR_LIT:w>' ) as f : <EOL> print ( warning_to_new_contributors , file = f ) <EOL> print ( header , file = f ) <EOL> print ( generate_ensure_dtypes ( ) , file = f ) <EOL> for template in templates_1d : <EOL> print ( generate_from_template ( template ) , file = f ) <EOL> for template in take_templates : <EOL> print ( generate_take_template ( template ) , file = f ) <EOL> for template in put_2d : <EOL> print ( generate_put_template ( template ) , file = f ) <EOL> for template in groupbys : <EOL> print ( generate_put_template ( template , use_ints = False ) , file = f ) <EOL> for template in groupby_selection : <EOL> print ( generate_put_selection_template ( template , use_ints = True ) , <EOL> file = f ) <EOL> for template in groupby_min_max : <EOL> print ( generate_put_min_max_template ( template , use_ints = True ) , <EOL> file = f ) <EOL> print ( grouping_no_template , file = f ) <EOL> for template in nobool_1d_templates : <EOL> print ( generate_from_template ( template , exclude = [ '<STR_LIT:bool>' ] ) , file = f ) <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> generate_take_cython_file ( ) </s>
