@@ -64,10 +64,12 @@ def __init__(self, schema_file_path: str, root_path: str, instances: Optional[di
64
64
schema_file_path [len (root_path ) + 1 :].replace (".schema.omi.json" , "" ).split ("/" )
65
65
)
66
66
self .version = _relative_path_without_extension [0 ]
67
+ self .template_name = "src/module_template.py.txt"
67
68
if self .version in ["v3.0" , "v2.0" , "v1.0" ]:
68
- self .template_name = "src/module_template_old.py.txt "
69
+ self .context_vocab = "https://openminds.ebrains.eu/vocab/ "
69
70
else :
70
- self .template_name = "src/module_template.py.txt"
71
+ self .context_vocab = "https://openminds.om-i.org/props/"
72
+
71
73
self .relative_path_without_extension = [
72
74
generate_python_name (part ) for part in _relative_path_without_extension [1 :]
73
75
]
@@ -86,7 +88,7 @@ def _version_module(self):
86
88
def _target_file_without_extension (self ) -> str :
87
89
return os .path .join (self ._version_module , "/" .join (self .relative_path_without_extension ))
88
90
89
- def translate (self , embedded = None , class_module_dict = None ):
91
+ def translate (self , embedded = None , class_to_module_map = None ):
90
92
def get_type (property ):
91
93
type_map = {
92
94
"string" : "str" ,
@@ -104,8 +106,8 @@ def get_type(property):
104
106
types = []
105
107
for item in property ["_linkedTypes" ]:
106
108
openminds_module_from_type , class_name = item .split ("/" )[- 2 :]
107
- if isinstance (class_module_dict ,dict ) and (class_name in class_module_dict ):
108
- openminds_module = generate_python_name (class_module_dict [class_name ])
109
+ if isinstance (class_to_module_map ,dict ) and (class_name in class_to_module_map ):
110
+ openminds_module = generate_python_name (class_to_module_map [class_name ])
109
111
else :
110
112
openminds_module = generate_python_name (openminds_module_from_type )
111
113
types .append (f"openminds.{ self ._version_module } .{ openminds_module } .{ class_name } " )
@@ -116,8 +118,8 @@ def get_type(property):
116
118
types = []
117
119
for item in property ["_embeddedTypes" ]:
118
120
openminds_module_from_type , class_name = item .split ("/" )[- 2 :]
119
- if isinstance (class_module_dict ,dict ) and (class_name in class_module_dict ):
120
- openminds_module = generate_python_name (class_module_dict [class_name ])
121
+ if isinstance (class_to_module_map ,dict ) and (class_name in class_to_module_map ):
122
+ openminds_module = generate_python_name (class_to_module_map [class_name ])
121
123
else :
122
124
openminds_module = generate_python_name (openminds_module_from_type )
123
125
types .append (f"openminds.{ self ._version_module } .{ openminds_module } .{ class_name } " )
@@ -210,6 +212,7 @@ def filter_instance(instance):
210
212
"class_name" : class_name ,
211
213
"openminds_type" : openminds_type ,
212
214
"schema_version" : self .version ,
215
+ "context_vocab" : self .context_vocab ,
213
216
"properties" : properties ,
214
217
"additional_methods" : "" ,
215
218
"instances" : instances
@@ -242,11 +245,11 @@ def filter_instance(instance):
242
245
if extra_imports :
243
246
self .context ["preamble" ] = "\n " .join (sorted (extra_imports ))
244
247
245
- def build (self , embedded = None , class_module_dict = None ):
248
+ def build (self , embedded = None , class_to_module_map = None ):
246
249
target_file_path = os .path .join ("target" , "openminds" , f"{ self ._target_file_without_extension ()} .py" )
247
250
os .makedirs (os .path .dirname (target_file_path ), exist_ok = True )
248
251
249
- self .translate (embedded = embedded , class_module_dict = class_module_dict )
252
+ self .translate (embedded = embedded , class_to_module_map = class_to_module_map )
250
253
251
254
with open (target_file_path , "w" ) as target_file :
252
255
contents = self .env .get_template (self .template_name ).render (self .context )
0 commit comments