Mercurial > code > home > repos > homeauto
view service/reasoning/rdflibtrig.py @ 1408:89bf0d204b29
reasoning output using treq, and keep writing to PUT calls forever (but not as fast as the reasoning loop runs)
Ignore-this: 1633b16dc315082f759041d42e848ced
darcs-hash:89fd876166824f337c8b1509a092e8a5fa2c5e5e
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Tue, 23 Jul 2019 17:30:46 -0700 |
parents | bbaf0576f653 |
children | 3c18b4b3b72c |
line wrap: on
line source
import time, logging from rdflib import ConjunctiveGraph from rdflib.parser import StringInputSource import treq from twisted.internet.defer import inlineCallbacks, returnValue log = logging.getLogger('fetch') from private_ipv6_addresses import ipv6Addresses @inlineCallbacks def addTrig(graph, url, timeout=2): t1 = time.time() # workaround for some reason my ipv6 names don't resolve for name, addr in ipv6Addresses.iteritems(): url = url.replace('/' + name + ':', '/[' + addr + ']:') log.debug(' fetching %r', url) response = yield treq.get(url, headers={'accept': ['application/trig']}, timeout=timeout) if response.code != 200: raise ValueError("status %s from %s" % (response.code, url)) g = ConjunctiveGraph() g.parse(StringInputSource((yield response.content())), format='trig') fetchTime = time.time() - t1 log.debug(' %r done in %.04f sec', url, fetchTime) graph.addN(g.quads()) returnValue(fetchTime)