Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/creactistore/_templates/lib/rdflib/query.py
diff options
context:
space:
mode:
Diffstat (limited to 'creactistore/_templates/lib/rdflib/query.py')
-rw-r--r--creactistore/_templates/lib/rdflib/query.py173
1 files changed, 0 insertions, 173 deletions
diff --git a/creactistore/_templates/lib/rdflib/query.py b/creactistore/_templates/lib/rdflib/query.py
deleted file mode 100644
index 7ae1928..0000000
--- a/creactistore/_templates/lib/rdflib/query.py
+++ /dev/null
@@ -1,173 +0,0 @@
-
-import os
-import shutil
-import tempfile
-
-from urlparse import urlparse
-try:
- from io import BytesIO
-except:
- from StringIO import StringIO as BytesIO
-
-
-__all__ = ['Processor', 'Result']
-
-
-"""
-Query plugin interface.
-
-This module is useful for those wanting to write a query processor
-that can plugin to rdf. If you are wanting to execute a query you
-likely want to do so through the Graph class query method.
-
-"""
-
-
-class Processor(object):
-
- def __init__(self, graph):
- pass
-
- def query(self, strOrQuery, initBindings={}, initNs={}, DEBUG=False):
- pass
-
-class ResultException(Exception):
- pass
-
-class EncodeOnlyUnicode(object):
- """
- This is a crappy work-around for
- http://bugs.python.org/issue11649
-
-
- """
-
- def __init__(self, stream):
- self.__stream=stream
- def write(self, arg):
- if isinstance(arg, unicode):
- self.__stream.write(arg.encode("utf-8"))
- else:
- self.__stream.write(arg)
- def __getattr__(self, name):
- return getattr(self.__stream, name)
-
-
-class Result(object):
- """
- A common class for representing query result.
- This is backwards compatible with the old SPARQLResult objects
- Like before there is a bit of magic that makes this appear like python objects, depending on the type of result.
-
- If the type is "SELECT", this is like a list of list of values
- If the type is "ASK" this is like a list of a single bool
- If the type is "CONSTRUCT" or "DESCRIBE" this is like a graph
-
- """
- def __init__(self, type_):
-
- if type_ not in ('CONSTRUCT', 'DESCRIBE', 'SELECT', 'ASK'):
- raise ResultException('Unknown Result type: %s'%type_)
-
- self.type = type_
- self.vars=None
- self.bindings=None
- self.askAnswer=None
- self.graph=None
-
- @staticmethod
- def parse(source, format='xml'):
- from rdflib import plugin
- parser=plugin.get(format, ResultParser)()
- return parser.parse(source)
-
-
- def serialize(self, destination=None, encoding="utf-8", format='xml', **args):
-
- if self.type in ('CONSTRUCT', 'DESCRIBE'):
- return self.graph.serialize(destination, encoding=encoding, format=format, **args)
-
- """stolen wholesale from graph.serialize"""
- from rdflib import plugin
- serializer=plugin.get(format, ResultSerializer)(self)
- if destination is None:
- stream = BytesIO()
- stream2 = EncodeOnlyUnicode(stream)
- serializer.serialize(stream2, encoding=encoding, **args)
- return stream.getvalue()
- if hasattr(destination, "write"):
- stream = destination
- serializer.serialize(stream, encoding=encoding, **args)
- else:
- location = destination
- scheme, netloc, path, params, query, fragment = urlparse(location)
- if netloc!="":
- print("WARNING: not saving as location" + \
- "is not a local file reference")
- return
- fd, name = tempfile.mkstemp()
- stream = os.fdopen(fd, 'wb')
- serializer.serialize(stream, encoding=encoding, **args)
- stream.close()
- if hasattr(shutil,"move"):
- shutil.move(name, path)
- else:
- shutil.copy(name, path)
- os.remove(name)
-
-
- def __len__(self):
- if self.type=='ASK': return 1
- elif self.type=='SELECT': return len(self.bindings)
- else:
- return len(self.graph)
-
- def __iter__(self):
- if self.type in ("CONSTRUCT", "DESCRIBE"):
- for t in self.graph: yield t
- elif self.type=='ASK':
- yield self.askAnswer
- elif self.type=='SELECT':
- # To remain compatible with the old SPARQLResult behaviour
- # this iterates over lists of variable bindings
- for b in self.bindings:
- yield tuple([b[v] for v in self.vars])
-
-
- def __getattr__(self,name):
- if self.type in ("CONSTRUCT", "DESCRIBE") and self.graph!=None:
- return self.graph.__getattr__(self,name)
- else:
- raise AttributeError("'%s' object has not attribute '%s'"%(self,name))
-
- def __eq__(self, other):
- try:
- if self.type!=other.type: return False
- if self.type=='ASK':
- return self.askAnswer==other.askAnswer
- elif self.type=='SELECT':
- return self.vars==other.vars and self.bindings==other.bindings
- else:
- return self.graph==other.graph
-
- except:
- return False
-
-class ResultParser(object):
-
- def __init__(self):
- pass
-
- def parse(self, source):
- """return a Result object"""
- pass # abstract
-
-class ResultSerializer(object):
-
- def __init__(self, result):
- self.result=result
-
- def serialize(self, stream, encoding="utf-8"):
- """return a string properly serialized"""
- pass # abstract
-