However, when I parse it using rdflib's parseQuery I get the error message "RecursionError: maximum recursion depth exceeded in comparison".
query_tree = parser.parseQuery(query)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/rdflib/plugins/sparql/parser.py:1544: in parseQuery
return Query.parseString(q, parseAll=True)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:1131: in parse_string
loc, tokens = self._parse(instring, 0)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4114: in parseImpl
return e._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:5226: in parseImpl
return super().parseImpl(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4114: in parseImpl
return e._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4891: in parseImpl
return super().parseImpl(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4790: in parseImpl
loc, tokens = self_expr_parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3864: in parseImpl
loc, resultlist = self.exprs[0]._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4114: in parseImpl
return e._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:5226: in parseImpl
return super().parseImpl(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4114: in parseImpl
return e._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4891: in parseImpl
return super().parseImpl(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4790: in parseImpl
loc, tokens = self_expr_parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3864: in parseImpl
loc, resultlist = self.exprs[0]._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4114: in parseImpl
return e._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:823: in _parseNoCache
tokens = self.postParse(instring, loc, tokens)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/rdflib/plugins/sparql/parserutils.py:227: in postParse
service_string = sgp.searchString(instring)[0][0]
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:1311: in search_string
[t for t, s, e in self.scan_string(instring, maxMatches, debug=debug)]
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:1311: in <listcomp>
[t for t, s, e in self.scan_string(instring, maxMatches, debug=debug)]
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:1202: in scan_string
nextLoc, tokens = parseFn(instring, preloc, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
E RecursionError: maximum recursion depth exceeded
!!! Recursion detected (same locals & position)
----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
File "/home/fkovacev/.vscode/extensions/ms-python.python-2022.16.0/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py", line 359, in __call__
is_stepping = pydev_step_cmd != -1
RecursionError: maximum recursion depth exceeded in comparison
Consider following query straight from wikidata (Cats, with pictures). To execute this query and get results using my local GraphDB instance, I need to wrap the body with SERVICE pointing ot the wikidata SPARQL endpoint. So the query is valid and returns a non-empty result set.
However, when I parse it using rdflib's parseQuery I get the error message "RecursionError: maximum recursion depth exceeded in comparison".
Full stack trace