Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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
Esempio n. 4
0
    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
Esempio n. 5
0
 def __init__(self, dbdef_file):
     self.dbdef = dbdef(dbdef_file)
Esempio n. 6
0
 def __init__(self, dbdef_file):
     self.dbdef = dbdef(dbdef_file)