def main(): print ('Cmd: %s' % ' '.join(sys.argv)) # TODO: Option to treat files with -f, --format as LAS, LIS, AUTO # TODO: Depth scale overrides -s, --scale ? optParser = CmnCmdOpts.argParserInOut( 'Generates SVG plot(s) from input LIS & LAS file/directory to an output file/directory.', prog=None, version=__version__, ) optParser.add_argument("-A", "--API", action="store_true", dest="apiHeader", default=False, help="Put an API header on each plot. [default: False]") optParser.add_argument("-x", "--xml", action="append", dest="LgFormat", default=[], help="Use XML LgFormat UniqueId to use for plotting (additive)." \ +" Use -x? to see what LgFormats (UniqueID+Description) are available." \ +" Use -x?? to see what curves each format can plot. See also -X. [default: []]") optParser.add_argument( "-X", "--XML", type=int, dest="LgFormat_min", default=0, help="Use any LgFormat XML plots that use n or more outputs. If -x option present limited by those LgFormats [default: 0]" ) # optParser.add_argument("-f", "--file-type", choices=['LAS', 'LIS', 'AUTO'], # help="File format to assume for the input, AUTO will do it's best. [default: \"AUTO\"].") optParser.add_argument("-s", "--scale", action="append", type=int, dest="scale", default=0, help="Scale of X axis to use (an integer). [default: 0].") myOptNs = optParser.parse_args() clkStart = time.clock() timStart = time.time() # Initialise logging etc. logging.basicConfig(level=myOptNs.logLevel, format='%(asctime)s %(levelname)-8s %(message)s', #datefmt='%y-%m-%d % %H:%M:%S', stream=sys.stdout) # Your code here if '?' in ''.join(myOptNs.LgFormat): # Handle -x? here and exit myFg = FILMCfgXML.FilmCfgXMLRead() print('XML LgFormats available: [{:d}]'.format(len(myFg.keys()))) print(myFg.longStr(''.join(myOptNs.LgFormat).count('?'))) return 1 if myOptNs.jobs == CmnCmdOpts.DEFAULT_OPT_MP_JOBS: myPlp = PlotLogPasses( myOptNs.pathIn, myOptNs.pathOut, myOptNs, ) myResult = myPlp.plotLogInfo else: myResult = plotLogPassesMP( myOptNs.pathIn, myOptNs.pathOut, myOptNs, ) if os.path.isdir(myOptNs.pathOut): myResult.writeHTML(os.path.join(myOptNs.pathOut, 'index.html'), myOptNs.pathIn) print('plotLogInfo', str(myResult)) print(' CPU time = %8.3f (S)' % (time.clock() - clkStart)) print('Exec. time = %8.3f (S)' % (time.time() - timStart)) print('Bye, bye!') return 0
def test_23(self): """TestCmnCmdOpts.test_23(): basic use of CmnCmdOpts.argParserInOut() with -h option.""" myP = CmnCmdOpts.argParserInOut("Description", "Program", "Version") myNs = myP.parse_args(['IN', 'OUT']) self.assertEqual('IN', myNs.pathIn) self.assertEqual('OUT', myNs.pathOut) try: print() myNs = myP.parse_args(['-h',]) self.fail('SystemExit not raised: %s' % myNs) except SystemExit: pass
def test_24(self): """TestCmnCmdOpts.test_24(): basic use of CmnCmdOpts.argParserInOut() format_usage() and format_help().""" myP = CmnCmdOpts.argParserInOut("Description", "Program", "Version") myNs = myP.parse_args(['IN', 'OUT']) self.assertEqual('IN', myNs.pathIn) self.assertEqual('OUT', myNs.pathOut) # print() # print(dir(myP)) # print(dir(myNs)) # print(myNs._get_args()) # print(myNs._get_kwargs()) # print(myP.format_usage()) # print(myP.format_help()) self.assertEqual( """usage: Program [-h] [--version] [-j JOBS] [-k] [-l LOGLEVEL] [-g] [-r] in out """, myP.format_usage()) self.assertEqual( """usage: Program [-h] [--version] [-j JOBS] [-k] [-l LOGLEVEL] [-g] [-r] in out Description positional arguments: in Input path. out Output path. optional arguments: -h, --help show this help message and exit --version show program's version number and exit -j JOBS, --jobs JOBS Max processes when multiprocessing. Zero uses number of native CPUs [8]. -1 disables multiprocessing. Default: -1. -k, --keep-going Keep going as far as sensible. Default: False. -l LOGLEVEL, --loglevel LOGLEVEL Log Level (debug=10, info=20, warning=30, error=40, critical=50). Default: 40. -g, --glob File match pattern. Default: None. -r, --recursive Process input recursively. Default: False. Copyright (c) 2010-2012 Paul Ross. All rights reserved. """, myP.format_help())
def test_22(self): """TestCmnCmdOpts.test_22(): basic use of CmnCmdOpts.argParserInOut().""" myP = CmnCmdOpts.argParserInOut("Description", "Program", "Version") myNs = myP.parse_args(['IN', 'OUT']) self.assertEqual('IN', myNs.pathIn) self.assertEqual('OUT', myNs.pathOut)