Exemplo n.º 1
0
def get_fragment_graph(fid):
    if not r.sismember('{}:fragments'.format(AGENT_ID), fid):
        raise NotFound('The fragment {} does not exist'.format(fid))

    lock = fragment_lock(fid)
    lock.acquire()
    try:
        response = make_response(fragment_graph(fid).serialize(format='turtle'))
        response.headers['Content-Type'] = 'text/turtle'
    finally:
        lock.release()

    return response
Exemplo n.º 2
0
def get_fragment(**kwargs):
    fid = kwargs['id']
    lock = fragment_lock(fid)
    lock.acquire()
    try:
        updated = r.get('{}:fragments:{}:updated'.format(AGENT_ID, fid))
        if updated:
            kwargs['last_updated'] = updated
            kwargs['triples'] = len(fragment_graph(fid))
        pulling = r.get('{}:fragments:{}:pulling'.format(AGENT_ID, fid))
        kwargs['pulling'] = False if pulling is None else eval(pulling)

        return kwargs
    finally:
        lock.release()
Exemplo n.º 3
0
 def __init__(self, rid):
     self.__sink = StreamSink()
     self.__sink.load(rid)
     self.__fragment_lock = fragment_lock(self.__sink.fragment_id)
     super(StreamResponse, self).__init__(rid)
Exemplo n.º 4
0
 def __init__(self, rid):
     # The creation of a response always require to load its corresponding sink
     self.__sink = QuerySink()
     self.__sink.load(rid)
     super(QueryResponse, self).__init__(rid)
     self.__fragment_lock = fragment_lock(self.__sink.fragment_id)