Skip to content

Commit 7f8a1ee

Browse files
committed
fix: update to oold api changes
1 parent 1c8951f commit 7f8a1ee

2 files changed

Lines changed: 14 additions & 8 deletions

File tree

setup.cfg

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ package_dir =
4848
# new major versions. This works if the required packages follow Semantic Versioning.
4949
# For more information, check out https://semver.org/.
5050
install_requires =
51-
oold
51+
oold>=0.11.0
5252
opensemantic
5353
opensemantic.core
5454
pydantic>=1.10.17
55-
datamodel-code-generator>=0.25
55+
datamodel-code-generator>=0.51.0
5656
mwclient>=0.11.0
5757
rdflib
5858
PyLD

src/osw/core.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818
import rdflib
1919
from jsonpath_ng.ext import parse
2020
from mwclient.client import Site
21-
from oold.generator import Generator
22-
from oold.model.v1 import (
21+
from oold.backend.interface import (
2322
ResolveParam,
2423
Resolver,
2524
ResolveResult,
2625
SetResolverParam,
2726
set_resolver,
2827
)
28+
from oold.generator import Generator
2929
from oold.utils.codegen import OOLDJsonSchemaParser
3030
from opensemantic import OswBaseModel
3131
from pydantic import PydanticDeprecatedSince20
@@ -114,11 +114,17 @@ def __init__(self, **data: Any):
114114
# implement resolver backend with osw.load_entity
115115
class OswDefaultResolver(Resolver):
116116

117-
osw_obj: OSW
117+
# oold.backend.interface is pydantic v2, so we cannot use
118+
# our v1 OSW model as attribute directly
119+
osw_obj: Any
120+
121+
def resolve_iris(self, iris: List[str]) -> dict[str, dict]:
122+
pass
118123

119124
def resolve(self, request: ResolveParam):
120125
# print("RESOLVE", request)
121-
entities = self.osw_obj.load_entity(
126+
osw_obj: OSW = self.osw_obj
127+
entities = osw_obj.load_entity(
122128
OSW.LoadEntityParam(titles=request.iris)
123129
).entities
124130
# create a dict with request.iris as keys and the loaded entities as values
@@ -621,8 +627,7 @@ def _fetch_schema(self, fetchSchemaParam: _FetchSchemaParam = None) -> None:
621627
# use_default=True,
622628
apply_default_values_for_required_fields=True,
623629
use_unique_items_as_set=True,
624-
# enum_field_as_literal=datamodel_code_generator.LiteralType.All,
625-
enum_field_as_literal="all",
630+
enum_field_as_literal=datamodel_code_generator.LiteralType.Off,
626631
# will create MyEnum(str, Enum) instead of MyEnum(Enum)
627632
use_subclass_enum=True,
628633
set_default_enum_member=True,
@@ -634,6 +639,7 @@ def _fetch_schema(self, fetchSchemaParam: _FetchSchemaParam = None) -> None:
634639
collapse_root_models=True,
635640
reuse_model=True,
636641
field_include_all_keys=True,
642+
allof_class_hierarchy=datamodel_code_generator.AllOfClassHierarchy.Always,
637643
)
638644
warnings.filterwarnings("default", category=PydanticDeprecatedSince20)
639645

0 commit comments

Comments
 (0)