@@ -107,8 +107,7 @@ def init_module(self, mod, modules):
107
107
try :
108
108
self .out = f
109
109
self .write (f'{ COMMENT } \n ' )
110
- relimport = '.' * len (dirpath )
111
- self .write (f'from { relimport } ._tables import *' )
110
+ self .write (f'from { self .basemodule } ._tables import *' )
112
111
yield f
113
112
finally :
114
113
self .out = None
@@ -142,7 +141,7 @@ def spec_to_modules_dict(self, spec):
142
141
143
142
if len (spec ['prop_objects' ]) > 0 :
144
143
warnings .warn (
145
- f"Skipping multi properties: SQLAlchemy reflection doesn't "
144
+ f"Skipping multi properties: SQLModel reflection doesn't "
146
145
f"support multi properties as they produce models without a "
147
146
f"clear identity." ,
148
147
GelORMWarning ,
@@ -186,52 +185,34 @@ def render_models(self, spec):
186
185
self .write ()
187
186
self .render_link_table (rec )
188
187
189
- if 'default' not in modules or len (modules ) > 1 :
190
- skipped = ', ' .join ([repr (m ) for m in modules if m != 'default' ])
191
- warnings .warn (
192
- f"Skipping modules { skipped } : SQLModel reflection doesn't "
193
- f"support multiple modules or non-default modules." ,
194
- GelORMWarning ,
195
- )
196
-
197
- with self .init_module ('default' , modules ):
198
- maps = modules ['default' ]
188
+ for mod , maps in modules .items ():
199
189
if not maps :
200
190
# skip apparently empty modules
201
- return
191
+ continue
202
192
203
- link_objects = sorted (
204
- maps .get ('link_objects' , {}).values (),
205
- key = lambda x : x ['name' ]
206
- )
207
- for lobj in link_objects :
208
- self .write ()
209
- self .render_link_object (lobj , modules )
193
+ with self .init_module (mod , modules ):
194
+ link_objects = sorted (
195
+ maps .get ('link_objects' , {}).values (),
196
+ key = lambda x : x ['name' ]
197
+ )
198
+ for lobj in link_objects :
199
+ self .write ()
200
+ self .render_link_object (lobj , modules )
210
201
211
- objects = sorted (
212
- maps .get ('object_types' , {}).values (),
213
- key = lambda x : x ['name' ]
214
- )
215
- for rec in maps .get ('object_types' , {}).values ():
216
- self .write ()
217
- self .render_type (rec , modules )
202
+ objects = sorted (
203
+ maps .get ('object_types' , {}).values (),
204
+ key = lambda x : x ['name' ]
205
+ )
206
+ for rec in maps .get ('object_types' , {}).values ():
207
+ self .write ()
208
+ self .render_type (rec , modules )
218
209
219
210
def render_link_table (self , spec ):
220
211
mod , source = get_mod_and_name (spec ["source" ])
221
212
tmod , target = get_mod_and_name (spec ["target" ])
222
213
s_fk = self .get_fk (mod , source , 'default' )
223
214
t_fk = self .get_fk (tmod , target , 'default' )
224
215
225
- if mod != 'default' or tmod != 'default' :
226
- skipped = ', ' .join (
227
- [repr (m ) for m in {mod , tmod } if m != 'default' ])
228
- warnings .warn (
229
- f"Skipping modules { skipped } : SQLModel reflection doesn't "
230
- f"support multiple modules or non-default modules." ,
231
- GelORMWarning ,
232
- )
233
- return
234
-
235
216
self .write ()
236
217
self .write (f'class { spec ["name" ]} (sm.SQLModel, table=True):' )
237
218
self .indent ()
@@ -263,14 +244,6 @@ def render_link_object(self, spec, modules):
263
244
sql_name = spec ['table' ]
264
245
source_name , source_link = sql_name .split ('.' )
265
246
266
- if mod != 'default' :
267
- warnings .warn (
268
- f"Skipping module { mod !r} : SQLModel reflection doesn't "
269
- f"support multiple modules or non-default modules." ,
270
- GelORMWarning ,
271
- )
272
- return
273
-
274
247
self .write ()
275
248
self .write (f'class { name } (sm.SQLModel, table=True):' )
276
249
self .indent ()
@@ -292,14 +265,6 @@ def render_link_object(self, spec, modules):
292
265
lname = link ['name' ]
293
266
tmod , target = get_mod_and_name (link ['target' ]['name' ])
294
267
295
- if tmod != 'default' :
296
- warnings .warn (
297
- f"Skipping module { tmod !r} : SQLModel reflection doesn't "
298
- f"support multiple modules or non-default modules." ,
299
- GelORMWarning ,
300
- )
301
- return
302
-
303
268
fk = self .get_fk (tmod , target , mod )
304
269
sqlafk = self .get_sqla_fk (tmod , target , mod )
305
270
pyname = self .get_py_name (tmod , target , mod )
@@ -341,14 +306,6 @@ def render_type(self, spec, modules):
341
306
mod , name = get_mod_and_name (spec ['name' ])
342
307
sql_name = get_sql_name (spec ['name' ])
343
308
344
- if mod != 'default' :
345
- warnings .warn (
346
- f"Skipping module { mod !r} : SQLModel reflection doesn't "
347
- f"support multiple modules or non-default modules." ,
348
- GelORMWarning ,
349
- )
350
- return
351
-
352
309
self .write ()
353
310
self .write (f'class { name } (sm.SQLModel, table=True):' )
354
311
self .indent ()
@@ -451,14 +408,6 @@ def render_link(self, spec, mod, parent, modules):
451
408
cardinality = spec ['cardinality' ]
452
409
bklink = f'_{ name } _{ parent } '
453
410
454
- if tmod != 'default' :
455
- warnings .warn (
456
- f"Skipping module { tmod !r} : SQLModel reflection doesn't "
457
- f"support multiple modules or non-default modules." ,
458
- GelORMWarning ,
459
- )
460
- return
461
-
462
411
if spec .get ('has_link_object' ):
463
412
# intermediate object will have the actual source and target
464
413
# links, so the link here needs to be treated similar to a
@@ -526,14 +475,6 @@ def render_backlink(self, spec, mod, modules):
526
475
exclusive = spec ['exclusive' ]
527
476
bklink = spec ['fwname' ]
528
477
529
- if tmod != 'default' :
530
- warnings .warn (
531
- f"Skipping module { tmod !r} : SQLModel reflection doesn't "
532
- f"support multiple modules or non-default modules." ,
533
- GelORMWarning ,
534
- )
535
- return
536
-
537
478
if spec .get ('has_link_object' ):
538
479
# intermediate object will have the actual source and target
539
480
# links, so the link here needs to refer to the intermediate
0 commit comments