Example #1
0
 def post(self):
     if 'file' not in request.files:
         flash('No file part')
         return redirect(request.url)
     file = request.files['file']
     # if user does not select file, browser also
     # submit an empty part without filename
     if file.filename == '':
         flash('No selected file')
         return redirect(request.url)
     filename = secure_filename(file.filename)
     ModelBuyerService().load_data_set(file, filename)
     return 200
Example #2
0
 def post(self):
     logging.info("New order model")
     request_data = request.get_json()
     model_type = request_data["model_type"]
     name = request_data["name"]
     data_requirements = request_data["data_requirements"]
     payment_requirements = request_data["payments_requirements"]
     user = UserService().get(request_data["user_id"])
     return ModelBuyerService().make_new_order_model(
         model_type=model_type,
         name=name,
         requirements=data_requirements,
         payment_requirements=payment_requirements,
         user=user), 200
Example #3
0
 def post(self):
     logging.info("transform prediction from data owner")
     ModelBuyerService().transform_prediction(request.get_json())
     return 200
Example #4
0
 def patch(self, model_id):
     data = request.get_json()
     logging.info("Received final update from fed. aggr")
     return {'ok': ModelBuyerService().update_metrics(model_id, data)}
Example #5
0
 def delete(self, model_id):
     return ModelBuyerService().delete_model(model_id), 200
Example #6
0
 def get(self, model_id):
     return ModelBuyerService().get_model(model_id), 200
Example #7
0
 def patch(self, model_id):
     data = request.get_json()
     logging.info("Received update from fed. aggr")
     return ModelBuyerService().update_model(model_id, data)
Example #8
0
 def put(self, model_id):
     data = request.get_json()
     logging.info("Received final update from fed. aggr")
     ModelBuyerService().finish_model(model_id, data)
     return 200
Example #9
0
 def get(self):
     return ModelBuyerService().get_all(), 200
Example #10
0
    return flask_app


app = create_app()
api.init_app(app)

CORS(app)

encryption_service = EncryptionService(
    is_active=app.config["ACTIVE_ENCRYPTION"])
public_key, private_key = encryption_service.generate_key_pair(
    app.config["KEY_LENGTH"])
encryption_service.set_public_key(public_key.n)
data_base = Database(app.config)
data_loader = DataLoader(app.config['DATA_SETS_DIR'])

contract_service = ContractService()
contract_service.init(app.config)

model_buyer_service = ModelBuyerService()
model_buyer_service.init(encryption_service=encryption_service,
                         data_loader=data_loader,
                         contract_service=contract_service,
                         config=app.config)

user_service = UserService()
user_service.init(app.config, model_buyer_service)

logging.info("Model Buyer is running")
Example #11
0
                    required=True,
                    description='The prediction values'),
        'mse':
        fields.Integer(required=True, description='The MSE'),
        #   'model': fields.Nested(model, required=True, description='The model'),
    })

prediction_request = api.model(name='Prediction ',
                               model={
                                   'id':
                                   fields.String(
                                       required=True,
                                       description='The prediction identifier')
                               })

model_buyer = ModelBuyerService()


@api.route('', endpoint='predictions')
@api.doc('Prediction resources')
class PredictionsResources(Resource):
    @api.expect(prediction_request, validate=True)
    @api.marshal_with(prediction, code=201)
    @api.doc('Create prediction')
    def post(self):
        logging.info("Make new prediction")
        data = request.get_json()
        return model_buyer.make_prediction(data), 200

    @api.marshal_list_with(prediction)
    @api.doc('Get predictions')