def main()

in support/retro_contest/remote.py [0:0]


def main(argv=sys.argv[1:]):
    parser = argparse.ArgumentParser(description='Run support code for OpenAI Retro Contest remote environment')
    parser.set_defaults(func=lambda args: parser.print_help())
    parser.add_argument('--data-dir', type=str, help='Use a custom data directory (must be named `data`)')

    subparsers = parser.add_subparsers()
    parser_run = subparsers.add_parser('run', description='Run Remote environment')
    parser_list = subparsers.add_parser('list', description='List information about environments')

    parser_run.set_defaults(func=run_args)
    parser_run.add_argument('game', type=str, help='Name of the game to run')
    parser_run.add_argument('state', type=str, default=retro.State.DEFAULT, nargs='?', help='Name of initial state')
    parser_run.add_argument('--monitordir', '-m', type=str, help='Directory to hold monitor files')
    parser_run.add_argument('--bk2dir', '-b', type=str, help='Directory to hold BK2 movies')
    parser_run.add_argument('--socketdir', '-s', type=str, default='tmp/sock', help='Directory to hold sockets')
    parser_run.add_argument('--daemonize', '-d', action='store_true', default=False, help='Daemonize (background) the process')
    parser_run.add_argument('--wallclock-limit', '-W', type=float, default=None, help='Maximum time to run in seconds')
    parser_run.add_argument('--timestep-limit', '-T', type=int, default=None, help='Maximum time to run in timesteps')
    parser_run.add_argument('--discrete-actions', '-D', action='store_true', help='Use a discrete action space')

    parser_list.set_defaults(func=lambda args: parser_list.print_help())
    subparsers_list = parser_list.add_subparsers()
    parser_list_games = subparsers_list.add_parser('games', description='List games')
    parser_list_games.set_defaults(func=list_games)
    parser_list_games.add_argument('--system', '-s', type=str, help='List for a specific system only')

    parser_list_states = subparsers_list.add_parser('states', description='List')
    parser_list_states.set_defaults(func=list_states)
    parser_list_states.add_argument('game', type=str, default=None, nargs='*', help='List for specified games only')

    args = parser.parse_args(argv)
    if args.data_dir:
        retro.data.path(args.data_dir)
    args.func(args)