def gen_sql_head(self, def_file=None): ''' gen_sql_head() -- Returns a dict. returns a dict contains the 'creat' sentences of each table according to the sdf-to-sql define file ''' result = {} pri_field = '' if def_file: dbd = dbdef(def_file) else: dbd = self.dbd for k, v in dbd.ordered_fields_dict.items(): if not k in result.keys(): result[k] = 'CREATE TABLE IF NOT EXISTS `%s` (\n' % k for k0 in v: comment_str = '%s' default_str = '%s' key_defs = dbd.key_defs_dict(k0.keys()[0]) if key_defs['COMMENT']: comment_str = " COMMENT '%s'" if key_defs['DEFAULT_VALUE']: default_str = " DEFAULT '%s'" string = "\t`%s` %s" + default_str + comment_str + ",\n" result[k] += string % ( key_defs['MYSQL_FIELD'], key_defs['MYSQL_FIELD_TYPE'], key_defs['DEFAULT_VALUE'], key_defs['COMMENT']) if key_defs['PIC'].startswith('INDEX'): ind_len = key_defs['PIC'].split(',')[1] if ind_len: result[k] += "\tINDEX (%s(%s)),\n" % ( key_defs['MYSQL_FIELD'], ind_len) else: result[ k] += "\tINDEX (%s),\n" % key_defs['MYSQL_FIELD'] elif key_defs['PIC'].startswith('PRIMARY'): pri_field = key_defs['MYSQL_FIELD'] result[ k] += '\tPRIMARY KEY (`%s`)\n' % pri_field + ') %s;\n' % dbd.table_args[ k] return result
def gen_sql_head(self, def_file=None): """ gen_sql_head() -- Returns a dict. returns a dict contains the 'creat' sentences of each table according to the sdf-to-sql define file """ result = {} pri_field = "" if def_file: dbd = dbdef(def_file) else: dbd = self.dbd for k, v in dbd.ordered_fields_dict.items(): if not k in result.keys(): result[k] = "CREATE TABLE IF NOT EXISTS `%s` (\n" % k for k0 in v: comment_str = "%s" default_str = "%s" key_defs = dbd.key_defs_dict(k0.keys()[0]) if key_defs["COMMENT"]: comment_str = " COMMENT '%s'" if key_defs["DEFAULT_VALUE"]: default_str = " DEFAULT '%s'" string = "\t`%s` %s" + default_str + comment_str + ",\n" result[k] += string % ( key_defs["MYSQL_FIELD"], key_defs["MYSQL_FIELD_TYPE"], key_defs["DEFAULT_VALUE"], key_defs["COMMENT"], ) if key_defs["PIC"].startswith("INDEX"): ind_len = key_defs["PIC"].split(",")[1] if ind_len: result[k] += "\tINDEX (%s(%s)),\n" % (key_defs["MYSQL_FIELD"], ind_len) else: result[k] += "\tINDEX (%s),\n" % key_defs["MYSQL_FIELD"] elif key_defs["PIC"].startswith("PRIMARY"): pri_field = key_defs["MYSQL_FIELD"] result[k] += "\tPRIMARY KEY (`%s`)\n" % pri_field + ") %s;\n" % dbd.table_args[k] return result
def __init__(self, env): ''' the sql class for sql string generating. args: env: dict, shoule contains keys as follows: Needed keys: 'DEF_FILE': the keys_to_sql_fields define file (eg. sdf2sql.def) 'MD5_OPENBABEL_CAN_SMI_KEY': the key of the md5_openbabel_can_smiles field 'FP_BITS_KEY': the key of the fp_bits (fingerprints bits) field 'SIMI_FIELD': the name of the similarity value shows out in the similarity search part 'PRI_FIELD': the name of the primary field Optional ones: 'NUM_H_KEY': the key of the NUM_H (number of element H) field ''' self.env = env self.dbd = dbdef(self.env['DEF_FILE']) self.recorded_fields_dict = self.dbd.recorded_fields_dict() self.def_dict = self.dbd.def_dict
def __init__(self, env): """ the sql class for sql string generating. args: env: dict, shoule contains keys as follows: Needed keys: 'DEF_FILE': the keys_to_sql_fields define file (eg. sdf2sql.def) 'MD5_OPENBABEL_CAN_SMI_KEY': the key of the md5_openbabel_can_smiles field 'FP_BITS_KEY': the key of the fp_bits (fingerprints bits) field 'SIMI_FIELD': the name of the similarity value shows out in the similarity search part 'PRI_FIELD': the name of the primary field Optional ones: 'NUM_H_KEY': the key of the NUM_H (number of element H) field """ self.env = env self.dbd = dbdef(self.env["DEF_FILE"]) self.recorded_fields_dict = self.dbd.recorded_fields_dict() self.def_dict = self.dbd.def_dict
def __init__(self, dbdef_file): self.dbdef = dbdef(dbdef_file)