in jobs/webcompat-kb/webcompat_kb/main.py [0:0]
def main() -> None:
logging.basicConfig()
parser = get_parser()
args = parser.parse_args()
failed = []
try:
logging.getLogger().setLevel(
logging.getLevelNamesMapping()[args.log_level.upper()]
)
set_default_args(parser, args)
jobs = {job_name: ALL_JOBS[job_name]() for job_name in args.jobs}
for job_name, job in jobs.items():
job.set_default_args(parser, args)
client = get_client(args.bq_project_id)
for job_name, job in jobs.items():
logging.info(f"Running job {job_name}")
bq_client = BigQuery(client, job.default_dataset(args), args.write)
try:
job.main(bq_client, args)
except Exception as e:
if args.pdb:
raise
failed.append(job_name)
logging.error(e)
except Exception:
if args.pdb:
import pdb
import traceback
traceback.print_exc()
pdb.post_mortem()
else:
raise
if failed:
logging.error(f"{len(failed)} jobs failed: {', '.join(failed)}")
sys.exit(1)