Skip to content

Commit b49a063

Browse files
author
interop-scores-bot
committed
Add a debug option for local development
1 parent b90d435 commit b49a063

File tree

1 file changed

+28
-6
lines changed
  • jobs/webcompat-kb/webcompat_kb

1 file changed

+28
-6
lines changed

Diff for: jobs/webcompat-kb/webcompat_kb/main.py

+28-6
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ def get_parser() -> argparse.ArgumentParser:
3333
help="Don't write updates to BigQuery",
3434
)
3535

36+
parser.add_argument(
37+
"--debug",
38+
action="store_true",
39+
help="Drop into debugger if there's an exception",
40+
)
41+
3642
for job_cls in ALL_JOBS.values():
3743
job_cls.add_arguments(parser)
3844

@@ -74,12 +80,7 @@ def set_default_args(parser: argparse.ArgumentParser, args: argparse.Namespace)
7480
sys.exit(1)
7581

7682

77-
def main() -> None:
78-
logging.basicConfig()
79-
80-
parser = get_parser()
81-
args = parser.parse_args()
82-
logging.getLogger().setLevel(logging.getLevelNamesMapping()[args.log_level.upper()])
83+
def run(parser: argparse.ArgumentParser, args: argparse.Namespace) -> None:
8384
set_default_args(parser, args)
8485

8586
jobs = {job_name: ALL_JOBS[job_name]() for job_name in args.jobs}
@@ -94,5 +95,26 @@ def main() -> None:
9495
job.main(client, args)
9596

9697

98+
def main() -> None:
99+
logging.basicConfig()
100+
101+
parser = get_parser()
102+
args = parser.parse_args()
103+
logging.getLogger().setLevel(logging.getLevelNamesMapping()[args.log_level.upper()])
104+
105+
try:
106+
run(parser, args)
107+
except Exception:
108+
if args.debug:
109+
import traceback
110+
111+
traceback.print_exc()
112+
import pdb
113+
114+
pdb.post_mortem()
115+
else:
116+
raise
117+
118+
97119
if __name__ == "__main__":
98120
main()

0 commit comments

Comments
 (0)