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
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()
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)
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)