Skip to content

Commit

Permalink
Merge pull request #129 from EMMC-ASBL/support-list-in-convert
Browse files Browse the repository at this point in the history
Added support for lists in tripper.convert
  • Loading branch information
jesper-friis committed Sep 12, 2023
2 parents d2ec5cb + bffcc45 commit d23f316
Show file tree
Hide file tree
Showing 6 changed files with 310 additions and 120 deletions.
21 changes: 11 additions & 10 deletions tests/convert/test_convert.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Test convertions."""
# pylint: disable=invalid-name
from tripper import Triplestore
from tripper.convert import load_dict, save_dict
from tripper.convert import load_container, save_container

ts = Triplestore(backend="rdflib")
EX = ts.bind("ex", "http://example.com/ex#")
Expand All @@ -23,32 +23,33 @@
"key3": 3.14,
"key4": None,
"key5": True,
# "key6": ["a", 1, 2.2, None], # lists are not supported yet...
"key6": False,
"key7": ["a", 1, 2.2, True, None],
},
}

# Store dictionaries to triplestore
save_dict(ts, config1, EX.config1)
save_dict(ts, config2, EX.config2)
save_container(ts, config1, EX.config1)
save_container(ts, config2, EX.config2)

# Print content of triplestore
# print(ts.serialize())

# Load dictionaries from triplestore
d1 = load_dict(ts, EX.config1)
d2 = load_dict(ts, EX.config2)
d1 = load_container(ts, EX.config1)
d2 = load_container(ts, EX.config2)

# Check that we got back what we stored
assert d1 == config1
assert d2 == config2


# Now, test serialising using recognised_keys
save_dict(ts, config1, EX.config1b, recognised_keys="basic")
save_dict(ts, config2, EX.config2b, recognised_keys="basic")
save_container(ts, config1, EX.config1b, recognised_keys="basic")
save_container(ts, config2, EX.config2b, recognised_keys="basic")

d1b = load_dict(ts, EX.config1b, recognised_keys="basic")
d2b = load_dict(ts, EX.config2b, recognised_keys="basic")
d1b = load_container(ts, EX.config1b, recognised_keys="basic")
d2b = load_container(ts, EX.config2b, recognised_keys="basic")

assert d1b == config1
assert d2b == config2
5 changes: 5 additions & 0 deletions tests/test_literals.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ def test_parse_literal() -> None:
assert literal.lang is None
assert literal.datatype == XSD.boolean

literal = parse_literal(Literal(False).n3())
assert literal.value is False
assert literal.lang is None
assert literal.datatype == XSD.boolean

dt = datetime(2022, 10, 23)
literal = parse_literal(Literal(dt).n3())
assert literal.value == dt
Expand Down
7 changes: 3 additions & 4 deletions tests/test_triplestore.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,9 @@ def test_triplestore( # pylint: disable=too-many-locals

# Test value() method
assert ts.value(func_iri, DCTERMS.description) == example_function.__doc__
assert (
ts.value(func_iri, DCTERMS.description, lang="en")
== example_function.__doc__
)
# assert ts.value(
# func_iri, DCTERMS.description, lang="en"
# ) == example_function.__doc__
assert ts.value(func_iri, DCTERMS.description, lang="de") is None


Expand Down
15 changes: 11 additions & 4 deletions tripper/convert/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
"""Tripper sub-package for converting between RDF and other repetations."""
from .convert import from_dict, load_dict, save_dict
from .convert import (
from_container,
from_dict,
load_container,
load_dict,
save_container,
save_dict,
)

__all__ = [
"from_dict",
"save_dict",
"load_dict",
"from_container",
"save_container",
"load_container",
]

0 comments on commit d23f316

Please sign in to comment.