def write(self): table = db.Graze_ops order_by = db.Graze_ops.id if table.select().count() > 0: with open(self.file_name, 'w') as file: file.write(self.get_meta_line()) cols = [col(table.name, direction="left"), col(table.fert), col(table.bm_eat), col(table.bm_tramp), col(table.man_amt), col(table.grz_bm_min), col(table.description, is_desc=True)] self.write_headers(file, cols) file.write("\n") for row in table.select().order_by(order_by): file.write(utils.string_pad(row.name, direction="left")) file.write(utils.key_name_pad(row.fert)) file.write(utils.num_pad(row.bm_eat)) file.write(utils.num_pad(row.bm_tramp)) file.write(utils.num_pad(row.man_amt)) file.write(utils.num_pad(row.grz_bm_min)) utils.write_desc_string(file, row.description) file.write("\n")
def write_headers(self, file, cols): for file_col in cols: if file_col.not_in_db: if file_col.padding_override is not None: utils.write_string(file, file_col.value, default_pad=file_col.padding_override, direction=file_col.direction) else: utils.write_string(file, file_col.value, direction=file_col.direction) else: db_col = file_col.value name = db_col.name # if not file_col.is_desc: if file_col.alt_header_name != "": name = file_col.alt_header_name elif file_col.query_alias != "": name = file_col.query_alias elif db_col.verbose_name is not None: name = db_col.verbose_name name = name.lower() if file_col.repeat is not None: name += str(file_col.repeat) if file_col.is_desc: utils.write_desc_string(file, name) elif file_col.padding_override is not None: utils.write_string(file, name, default_pad=file_col.padding_override, direction=file_col.direction) elif isinstance(db_col, ForeignKeyField): utils.write_string(file, name, direction=file_col.direction) elif isinstance(db_col, IntegerField): utils.write_int(file, name, direction=file_col.direction) elif isinstance(db_col, DoubleField): utils.write_num(file, name, direction=file_col.direction) elif isinstance(db_col, BooleanField): utils.write_code(file, name, direction=file_col.direction) else: utils.write_string(file, name, direction=file_col.direction)
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)