Skip to content

Controller

Controller

CalculateVitals

Bases: Resource

Flask RESTful resource for calculating vitals.

Source code in redesign_pipeline/controller.py
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
class CalculateVitals(Resource):
    """
    Flask RESTful resource for calculating vitals.

    """
    def post(self):
        """
        Handle POST requests for calculating vitals.

        Returns:
            Response: The response containing the result of the request.

        """
        measure_time.reset()
        measure_time.start()
        try:
            # logger.debug(request.form)
            errors = {}
            logger.info('success fully got the inputs')
            # rgb_list,lm_list,FPS,lm_name_dict,save_results,window_count = validate_inputs(file)
            args = validate_inputs(request.form['json'])
            logger.debug(args)
            measure_time.checkpoint("to_start_processing")
            job_thread = threading.Thread(target=nervotec_compute,args=args)
            job_thread.start()
            resp = jsonify({'message' : True})
            resp.status_code = 201
            return resp
        except:
            resp = jsonify({'message': False})
            resp.status_code = 500


    def get(self):
        """
        Handle GET requests for retrieving estimates from the global queue.

        Returns:
            Response: The response containing the estimates.

        """
        if global_queue.is_empty():
            resp = jsonify({'message': 'There are no estimates in the queue!'})
            resp.status_code = 400
            return resp

        estimates = global_queue.get_from_queue()
        resp = jsonify(estimates)
        resp.status_code = 200
        return resp    

get()

Handle GET requests for retrieving estimates from the global queue.

Returns:

Name Type Description
Response

The response containing the estimates.

Source code in redesign_pipeline/controller.py
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
def get(self):
    """
    Handle GET requests for retrieving estimates from the global queue.

    Returns:
        Response: The response containing the estimates.

    """
    if global_queue.is_empty():
        resp = jsonify({'message': 'There are no estimates in the queue!'})
        resp.status_code = 400
        return resp

    estimates = global_queue.get_from_queue()
    resp = jsonify(estimates)
    resp.status_code = 200
    return resp    

post()

Handle POST requests for calculating vitals.

Returns:

Name Type Description
Response

The response containing the result of the request.

Source code in redesign_pipeline/controller.py
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
def post(self):
    """
    Handle POST requests for calculating vitals.

    Returns:
        Response: The response containing the result of the request.

    """
    measure_time.reset()
    measure_time.start()
    try:
        # logger.debug(request.form)
        errors = {}
        logger.info('success fully got the inputs')
        # rgb_list,lm_list,FPS,lm_name_dict,save_results,window_count = validate_inputs(file)
        args = validate_inputs(request.form['json'])
        logger.debug(args)
        measure_time.checkpoint("to_start_processing")
        job_thread = threading.Thread(target=nervotec_compute,args=args)
        job_thread.start()
        resp = jsonify({'message' : True})
        resp.status_code = 201
        return resp
    except:
        resp = jsonify({'message': False})
        resp.status_code = 500

allowed_file(filename)

Check if a file has an allowed extension.

Parameters:

Name Type Description Default
filename str

The name of the file.

required

Returns:

Name Type Description
bool

True if the file has an allowed extension, False otherwise.

Source code in redesign_pipeline/controller.py
15
16
17
18
19
20
21
22
23
24
25
26
def allowed_file(filename):
    """
    Check if a file has an allowed extension.

    Args:
        filename (str): The name of the file.

    Returns:
        bool: True if the file has an allowed extension, False otherwise.

    """
    return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS