summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Car <nicholas.car@surroundaustralia.com>2020-12-28 10:25:39 +1000
committerGitHub <noreply@github.com>2020-12-28 10:25:39 +1000
commit6c294aa341dfcbd41a34dbb3b07b4701f71d0c3e (patch)
treed674e48e51f7eddeafa8fa0b47f254007f57148b
parent009dc24f413fb6136e0ffbb78c4963749f8999bb (diff)
parent0f191aede2e9a12d00fad737c8a56062c50952a0 (diff)
downloadrdflib-6c294aa341dfcbd41a34dbb3b07b4701f71d0c3e.tar.gz
Merge pull request #1193 from FlorianLudwig/sparql-timezone
do not use current time in sparql TIMEZONE
-rw-r--r--rdflib/plugins/sparql/operators.py2
-rw-r--r--rdflib/plugins/sparql/sparql.py10
2 files changed, 9 insertions, 3 deletions
diff --git a/rdflib/plugins/sparql/operators.py b/rdflib/plugins/sparql/operators.py
index a0e9d314..126efdd9 100644
--- a/rdflib/plugins/sparql/operators.py
+++ b/rdflib/plugins/sparql/operators.py
@@ -492,7 +492,7 @@ def Builtin_TIMEZONE(e, ctx):
if not dt.tzinfo:
raise SPARQLError("datatime has no timezone: %r" % dt)
- delta = dt.tzinfo.utcoffset(ctx.now)
+ delta = dt.utcoffset()
d = delta.days
s = delta.seconds
diff --git a/rdflib/plugins/sparql/sparql.py b/rdflib/plugins/sparql/sparql.py
index 5df3db68..b75b8054 100644
--- a/rdflib/plugins/sparql/sparql.py
+++ b/rdflib/plugins/sparql/sparql.py
@@ -220,7 +220,7 @@ class FrozenBindings(FrozenDict):
return FrozenBindings(self.ctx, (x for x in self.items() if x[0] in these))
-class QueryContext:
+class QueryContext(object):
"""
Query context - passed along when evaluating the query
"""
@@ -242,10 +242,16 @@ class QueryContext:
self.graph = graph
self.prologue = None
- self.now = datetime.datetime.now(isodate.tzinfo.UTC)
+ self._now = None
self.bnodes = collections.defaultdict(BNode)
+ @property
+ def now(self) -> datetime.datetime:
+ if self._now is None:
+ self._now = datetime.datetime.now(isodate.tzinfo.UTC)
+ return self._now
+
def clone(self, bindings=None):
r = QueryContext(
self._dataset if self._dataset is not None else self.graph,