def write_row(self, file, cols): for file_col in cols: string_null = file_col.text_if_null if file_col.text_if_null is not None else utils.NULL_STR num_null = file_col.text_if_null if file_col.text_if_null is not None else utils.NULL_NUM if file_col.is_desc: utils.write_desc_string(file, file_col.value) elif file_col.padding_override is not None: if isinstance(file_col.value, int): utils.write_int(file, file_col.value, default_pad=file_col.padding_override, direction=file_col.direction) elif isinstance(file_col.value, float): utils.write_num(file, file_col.value, default_pad=file_col.padding_override, direction=file_col.direction, text_if_null=num_null, use_non_zero_min=file_col.use_non_zero_min) else: utils.write_string(file, file_col.value, default_pad=file_col.padding_override, direction=file_col.direction, text_if_null=string_null) elif isinstance(file_col.value, int): utils.write_int(file, file_col.value, direction=file_col.direction) elif isinstance(file_col.value, float): utils.write_num(file, file_col.value, direction=file_col.direction, text_if_null=num_null, use_non_zero_min=file_col.use_non_zero_min) elif isinstance(file_col.value, bool): utils.write_bool_yn(file, file_col.value, direction=file_col.direction, text_if_null=num_null) else: utils.write_string(file, file_col.value, direction=file_col.direction, text_if_null=string_null)
def write(self): table = db.Plant_ini order_by = db.Plant_ini.id if table.select().count() > 0: with open(self.file_name, 'w') as file: file.write(self.get_meta_line()) file.write(utils.string_pad("pcom_name", direction="left")) file.write(utils.int_pad("plt_cnt")) file.write(utils.int_pad("rot_yr_ini")) file.write( utils.string_pad("plt_name", default_pad=utils.DEFAULT_KEY_PAD)) file.write(utils.code_pad("lc_status")) file.write(utils.num_pad("lai_init")) file.write(utils.num_pad("bm_init")) file.write(utils.num_pad("phu_init")) file.write(utils.num_pad("plnt_pop")) file.write(utils.num_pad("yrs_init")) file.write(utils.num_pad("rsd_init")) file.write("\n") for row in table.select().order_by(order_by): file.write(utils.string_pad(row.name, direction="left")) file.write(utils.int_pad(row.plants.count())) file.write(utils.int_pad(row.rot_yr_ini)) file.write("\n") for plant in row.plants: file.write(utils.string_pad("", text_if_null="")) file.write( utils.string_pad( "", text_if_null="", default_pad=utils.DEFAULT_INT_PAD)) file.write(utils.key_name_pad(plant.plnt_name)) utils.write_bool_yn(file, plant.lc_status) file.write(utils.num_pad(plant.lai_init)) file.write(utils.num_pad(plant.bm_init)) file.write(utils.num_pad(plant.phu_init)) file.write(utils.num_pad(plant.plnt_pop)) file.write(utils.num_pad(plant.yrs_init)) file.write(utils.num_pad(plant.rsd_init)) file.write("\n")
def write(self): table = db.Print_prt if table.select().count() > 0: row = table.select().first() with open(self.file_name, 'w') as file: self.write_meta_line(file) header_cols = [col(table.nyskip, direction="left", padding_override=10), col(table.day_start, direction="left"), col(table.yrc_start, direction="left"), col(table.day_end, direction="left"), col(table.yrc_end, direction="left"), col(table.interval, direction="left")] self.write_headers(file, header_cols) file.write("\n") row_cols = [col(row.nyskip, direction="left", padding_override=10), col(row.day_start, direction="left"), col(row.yrc_start, direction="left"), col(row.day_end, direction="left"), col(row.yrc_end, direction="left"), col(row.interval, direction="left")] self.write_row(file, row_cols) file.write("\n") aa_int_cnt = len(row.aa_ints) file.write(utils.int_pad("aa_int_cnt", default_pad=10, direction="left")) file.write("\n") file.write(utils.int_pad(aa_int_cnt, default_pad=10, direction="left")) if aa_int_cnt > 0: for aa_int in row.aa_ints: file.write(utils.int_pad(aa_int, direction="left")) file.write("\n") header_cols = [col(table.csvout, direction="left"), col(table.dbout, direction="left"), col(table.cdfout, direction="left")] self.write_headers(file, header_cols) file.write("\n") utils.write_bool_yn(file, row.csvout, direction="left") utils.write_bool_yn(file, row.dbout, direction="left") utils.write_bool_yn(file, row.cdfout, direction="left") file.write("\n") header_cols = [col(table.soilout, direction="left"), col(table.mgtout, direction="left"), col(table.hydcon, direction="left"), col(table.fdcout, direction="left")] self.write_headers(file, header_cols) file.write("\n") utils.write_bool_yn(file, row.soilout, direction="left") utils.write_bool_yn(file, row.mgtout, direction="left") utils.write_bool_yn(file, row.hydcon, direction="left") utils.write_bool_yn(file, row.fdcout, direction="left") file.write("\n") obj_table = db.Print_prt_object header_cols = [col("objects", not_in_db=True, direction="left"), col(obj_table.daily), col(obj_table.monthly), col(obj_table.yearly), col(obj_table.avann)] self.write_headers(file, header_cols) file.write("\n") for obj in row.objects.order_by(obj_table.id): utils.write_string(file, obj.name, direction="left") utils.write_bool_yn(file, obj.daily) utils.write_bool_yn(file, obj.monthly) utils.write_bool_yn(file, obj.yearly) utils.write_bool_yn(file, obj.avann) file.write("\n")
def write(self): table = db.Codes_sft if table.select().count() > 0: row = table.select().first() with open(self.file_name, 'w') as file: self.write_meta_line(file) header_cols = [ col(table.hyd_hru, direction="left"), col(table.hyd_hrulte, direction="left"), col(table.plnt, direction="left"), col(table.sed, direction="left"), col(table.nut, direction="left"), col(table.ch_sed, direction="left"), col(table.ch_nut, direction="left"), col(table.res, direction="left") ] self.write_headers(file, header_cols) file.write("\n") utils.write_bool_yn(file, row.hyd_hru, direction="left") utils.write_bool_yn(file, row.hyd_hrulte, direction="left") utils.write_bool_yn(file, row.plnt, direction="left") utils.write_bool_yn(file, row.sed, direction="left") utils.write_bool_yn(file, row.nut, direction="left") utils.write_bool_yn(file, row.ch_sed, direction="left") utils.write_bool_yn(file, row.ch_nut, direction="left") utils.write_bool_yn(file, row.res, direction="left") file.write("\n")