示例#1
0
def get_args_parser():
    parser = ArgumentParser(prog='benchmark dataset evaluation')
    parser.add_argument('--tracker_path',
                        '-p',
                        type=str,
                        default='results',
                        help='tracker result path')
    parser.add_argument('--dataset',
                        '-d',
                        type=str,
                        default='VOT2018',
                        choices=('VOT2018', 'VOT2019', 'VOT2020', 'OTB', 'UAV',
                                 'NFS', 'TrackingNet', 'LaSOT', 'GOT-10k'),
                        help='the name of benchmark')
    parser.add_argument('--num',
                        '-n',
                        default=1,
                        type=int,
                        help='number of thread to eval')
    parser.add_argument('--tracker_prefix',
                        '-t',
                        default='',
                        type=str,
                        help='tracker name')
    parser.add_argument('--draw_plot', action='store_true')
    parser.add_argument('--bold_trackers', default=[], nargs='+')
    parser.add_argument('--show_video_level',
                        '-s',
                        dest='show_video_level',
                        action='store_true')
    parser.set_defaults(show_video_level=False)
    return parser
    def test_subcommand_with_subclass_default_override_lightning_issue_10859(
            self):
        class Arch:
            def __init__(self, a: int = 1):
                pass

        class ArchB(Arch):
            def __init__(self, a: int = 2, b: int = 3):
                pass

        class ArchC(Arch):
            def __init__(self, a: int = 4, c: int = 5):
                pass

        parser = ArgumentParser(error_handler=None)
        parser_subcommands = parser.add_subcommands()
        subparser = ArgumentParser()
        subparser.add_argument('--arch', type=Arch)

        with mock_module(Arch, ArchB, ArchC) as module:
            default = {'class_path': f'{module}.ArchB'}
            value = {
                'class_path': f'{module}.ArchC',
                'init_args': {
                    'a': 10,
                    'c': 11
                }
            }

            subparser.set_defaults(arch=default)
            parser_subcommands.add_subcommand('fit', subparser)

            cfg = parser.parse_args(['fit', f'--arch={json.dumps(value)}'])
            self.assertEqual(cfg.fit.arch.as_dict(), value)