erange version 4.0a dev release
[erange.git] / rdsmetadata.py
index 1ac458b43540963680b8a9f0315c3648c49dc543..fc25dfdd024e56910e6f745df064e0b5bddfcccf 100755 (executable)
@@ -10,9 +10,10 @@ except:
 
 import sys
 import optparse
-from commoncode import readDataset
+import ReadDataset
+from commoncode import getConfigParser, getConfigBoolOption, getConfigIntOption
 
-print "%prog: version 2.7"
+print "rdsmetadata: version 2.8"
 
 
 def main(argv=None):
@@ -21,19 +22,7 @@ def main(argv=None):
 
     usage = "usage: python %prog rdsfile [propertyName1::propertyValue1] ... [propertyNameN::propertyValueN] [options]"
 
-    parser = optparse.OptionParser(usage=usage)
-    parser.add_option("--defaultcache", type="int", dest="cacheVal")
-    parser.add_option("--index", action="store_true", dest="buildIndex")
-    parser.add_option("--dropindex", action="store_true", dest="dropIndex")
-    parser.add_option("--nocount", action="store_false", dest="doCount")
-    parser.add_option("--complexity", action="store_true", dest="doComplexity")
-    parser.add_option("--reset", action="store_true", dest="resetFlags")
-    parser.add_option("--initrna", action="store_true", dest="rnaDataType")
-    parser.add_option("--cache", type="int", dest="cachePages")
-    parser.set_defaults(cacheVal=0, buildIndex=False, dropIndex=False, doCount=True,
-                        doComplexity=False, resetFlags=False, rnaDataType=False,
-                        cachePages=-1)
-
+    parser = makeParser(usage)
     (options, args) = parser.parse_args(argv[1:])
 
     if len(args) < 1:
@@ -55,6 +44,35 @@ def main(argv=None):
                 options.resetFlags, options.rnaDataType, options.cachePages)
 
 
+def makeParser(usage=""):
+    parser = optparse.OptionParser(usage=usage)
+    parser.add_option("--defaultcache", type="int", dest="cacheVal")
+    parser.add_option("--index", action="store_true", dest="buildIndex")
+    parser.add_option("--dropindex", action="store_true", dest="dropIndex")
+    parser.add_option("--nocount", action="store_false", dest="doCount")
+    parser.add_option("--complexity", action="store_true", dest="doComplexity")
+    parser.add_option("--reset", action="store_true", dest="resetFlags")
+    parser.add_option("--initrna", action="store_true", dest="rnaDataType")
+    parser.add_option("--cache", type="int", dest="cachePages")
+
+    configParser = getConfigParser()
+    section = "rdsmetadata"
+    cacheVal = getConfigIntOption(configParser, section, "cacheVal", 0)
+    buildIndex = getConfigBoolOption(configParser, section, "buildIndex", False)
+    dropIndex = getConfigBoolOption(configParser, section, "dropIndex", False)
+    doCount = getConfigBoolOption(configParser, section, "doCount", True)
+    doComplexity = getConfigBoolOption(configParser, section, "doComplexity", False)
+    resetFlags = getConfigBoolOption(configParser, section, "resetFlags", False)
+    rnaDataType = getConfigBoolOption(configParser, section, "rnaDataType", False)
+    cachePages = getConfigIntOption(configParser, section, "cachePages", -1)
+
+    parser.set_defaults(cacheVal=cacheVal, buildIndex=buildIndex, dropIndex=dropIndex, doCount=doCount,
+                        doComplexity=doComplexity, resetFlags=resetFlags, rnaDataType=rnaDataType,
+                        cachePages=cachePages)
+
+    return parser
+
+
 def rdsmetadata(datafile, propertyList=[], cacheVal=0, buildIndex=False,
                 dropIndex=False, doCount=True, doComplexity=False, resetFlags=False,
                 rnaDataType=False, cachePages=-1):
@@ -64,9 +82,9 @@ def rdsmetadata(datafile, propertyList=[], cacheVal=0, buildIndex=False,
         doCache = True
 
     if rnaDataType:
-        rds = readDataset(datafile, initialize=True, datasetType="RNA", verbose=True, cache=doCache)
+        rds = ReadDataset.ReadDataset(datafile, initialize=True, datasetType="RNA", verbose=True, cache=doCache)
     else:
-        rds = readDataset(datafile, verbose=True, reportCount=doCount, cache=doCache)
+        rds = ReadDataset.ReadDataset(datafile, verbose=True, reportCount=doCount, cache=doCache)
 
     if cachePages > rds.getDefaultCacheSize():
         rds.setDBcache(cachePages)