Mercurial > repos > yufei-luo > s_mart
comparison commons/tools/srptCreateTable.py @ 18:94ab73e8a190
Uploaded
| author | m-zytnicki |
|---|---|
| date | Mon, 29 Apr 2013 03:20:15 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 17:b0e8584489e6 | 18:94ab73e8a190 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 | |
| 3 import os | |
| 4 import sys | |
| 5 import getopt | |
| 6 import ConfigParser | |
| 7 | |
| 8 from commons.core.sql.DbMySql import DbMySql | |
| 9 | |
| 10 | |
| 11 def help(): | |
| 12 print | |
| 13 print "usage: %s [ options ]" % ( sys.argv[0].split("/")[-1] ) | |
| 14 print "options:" | |
| 15 print " -h: this help" | |
| 16 print " -f: name of the input file" | |
| 17 print " -n: name of the MySQL table" | |
| 18 print " -t: table type (fasta|align|path|set|match|map|TEclassif|cluster)" | |
| 19 print " -o: overwrite (default=False)" | |
| 20 print " -c: configuration file from TEdenovo or TEannot pipeline" | |
| 21 print " -H: MySQL host (if no configuration file)" | |
| 22 print " -U: MySQL user (if no configuration file)" | |
| 23 print " -P: MySQL password (if no configuration file)" | |
| 24 print " -D: MySQL database (if no configuration file)" | |
| 25 print " -T: MySQL port (if no configuration file, default=3306)" | |
| 26 print " -v: verbose (default=0/1)" | |
| 27 print | |
| 28 | |
| 29 | |
| 30 def main(): | |
| 31 """ | |
| 32 This program loads data from a file into a MySQL table. | |
| 33 """ | |
| 34 filename = "" | |
| 35 tablename = "" | |
| 36 filetype = "" | |
| 37 overwrite = False | |
| 38 configFileName = "" | |
| 39 host = "" | |
| 40 user = "" | |
| 41 passwd = "" | |
| 42 dbname = "" | |
| 43 port = 0 | |
| 44 verbose = 0 | |
| 45 | |
| 46 try: | |
| 47 opts, args = getopt.getopt( sys.argv[1:], "hf:t:n:oc:H:U:P:D:T:v:" ) | |
| 48 except getopt.GetoptError, err: | |
| 49 sys.stderr.write( "%s\n" % str(err) ) | |
| 50 help() | |
| 51 sys.exit(1) | |
| 52 for o,a in opts: | |
| 53 if o == "-h": | |
| 54 help() | |
| 55 sys.exit(0) | |
| 56 elif o == "-f": | |
| 57 filename = a | |
| 58 elif o == "-n": | |
| 59 tablename = a | |
| 60 elif o == "-t": | |
| 61 filetype = a | |
| 62 elif o == "-o": | |
| 63 overwrite = True | |
| 64 elif o == "-c": | |
| 65 configFileName = a | |
| 66 elif o == "-H": | |
| 67 host = a | |
| 68 elif o == "-U": | |
| 69 user = a | |
| 70 elif o == "-P": | |
| 71 passwd = a | |
| 72 elif o == "-D": | |
| 73 dbname = a | |
| 74 elif o == "-T": | |
| 75 port = int(a) | |
| 76 elif o == "-v": | |
| 77 verbose = int(a) | |
| 78 | |
| 79 if filename == "" or tablename == "" or filetype == "": | |
| 80 print "ERROR: missing compulsory options" | |
| 81 help() | |
| 82 sys.exit(1) | |
| 83 | |
| 84 if configFileName != "": | |
| 85 config = ConfigParser.ConfigParser() | |
| 86 config.readfp( open(configFileName) ) | |
| 87 host = config.get("repet_env","repet_host") | |
| 88 user = config.get("repet_env","repet_user") | |
| 89 passwd = config.get("repet_env","repet_pw") | |
| 90 dbname = config.get("repet_env","repet_db") | |
| 91 port = config.get("repet_env","repet_port") | |
| 92 | |
| 93 if host == "" and os.environ.get( "REPET_HOST" ) != "": | |
| 94 host = os.environ.get( "REPET_HOST" ) | |
| 95 if user == "" and os.environ.get( "REPET_USER" ) != "": | |
| 96 user = os.environ.get( "REPET_USER" ) | |
| 97 if passwd == "" and os.environ.get( "REPET_PW" ) != "": | |
| 98 passwd = os.environ.get( "REPET_PW" ) | |
| 99 if dbname == "" and os.environ.get( "REPET_DB" ) != "": | |
| 100 dbname = os.environ.get( "REPET_DB" ) | |
| 101 if port == 0 and os.environ.get( "REPET_PORT" ) != "": | |
| 102 port = int( os.environ.get( "REPET_PORT" ) ) | |
| 103 | |
| 104 if host == "": | |
| 105 print "ERROR: missing host" | |
| 106 sys.exit(1) | |
| 107 if user == "": | |
| 108 print "ERROR: missing user" | |
| 109 sys.exit(1) | |
| 110 if passwd == "": | |
| 111 print "ERROR: missing password" | |
| 112 sys.exit(1) | |
| 113 if dbname == "": | |
| 114 print "ERROR: missing db name" | |
| 115 sys.exit(1) | |
| 116 if port == 0: | |
| 117 print "ERROR: missing port" | |
| 118 sys.exit(1) | |
| 119 | |
| 120 db = DbMySql(user, host, passwd, dbname, port ) | |
| 121 | |
| 122 if not os.path.exists( filename ): | |
| 123 print "ERROR: input file '%s' doesn't exist" % ( filename ) | |
| 124 sys.exit(1) | |
| 125 | |
| 126 db.createTable( tablename, filetype, filename, overwrite) | |
| 127 | |
| 128 db.close() | |
| 129 | |
| 130 return 0 | |
| 131 | |
| 132 | |
| 133 if __name__ == "__main__": | |
| 134 main() |
