def main(args: Optional[List[str]] = None) -> None: log.addHandler(log.logging.StreamHandler(sys.stderr)) log.setLevel(log.logging.INFO) version_check() parser = get_parser() namespace = parser.parse_args(args=args) try: run_program(namespace, parser=parser) except NotImplementedError as e: log.debug('\n' + traceback.format_exc()) log.error('NotImplementedError') log.info( 'The operation you specified is not supported yet. Pull requests are welcome.' ) log.info( 'see: https://github.com/kmyk/online-judge-tools/blob/master/CONTRIBUTING.md' ) except onlinejudge.type.NotLoggedInError: log.error('login required') sys.exit(1) except requests.exceptions.HTTPError as e: log.error(str(e)) log.debug(traceback.format_exc()) sys.exit(1) except requests.exceptions.InvalidURL as e: log.error(str(e)) sys.exit(1) except onlinejudge.type.SampleParseError: log.error('Failed to parse sample.') sys.exit(1) except FileExistsError as e: log.error(str(e)) sys.exit(1)
def setUpClass(cls): cwd = os.getcwd() cls.ojtools = os.path.join(cwd, 'oj') # loggin log_level = log.logging.INFO log.setLevel(log_level) handler = log.logging.StreamHandler(sys.stdout) handler.setLevel(log_level) log.addHandler(handler)
def main(args: Optional[List[str]] = None) -> None: log.addHandler(log.logging.StreamHandler(sys.stderr)) log.setLevel(log.logging.INFO) version_check() parser = get_parser() namespace = parser.parse_args(args=args) try: run_program(namespace, parser=parser) except NotImplementedError as e: log.debug('\n' + traceback.format_exc()) log.error('NotImplementedError') log.info('The operation you specified is not supported yet. Pull requests are welcome.') log.info('see: https://github.com/kmyk/online-judge-tools/blob/master/CONTRIBUTING.md')