示例#1
0
def update_execution(filename: str) -> jsonify:
    service_type = request.args.get(Constants.TYPE_PARAM_NAME)
    description = request.json[Constants.DESCRIPTION_FIELD_NAME]
    class_method_name = request.json[Constants.METHOD_FIELD_NAME]
    method_parameters = request.json[Constants.METHOD_PARAMETERS_FIELD_NAME]

    storage = None
    if service_type == Constants.EXPLORE_TENSORFLOW_TYPE or \
            service_type == Constants.EXPLORE_SCIKITLEARN_TYPE:
        storage = explore_storage
    elif service_type == Constants.TRANSFORM_TENSORFLOW_TYPE or \
            Constants.TRANSFORM_SCIKITLEARN_TYPE:
        storage = transform_storage

    data = Data(database, storage)

    request_errors = analyse_patch_request_errors(request_validator, data,
                                                  filename, class_method_name,
                                                  method_parameters)

    if request_errors is not None:
        return request_errors

    module_path, class_name = data.get_module_and_class(filename)
    class_parameters = data.get_class_parameters(filename)

    parameters = Parameters(database, data)
    metadata_creator = Metadata(database)

    execution = Execution(database, filename, service_type, storage,
                          metadata_creator, module_path, class_name,
                          class_parameters, parameters)

    execution.update(class_method_name, method_parameters, description)

    response_params = None
    if service_type == Constants.TRANSFORM_TENSORFLOW_TYPE or \
            service_type == Constants.TRANSFORM_SCIKITLEARN_TYPE:
        response_params = Constants.MICROSERVICE_URI_GET_PARAMS

    return (
        jsonify({
            Constants.MESSAGE_RESULT:
            f'{Constants.MICROSERVICE_URI_SWITCHER[service_type]}'
            f'{filename}{response_params}'
        }),
        Constants.HTTP_STATUS_CODE_SUCCESS_CREATED,
    )
示例#2
0
def analyse_patch_request_errors(request_validator: UserRequest,
                                 data: Data,
                                 filename: str,
                                 class_method: str,
                                 method_parameters: dict) \
        -> Union[tuple, None]:
    try:
        request_validator.existent_filename_validator(filename)
    except Exception as nonexistent_train_filename:
        return (
            jsonify(
                {Constants.MESSAGE_RESULT: str(nonexistent_train_filename)}),
            Constants.HTTP_STATUS_CODE_NOT_FOUND,
        )

    module_path, class_name = data.get_module_and_class(filename)

    try:
        request_validator.valid_method_class_validator(module_path, class_name,
                                                       class_method)
    except Exception as invalid_method_name:
        return (
            jsonify({Constants.MESSAGE_RESULT: str(invalid_method_name)}),
            Constants.HTTP_STATUS_CODE_NOT_ACCEPTABLE,
        )

    try:
        request_validator.valid_method_parameters_name_validator(
            module_path, class_name, class_method, method_parameters)
    except Exception as invalid_function_parameters:
        return (
            jsonify(
                {Constants.MESSAGE_RESULT: str(invalid_function_parameters)}),
            Constants.HTTP_STATUS_CODE_NOT_ACCEPTABLE,
        )

    return None