コード例 #1
0
def load_next(root):
    authz.require(authz.system_edit())
    q = Context.by_root(root)
    q = q.filter(Context.enrich_status == PENDING)
    q = q.order_by(Context.enrich_score.desc())
    context = q.first()
    if context is None:
        # TODO: spider status system
        return jsonify({"status": "wait"})
    return jsonify({"status": "next", "next": context.id})
コード例 #2
0
def store(root):
    authz.require(authz.system_edit())
    ctx_data = request_data()
    q = Context.by_root(root)
    q = q.filter(Context.id == ctx_data.get("id"))
    context = q.first()
    if context is None:
        return jsonify({"status": "failed"}, status=400)
    context.update(request_data())
    context.active = context.enrich_status == ACCEPTED
    context.user = current_user
    db.session.commit()
    # TODO: task newly activated entities.
    return jsonify({"status": "ok"})
コード例 #3
0
def view(root, id):
    authz.require(authz.system_edit())
    q = Context.by_root(root)
    q = q.filter(Context.id == id)
    context = obj_or_404(q.first())
    statements = []
    entities = set()
    for stmt in context.statements:
        entities.add(stmt.subject)
        if qualified[stmt.attribute].data_type == "entity":
            entities.add(stmt._value)
        statements.append(stmt.to_dict(raw=True))
    q = [{"assume": [context.id], "id|=": list(entities), "label": None, "type": None}]
    entities = {e.get("id"): e for e in execute_query(q).get("result")}
    return jsonify(
        {"status": "ok", "entities": entities, "context": context.to_dict(enrich=True), "statements": statements}
    )