def simulation(): with app.app_context(): data = flask.json.loads(request.data) root_id = data['graph']['root']['id'] tree_dict = deserialize(root_id, data['graph']) sender = tree_dict[root_id] settings = {} settings.update(data['params']) settings.update(use_profile_spreading=data['spreading']) simulator = SimulationManager(sender=sender, settings=settings) simulator.start_simulation() statistics = simulator.statistics() response = dict( statistics=dict( votes=statistics['info'], replies_log=statistics['replies_log'], replies_number=statistics['replies_number'], request_number=simulator.average_request_number()-1 ), replies_stats=statistics['replies_stats'] ) return flask.jsonify(response)