Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
aucampia committed Jul 13, 2022
1 parent ac8ef91 commit 9829241
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
15 changes: 11 additions & 4 deletions rdflib/namespace/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -618,6 +618,13 @@ def expand_curie(self, curie: str) -> Union[URIRef, None]:
f"Prefix \"{curie.split(':')[0]}\" not bound to any namespace."
)

def _store_bind(self, prefix: str, namespace: URIRef, override: bool) -> None:
try:
self.store.bind(prefix, namespace, override=override)
except TypeError as error:
logger.warning("caught %s", error, exc_info=True)
self.store.bind(prefix, namespace)

def bind(
self,
prefix: Optional[str],
Expand Down Expand Up @@ -652,7 +659,7 @@ def bind(
if bound_namespace and bound_namespace != namespace:

if replace:
self.store.bind(prefix, namespace, override=override)
self._store_bind(prefix, namespace, override=override)
insert_trie(self.__trie, str(namespace))
return
# prefix already in use for different namespace
Expand All @@ -673,16 +680,16 @@ def bind(
if not self.store.namespace(new_prefix):
break
num += 1
self.store.bind(new_prefix, namespace, override=override)
self._store_bind(new_prefix, namespace, override=override)
else:
bound_prefix = self.store.prefix(namespace)
if bound_prefix is None:
self.store.bind(prefix, namespace, override=override)
self._store_bind(prefix, namespace, override=override)
elif bound_prefix == prefix:
pass # already bound
else:
if override or bound_prefix.startswith("_"): # or a generated prefix
self.store.bind(prefix, namespace, override=override)
self._store_bind(prefix, namespace, override=override)

insert_trie(self.__trie, str(namespace))

Expand Down
15 changes: 15 additions & 0 deletions test/test_graph/test_graph_store.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"""
Tests for usage of the Store interface from Graph.
"""

from rdflib.plugins.stores.memory import Memory

# from rdflib.store import Store


class StoreA(Memory):
pass


def test_graph_store_bind() -> None:
pass

0 comments on commit 9829241

Please sign in to comment.