def test_20(self):
     """TestCmnCmdOpts.test_12(): basic use of CmnCmdOpts.argParserIn()."""
     myP = CmnCmdOpts.argParserIn("Description", "Program", "Version")
     myNs = myP.parse_args(['IN',])
     self.assertEqual('IN', myNs.pathIn)
     self.assertFalse(myNs.recursive)
     self.assertTrue(myNs.glob is None)
Example #2
0
 def test_12(self):
     """TestCmnCmdOpts.test_12(): use of CmnCmdOpts.argParser() and adding scale option as a list of integers."""
     myP = CmnCmdOpts.argParser("Description", "Program", "Version")
     myP.add_argument(
         "-s",
         "--scale",
         action="append",
         type=int,
         dest="scales",
         default=[],
         help="Scale of X axis to use (additive). [default: []].")
     myNs = myP.parse_args([])
     self.assertEqual([], myNs.scales)
     myNs = myP.parse_args('-s 47'.split())
     self.assertEqual([
         47,
     ], myNs.scales)
     myNs = myP.parse_args('-s 47 --scale=49'.split())
     self.assertEqual([47, 49], myNs.scales)
     try:
         print()
         myNs = myP.parse_args('-s WTF'.split())
         self.fail('SystemExit not raised.')
     except SystemExit:
         pass
Example #3
0
def main():
    print('Cmd: %s' % ' '.join(sys.argv))
    op = CmnCmdOpts.argParserIn(
        desc='Searches for structures that look like RP66v1 EFLRs',
        prog='%(prog) ',
        version=__version__,
    )
    op.add_argument(
        "-s",
        "--show-tell",
        action="store_true",
        dest="show_tell",
        default=False,
        help="Show file locations and lengths. Default: %(default)s.")
    #    op.add_argument("-n", "--number", dest="min_run_length",
    #                    type=int, default=DEFAULT_MIN_RUN_LENGTH,
    #                    help="Size of the minimum run length. Default: %(default)s.")
    op.add_argument('infile',
                    type=argparse.FileType('rb'),
                    help='The file to search')
    args = op.parse_args()
    clkStart = time.clock()
    timStart = time.time()
    # Initialise logging etc.
    #logging.basicConfig(level=args.loglevel,
    #                format='%(asctime)s %(levelname)-8s %(message)s',
    #datefmt='%y-%m-%d % %H:%M:%S',
    #                stream=sys.stdout)
    # Your code here
    myObj = ScanV1EFLR(args.infile)

    print('  CPU time = %8.3f (S)' % (time.clock() - clkStart))
    print('Exec. time = %8.3f (S)' % (time.time() - timStart))
    print('Bye, bye!')
    return 0
Example #4
0
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
Example #5
0
 def test_01(self):
     """TestCmnCmdOpts.test_01(): basic use of CmnCmdOpts.argParser()."""
     myP = CmnCmdOpts.argParser("Description", "Program", "Version")
     myNs = myP.parse_args()
     #        print()
     #        print(myNs)
     self.assertEqual(CmnCmdOpts.DEFAULT_OPT_MP_JOBS, myNs.jobs)
     self.assertEqual(CmnCmdOpts.DEFAULT_OPT_LOG_LEVEL, myNs.logLevel)
     self.assertFalse(myNs.keepGoing)
 def test_05(self):
     """TestCmnCmdOpts.test_05(): use of --version."""
     myP = CmnCmdOpts.argParser("Description of the program", "PROG", version="v0.1.3rc4")
     try:
         print()
         myNs = myP.parse_args(['--version',])
         self.fail('SystemExit not raised: %s' % myNs)
     except SystemExit:
         pass
 def test_04(self):
     """TestCmnCmdOpts.test_04(): use of -h with minimal parser creation."""
     myP = CmnCmdOpts.argParser("Description of the program only, no program name, no version")
     try:
         print()
         myNs = myP.parse_args(['-h',])
         self.fail('SystemExit not raised: %s' % myNs)
     except SystemExit:
         pass
 def test_03(self):
     """TestCmnCmdOpts.test_03(): use of --help."""
     myP = CmnCmdOpts.argParser("Description of the program", "Name of the program", "0.1.3rc4")
     try:
         print()
         myNs = myP.parse_args(['--help',])
         self.fail('SystemExit not raised: %s' % myNs)
     except SystemExit:
         pass
 def test_07(self):
     """TestCmnCmdOpts.test_06(): use of --version minimal parser creation should fail with unrecognised arguments."""
     myP = CmnCmdOpts.argParser("Description of the program only, no program name, no version")
     try:
         print()
         myNs = myP.parse_args(['--version',])
         self.fail('SystemExit not raised: %s' % myNs)
     except SystemExit:
         pass
Example #10
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
Example #11
0
    def test_10(self):
        """TestCmnCmdOpts.test_10(): use of CmnCmdOpts.argParser() and adding a list option."""
        myP = CmnCmdOpts.argParser("Description", "Program", "Version")
        myP.add_argument(
            "-I", "--INCLUDE",
            action="append",
            dest="includes",
            default=[],
            help="Include paths (additive). [default: %default]",
        )
        myNs = myP.parse_args([])
        self.assertEqual([], myNs.includes)
        myNs = myP.parse_args(['-I', '123', '--INCLUDE', '4'])
#        print()
#        print(myNs)
        self.assertEqual(['123', '4',], myNs.includes)
Example #12
0
 def test_11(self):
     """TestCmnCmdOpts.test_11(): use of CmnCmdOpts.argParser() and adding a enumerated option with choices."""
     myP = CmnCmdOpts.argParser("Description", "Program", "Version")
     myP.add_argument(
         "-f", "--file-type",
         choices=['LAS', 'LIS', 'AUTO'],
     )
     myNs = myP.parse_args([])
     self.assertTrue(myNs.file_type is None)
     myNs = myP.parse_args('-f LIS'.split())
     self.assertEqual('LIS', myNs.file_type)
     try:
         print()
         myNs = myP.parse_args('-f WTF'.split())
         self.fail('SystemExit not raised.')
     except SystemExit:
         pass
Example #13
0
    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())
Example #14
0
 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)