Skip to content

Commit 7adb02f

Browse files
committed
Merge branch 'refactor/data-model' into refactor/423-implement-public-api
2 parents 9be8041 + 6bc1648 commit 7adb02f

File tree

13 files changed

+1946
-290
lines changed

13 files changed

+1946
-290
lines changed

poetry.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@ flake8 = "poetry run flake8 ./test/ ./src/ --count --select=E9,F63,F7,F82 --stat
110110

111111

112112
[tool.pytest.ini_options]
113+
minversion = "6.0"
113114
norecursedirs = "docs/*"
115+
xfail_strict = true
114116
testpaths = [
115117
"test"
116118
]

src/hermes/model/types/__init__.py

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# SPDX-License-Identifier: Apache-2.0
44

55
# SPDX-FileContributor: Michael Meinel
6+
# SPDX-FileContributor: Michael Fritzsche
67

78
from datetime import date, time, datetime
89

@@ -25,52 +26,44 @@
2526
),
2627

2728
# Wrap item from ld_dict in ld_list
28-
(ld_list.is_ld_list, dict(ld_container=ld_list)),
29-
(
30-
lambda c: isinstance(c, list) and all(isinstance(item, dict) for item in c),
31-
dict(ld_container=lambda c, **kw: ld_list([{"@list": c}], **kw))
32-
),
29+
(ld_list.is_ld_list, {"ld_container": ld_list}),
30+
(lambda c: isinstance(c, list), {"ld_container": lambda c, **kw: ld_list(c, **kw)}),
3331

3432
# pythonize items from lists (expanded set is already handled above)
35-
(ld_container.is_json_id, dict(python=lambda c, **_: c["@id"])),
36-
(ld_container.is_typed_json_value, dict(python=ld_container.typed_ld_to_py)),
37-
(ld_container.is_json_value, dict(python=lambda c, **_: c["@value"])),
38-
(ld_list.is_container, dict(ld_container=lambda c, **kw: ld_list([c], **kw))),
39-
(ld_dict.is_json_dict, dict(ld_container=lambda c, **kw: ld_dict([c], **kw))),
33+
(ld_container.is_json_id, {"python": lambda c, **_: c["@id"]}),
34+
(ld_container.is_typed_json_value, {"python": lambda c, **kw: ld_container.typed_ld_to_py([c], **kw)}),
35+
(ld_container.is_json_value, {"python": lambda c, **_: c["@value"]}),
36+
(ld_list.is_container, {"ld_container": lambda c, **kw: ld_list([c], **kw)}),
37+
(ld_dict.is_json_dict, {"ld_container": lambda c, **kw: ld_dict([c], **kw)}),
38+
(lambda v: isinstance(v, str), {"python": lambda v, parent, **_: parent.ld_proc.compact_iri(parent.active_ctx, v)}),
4039

4140
# Convert internal data types to expanded_json
42-
(lambda c: ld_container.is_json_id(c) or ld_container.is_json_value(c), dict(expanded_json=lambda c, **_: [c])),
43-
(ld_dict.is_json_dict, dict(expanded_json=lambda c, **kw: ld_dict.from_dict(c, **kw).ld_value)),
44-
(ld_dict.is_ld_dict, dict(expanded_json=lambda c, **kw: ld_dict.from_dict(c[0], **kw).ld_value)),
41+
(ld_container.is_json_id, {"expanded_json": lambda c, **_: [c]}),
42+
(ld_container.is_ld_id, {"expanded_json": lambda c, **_: c}),
43+
(ld_container.is_json_value, {"expanded_json": lambda c, **_: [c]}),
44+
(ld_container.is_ld_value, {"expanded_json": lambda c, **_: c}),
45+
(ld_dict.is_json_dict, {"expanded_json": lambda c, **kw: ld_dict.from_dict(c, **kw).ld_value}),
4546
(
4647
ld_list.is_container,
47-
dict(
48-
expanded_json=lambda c, **kw: ld_list.from_list(
49-
ld_list([c]).item_list, container=ld_list([c]).container, **kw
50-
).ld_value
51-
),
48+
{"expanded_json": lambda c, **kw: ld_list.from_list(ld_list.get_item_list_from_container(c), **kw).ld_value}
5249
),
5350
(
5451
ld_list.is_ld_list,
55-
dict(
56-
expanded_json=lambda c, **kw: ld_list.from_list(
57-
ld_list(c).item_list, container=ld_list(c).container, **kw
58-
).ld_value
59-
),
52+
{"expanded_json": lambda c, **kw: ld_list.from_list(ld_list.get_item_list_from_container(c[0]), **kw).ld_value}
6053
),
61-
(lambda c: isinstance(c, list), dict(expanded_json=lambda c, **kw: ld_list.from_list(c, **kw).ld_value)),
62-
(lambda v: isinstance(v, (int, float, str, bool)), dict(expanded_json=lambda v, **_: [{"@value": v}])),
54+
(lambda c: isinstance(c, list), {"expanded_json": lambda c, **kw: ld_list.from_list(c, **kw).ld_value}),
55+
(lambda v: isinstance(v, (int, float, str, bool)), {"expanded_json": lambda v, **_: [{"@value": v}]}),
6356
(
6457
lambda v: isinstance(v, datetime),
65-
dict(expanded_json=lambda v, **_: [{"@value": v.isoformat(), "@type": iri_map["schema:DateTime"]}]),
58+
{"expanded_json": lambda v, **_: [{"@value": v.isoformat(), "@type": iri_map["schema:DateTime"]}]}
6659
),
6760
(
6861
lambda v: isinstance(v, date),
69-
dict(expanded_json=lambda v, **_: [{"@value": v.isoformat(), "@type": iri_map["schema:Date"]}]),
62+
{"expanded_json": lambda v, **_: [{"@value": v.isoformat(), "@type": iri_map["schema:Date"]}]}
7063
),
7164
(
7265
lambda v: isinstance(v, time),
73-
dict(expanded_json=lambda v, **_: [{"@value": v.isoformat(), "@type": iri_map["schema:Time"]}]),
66+
{"expanded_json": lambda v, **_: [{"@value": v.isoformat(), "@type": iri_map["schema:Time"]}]}
7467
),
7568
]
7669

0 commit comments

Comments
 (0)