dataset_tasks.py 文件源码

python
阅读 17 收藏 0 点赞 0 评论 0

项目:kge-server 作者: vfrico 项目源码 文件源码
def on_post(self, req, resp, dataset_id, dataset_dto):
        """Generates an autocomplete index with desired lang

        This request may take long time to complete, so it uses tasks.

        :query list langs: A list with languages to be requested
        :param id dataset_id: The dataset to insert triples into
        :param DTO dataset_dto: The Dataset DTO from dataset_id (from hook)
        """
        try:
            body = common_hooks.read_body_as_json(req)
            languages = body['langs']
            if not isinstance(languages, list):
                raise falcon.HTTPInvalidParam(
                    ("A list with languages in ISO 639-1 code was expected"),
                    "langs")
        except KeyError as err:
            raise falcon.HTTPMissingParam("langs")

        entity_dao = data_access.EntityDAO(dataset_dto.dataset_type,
                                           dataset_id)
        # Call to the task
        task = async_tasks.build_autocomplete_index.delay(dataset_id,
                                                          langs=languages)
        # Create the new task
        task_dao = data_access.TaskDAO()
        task_obj, err = task_dao.add_task_by_uuid(task.id)
        if task_obj is None:
            raise falcon.HTTPNotFound(description=str(err))
        task_obj["next"] = "/datasets/" + dataset_id
        task_dao.update_task(task_obj)

        msg = "Task {} created successfuly".format(task_obj['id'])
        textbody = {"status": 202, "message": msg}
        resp.location = "/tasks/" + str(task_obj['id'])
        resp.body = json.dumps(textbody)
        resp.content_type = 'application/json'
        resp.status = falcon.HTTP_202
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号