def main(prog, args):
    parser = argparse.ArgumentParser(prog=prog, formatter_class=argparse.RawTextHelpFormatter)
    parser.add_argument('contest_id', help='Contest ID (e.g. arc001)')
    parser.add_argument('--without-login', action='store_true', help='Download data without login')
    parser.add_argument('--workspace', help="Path to workspace's root directory. This script will create files in {{WORKSPACE}}/{{contest_name}}/{{alphabet}}/ e.g. ./your-workspace/arc001/A/\n[Default] {}".format(DEFAULT_WORKSPACE_DIR_PATH))
    parser.add_argument('--lang', help=('Programming language of your template code, {}.\n'.format(' or '.join([lang.name for lang in ALL_LANGUAGES])) + '[Default] {}'.format(CPP.name)))
    parser.add_argument('--template', help='File path to your template code\n{}'.format('\n'.join(['[Default ({dname})] {path}'.format(dname=lang.display_name, path=lang.default_template_path) for lang in ALL_LANGUAGES])))
    parser.add_argument('--replacement', help=argparse.SUPPRESS)
    parser.add_argument('--parallel', action='store_true', help='Prepare problem directories asynchronously using multi processors.', default=None)
    parser.add_argument('--save-no-session-cache', action='store_true', help='Save no session cache to avoid security risk', default=None)
    parser.add_argument('--skip-existing-problems', action='store_true', help='Skip processing every problem for which a directory already exists', default=None)
    parser.add_argument('--config', help='File path to your config file\n{0}{1}'.format('[Default (Primary)] {}\n'.format(USER_CONFIG_PATH), '[Default (Secondary)] {}\n'.format(get_default_config_path())))
    args = parser.parse_args(args)
    if (args.replacement is not None):
        logger.error(with_color('Sorry! --replacement argument no longer exists and you can only use --template. See the official document for details.', Fore.LIGHTRED_EX))
        raise DeletedFunctionalityError
    config = get_config(args)
    try:
        import AccountInformation
        raise BannedFileDetectedError('We abolished the logic with AccountInformation.py. Please delete the file.')
    except ImportError:
        pass
    client = AtCoderClient()
    if (not config.etc_config.download_without_login):
        try:
            client.login(save_session_cache=(not config.etc_config.save_no_session_cache))
            logger.info('Login successful.')
        except LoginError:
            logger.error('Failed to login (maybe due to wrong username/password combination?)')
            sys.exit((- 1))
    else:
        logger.info('Downloading data without login.')
    prepare_contest(client, args.contest_id, config)
def main(prog, args):
    parser = argparse.ArgumentParser(prog=prog, formatter_class=argparse.RawTextHelpFormatter)
    parser.add_argument('contest_id', help='Contest ID (e.g. arc001)')
    parser.add_argument('--without-login', action='store_true', help='Download data without login')
    parser.add_argument('--workspace', help="Path to workspace's root directory. This script will create files in {{WORKSPACE}}/{{contest_name}}/{{alphabet}}/ e.g. ./your-workspace/arc001/A/\n[Default] {}".format(DEFAULT_WORKSPACE_DIR_PATH))
    parser.add_argument('--lang', help=('Programming language of your template code, {}.\n'.format(' or '.join([lang.name for lang in ALL_LANGUAGES])) + '[Default] {}'.format(CPP.name)))
    parser.add_argument('--template', help='File path to your template code\n{}'.format('\n'.join(['[Default ({dname})] {path}'.format(dname=lang.display_name, path=lang.default_template_path) for lang in ALL_LANGUAGES])))
    parser.add_argument('--replacement', help=argparse.SUPPRESS)
    parser.add_argument('--parallel', action='store_true', help='Prepare problem directories asynchronously using multi processors.', default=None)
    parser.add_argument('--save-no-session-cache', action='store_true', help='Save no session cache to avoid security risk', default=None)
    parser.add_argument('--skip-existing-problems', action='store_true', help='Skip processing every problem for which a directory already exists', default=None)
    parser.add_argument('--config', help='File path to your config file\n{0}{1}'.format('[Default (Primary)] {}\n'.format(USER_CONFIG_PATH), '[Default (Secondary)] {}\n'.format(get_default_config_path())))
    args = parser.parse_args(args)
    if (args.replacement is not None):
        logger.error(with_color('Sorry! --replacement argument no longer exists and you can only use --template. See the official document for details.', Fore.LIGHTRED_EX))
        raise DeletedFunctionalityError
    config = get_config(args)
    try:
        import AccountInformation
        raise BannedFileDetectedError('We abolished the logic with AccountInformation.py. Please delete the file.')
    except ImportError:
        pass
    client = AtCoderClient()
    if (not config.etc_config.download_without_login):
        try:
            client.login(save_session_cache=(not config.etc_config.save_no_session_cache))
            logger.info('Login successful.')
        except LoginError:
            logger.error('Failed to login (maybe due to wrong username/password combination?)')
            sys.exit((- 1))
    else:
        logger.info('Downloading data without login.')
    prepare_contest(client, args.contest_id, config)