Coverage for application / qaqc / tator / util.py: 19%
31 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-23 05:22 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-23 05:22 +0000
1import json
3import tator
4import requests
5from flask import current_app, flash, redirect, session
8def init_tator_api():
9 if 'tator_token' not in session:
10 flash('Please log in to Tator', 'info')
11 return None, redirect('/')
12 try:
13 api = tator.get_api(
14 host=current_app.config.get('TATOR_URL'),
15 token=session['tator_token'],
16 )
17 return api, None
18 except tator.openapi.tator_openapi.exceptions.ApiException as e:
19 flash(json.loads(e.body)['message'], 'danger')
20 return None, redirect('/')
23# TODO - either update review server to allow batch requests by sequence, or use threading to make this faster
24def get_comments_and_image_refs(deployment_names: list[str]) -> tuple[dict, dict]:
25 comments = {}
26 image_refs = {}
27 try:
28 for deployment in deployment_names:
29 print(f'Getting comments for deployment {deployment}...')
30 comment_res = requests.get(
31 url=f'{current_app.config.get("DARC_REVIEW_URL")}/comment/sequence/{deployment}',
32 headers=current_app.config.get('DARC_REVIEW_HEADERS'),
33 )
34 if comment_res.status_code != 200:
35 raise requests.exceptions.ConnectionError
36 comments |= comment_res.json()
37 image_ref_res = requests.get(f'{current_app.config.get("DARC_REVIEW_URL")}/image-reference/quick')
38 if image_ref_res.status_code != 200:
39 raise requests.exceptions.ConnectionError
40 image_refs = image_ref_res.json()
41 except requests.exceptions.ConnectionError:
42 print('\nERROR: unable to connect to external review server\n')
43 return comments, image_refs