Skip to content

Commit

Permalink
Merge aeff7a6 into 081a974
Browse files Browse the repository at this point in the history
  • Loading branch information
cthoyt committed Mar 28, 2023
2 parents 081a974 + aeff7a6 commit f949c4e
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 20 deletions.
4 changes: 2 additions & 2 deletions rdflib/plugins/sparql/evaluate.py
Original file line number Diff line number Diff line change
Expand Up @@ -642,7 +642,7 @@ def evalDescribeQuery(ctx: QueryContext, query) -> Dict[str, Union[str, Graph]]:
def evalQuery(
graph: Graph,
query: Query,
initBindings: Mapping[str, Identifier],
initBindings: Optional[Mapping[str, Identifier]] = None,
base: Optional[str] = None,
) -> Mapping[Any, Any]:
"""
Expand All @@ -661,7 +661,7 @@ def evalQuery(
documentation.
"""

initBindings = dict((Variable(k), v) for k, v in initBindings.items())
initBindings = dict((Variable(k), v) for k, v in (initBindings or {}).items())

ctx = QueryContext(graph, initBindings=initBindings)

Expand Down
34 changes: 20 additions & 14 deletions rdflib/plugins/sparql/processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,30 @@


def prepareQuery(
queryString: str, initNs: Mapping[str, Any] = {}, base: Optional[str] = None
queryString: str,
initNs: Optional[Mapping[str, Any]] = {},
base: Optional[str] = None,
) -> Query:
"""
Parse and translate a SPARQL Query
"""
if initNs is None:
initNs = {}
ret = translateQuery(parseQuery(queryString), base, initNs)
ret._original_args = (queryString, initNs, base)
return ret


def prepareUpdate(
updateString: str, initNs: Mapping[str, Any] = {}, base: Optional[str] = None
updateString: str,
initNs: Optional[Mapping[str, Any]] = {},
base: Optional[str] = None,
) -> Update:
"""
Parse and translate a SPARQL Update
"""
if initNs is None:
initNs = {}
ret = translateUpdate(parseUpdate(updateString), base, initNs)
ret._original_args = (updateString, initNs, base)
return ret
Expand All @@ -43,8 +51,8 @@ def prepareUpdate(
def processUpdate(
graph: Graph,
updateString: str,
initBindings: Mapping[str, Identifier] = {},
initNs: Mapping[str, Any] = {},
initBindings: Optional[Mapping[str, Identifier]] = {},
initNs: Optional[Mapping[str, Any]] = {},
base: Optional[str] = None,
) -> None:
"""
Expand Down Expand Up @@ -73,8 +81,8 @@ def __init__(self, graph):
def update(
self,
strOrQuery: Union[str, Update],
initBindings: Mapping[str, Identifier] = {},
initNs: Mapping[str, Any] = {},
initBindings: Optional[Mapping[str, Identifier]] = {},
initNs: Optional[Mapping[str, Any]] = {},
) -> None:
"""
.. caution::
Expand Down Expand Up @@ -108,8 +116,8 @@ def __init__(self, graph):
def query( # type: ignore[override]
self,
strOrQuery: Union[str, Query],
initBindings: Mapping[str, Identifier] = {},
initNs: Mapping[str, Any] = {},
initBindings: Optional[Mapping[str, Identifier]] = {},
initNs: Optional[Mapping[str, Any]] = {},
base: Optional[str] = None,
DEBUG: bool = False,
) -> Mapping[str, Any]:
Expand All @@ -132,9 +140,7 @@ def query( # type: ignore[override]
documentation.
"""

if not isinstance(strOrQuery, Query):
parsetree = parseQuery(strOrQuery)
query = translateQuery(parsetree, base, initNs)
else:
query = strOrQuery
return evalQuery(self.graph, query, initBindings, base)
if isinstance(strOrQuery, str):
strOrQuery = translateQuery(parseQuery(strOrQuery), base, initNs)

return evalQuery(self.graph, strOrQuery, initBindings, base)
6 changes: 4 additions & 2 deletions rdflib/plugins/sparql/update.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,9 @@ def evalCopy(ctx: QueryContext, u: CompValue) -> None:


def evalUpdate(
graph: Graph, update: Update, initBindings: Mapping[str, Identifier] = {}
graph: Graph,
update: Update,
initBindings: Optional[Mapping[str, Identifier]] = {},
) -> None:
"""
Expand Down Expand Up @@ -315,7 +317,7 @@ def evalUpdate(
"""

for u in update.algebra:
initBindings = dict((Variable(k), v) for k, v in initBindings.items())
initBindings = dict((Variable(k), v) for k, v in (initBindings or {}).items())

ctx = QueryContext(graph, initBindings=initBindings)
ctx.prologue = u.prologue
Expand Down
4 changes: 2 additions & 2 deletions rdflib/query.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ def __init__(self, graph: "Graph"):
def query( # type: ignore[empty-body]
self,
strOrQuery: Union[str, "Query"], # noqa: N803
initBindings: Mapping["str", "Identifier"] = {}, # noqa: N803
initNs: Mapping[str, Any] = {}, # noqa: N803
initBindings: Optional[Mapping["str", "Identifier"]] = {}, # noqa: N803
initNs: Optional[Mapping[str, Any]] = {}, # noqa: N803
DEBUG: bool = False,
) -> Mapping[str, Any]:
pass
Expand Down

0 comments on commit f949c4e

Please sign in to comment.