Skip to content

Commit 853d787

Browse files
authored
♻️ Refactor type generation of selects re-order to prioritize models to optimize editor support (#718)
1 parent e5fddb9 commit 853d787

File tree

3 files changed

+85
-85
lines changed

3 files changed

+85
-85
lines changed

scripts/generate_select.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class Arg(BaseModel):
2424
signatures: List[Tuple[List[Arg], List[str]]] = []
2525

2626
for total_args in range(2, number_of_types + 1):
27-
arg_types_tuples = product(["scalar", "model"], repeat=total_args)
27+
arg_types_tuples = product(["model", "scalar"], repeat=total_args)
2828
for arg_type_tuple in arg_types_tuples:
2929
args: List[Arg] = []
3030
return_types: List[str] = []

sqlmodel/sql/expression.py

Lines changed: 82 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -328,12 +328,12 @@ class SelectOfScalar(SelectBase[_T]):
328328

329329

330330
@overload
331-
def select(__ent0: _TScalar_0) -> SelectOfScalar[_TScalar_0]: # type: ignore
331+
def select(__ent0: _TCCA[_T0]) -> SelectOfScalar[_T0]:
332332
...
333333

334334

335335
@overload
336-
def select(__ent0: _TCCA[_T0]) -> SelectOfScalar[_T0]:
336+
def select(__ent0: _TScalar_0) -> SelectOfScalar[_TScalar_0]: # type: ignore
337337
...
338338

339339

@@ -342,17 +342,9 @@ def select(__ent0: _TCCA[_T0]) -> SelectOfScalar[_T0]:
342342

343343
@overload
344344
def select( # type: ignore
345-
entity_0: _TScalar_0,
346-
entity_1: _TScalar_1,
347-
) -> Select[Tuple[_TScalar_0, _TScalar_1]]:
348-
...
349-
350-
351-
@overload
352-
def select( # type: ignore
353-
entity_0: _TScalar_0,
345+
__ent0: _TCCA[_T0],
354346
__ent1: _TCCA[_T1],
355-
) -> Select[Tuple[_TScalar_0, _T1]]:
347+
) -> Select[Tuple[_T0, _T1]]:
356348
...
357349

358350

@@ -366,45 +358,44 @@ def select( # type: ignore
366358

367359
@overload
368360
def select( # type: ignore
369-
__ent0: _TCCA[_T0],
361+
entity_0: _TScalar_0,
370362
__ent1: _TCCA[_T1],
371-
) -> Select[Tuple[_T0, _T1]]:
363+
) -> Select[Tuple[_TScalar_0, _T1]]:
372364
...
373365

374366

375367
@overload
376368
def select( # type: ignore
377369
entity_0: _TScalar_0,
378370
entity_1: _TScalar_1,
379-
entity_2: _TScalar_2,
380-
) -> Select[Tuple[_TScalar_0, _TScalar_1, _TScalar_2]]:
371+
) -> Select[Tuple[_TScalar_0, _TScalar_1]]:
381372
...
382373

383374

384375
@overload
385376
def select( # type: ignore
386-
entity_0: _TScalar_0,
387-
entity_1: _TScalar_1,
377+
__ent0: _TCCA[_T0],
378+
__ent1: _TCCA[_T1],
388379
__ent2: _TCCA[_T2],
389-
) -> Select[Tuple[_TScalar_0, _TScalar_1, _T2]]:
380+
) -> Select[Tuple[_T0, _T1, _T2]]:
390381
...
391382

392383

393384
@overload
394385
def select( # type: ignore
395-
entity_0: _TScalar_0,
386+
__ent0: _TCCA[_T0],
396387
__ent1: _TCCA[_T1],
397388
entity_2: _TScalar_2,
398-
) -> Select[Tuple[_TScalar_0, _T1, _TScalar_2]]:
389+
) -> Select[Tuple[_T0, _T1, _TScalar_2]]:
399390
...
400391

401392

402393
@overload
403394
def select( # type: ignore
404-
entity_0: _TScalar_0,
405-
__ent1: _TCCA[_T1],
395+
__ent0: _TCCA[_T0],
396+
entity_1: _TScalar_1,
406397
__ent2: _TCCA[_T2],
407-
) -> Select[Tuple[_TScalar_0, _T1, _T2]]:
398+
) -> Select[Tuple[_T0, _TScalar_1, _T2]]:
408399
...
409400

410401

@@ -419,28 +410,28 @@ def select( # type: ignore
419410

420411
@overload
421412
def select( # type: ignore
422-
__ent0: _TCCA[_T0],
423-
entity_1: _TScalar_1,
413+
entity_0: _TScalar_0,
414+
__ent1: _TCCA[_T1],
424415
__ent2: _TCCA[_T2],
425-
) -> Select[Tuple[_T0, _TScalar_1, _T2]]:
416+
) -> Select[Tuple[_TScalar_0, _T1, _T2]]:
426417
...
427418

428419

429420
@overload
430421
def select( # type: ignore
431-
__ent0: _TCCA[_T0],
422+
entity_0: _TScalar_0,
432423
__ent1: _TCCA[_T1],
433424
entity_2: _TScalar_2,
434-
) -> Select[Tuple[_T0, _T1, _TScalar_2]]:
425+
) -> Select[Tuple[_TScalar_0, _T1, _TScalar_2]]:
435426
...
436427

437428

438429
@overload
439430
def select( # type: ignore
440-
__ent0: _TCCA[_T0],
441-
__ent1: _TCCA[_T1],
431+
entity_0: _TScalar_0,
432+
entity_1: _TScalar_1,
442433
__ent2: _TCCA[_T2],
443-
) -> Select[Tuple[_T0, _T1, _T2]]:
434+
) -> Select[Tuple[_TScalar_0, _TScalar_1, _T2]]:
444435
...
445436

446437

@@ -449,78 +440,77 @@ def select( # type: ignore
449440
entity_0: _TScalar_0,
450441
entity_1: _TScalar_1,
451442
entity_2: _TScalar_2,
452-
entity_3: _TScalar_3,
453-
) -> Select[Tuple[_TScalar_0, _TScalar_1, _TScalar_2, _TScalar_3]]:
443+
) -> Select[Tuple[_TScalar_0, _TScalar_1, _TScalar_2]]:
454444
...
455445

456446

457447
@overload
458448
def select( # type: ignore
459-
entity_0: _TScalar_0,
460-
entity_1: _TScalar_1,
461-
entity_2: _TScalar_2,
449+
__ent0: _TCCA[_T0],
450+
__ent1: _TCCA[_T1],
451+
__ent2: _TCCA[_T2],
462452
__ent3: _TCCA[_T3],
463-
) -> Select[Tuple[_TScalar_0, _TScalar_1, _TScalar_2, _T3]]:
453+
) -> Select[Tuple[_T0, _T1, _T2, _T3]]:
464454
...
465455

466456

467457
@overload
468458
def select( # type: ignore
469-
entity_0: _TScalar_0,
470-
entity_1: _TScalar_1,
459+
__ent0: _TCCA[_T0],
460+
__ent1: _TCCA[_T1],
471461
__ent2: _TCCA[_T2],
472462
entity_3: _TScalar_3,
473-
) -> Select[Tuple[_TScalar_0, _TScalar_1, _T2, _TScalar_3]]:
463+
) -> Select[Tuple[_T0, _T1, _T2, _TScalar_3]]:
474464
...
475465

476466

477467
@overload
478468
def select( # type: ignore
479-
entity_0: _TScalar_0,
480-
entity_1: _TScalar_1,
481-
__ent2: _TCCA[_T2],
469+
__ent0: _TCCA[_T0],
470+
__ent1: _TCCA[_T1],
471+
entity_2: _TScalar_2,
482472
__ent3: _TCCA[_T3],
483-
) -> Select[Tuple[_TScalar_0, _TScalar_1, _T2, _T3]]:
473+
) -> Select[Tuple[_T0, _T1, _TScalar_2, _T3]]:
484474
...
485475

486476

487477
@overload
488478
def select( # type: ignore
489-
entity_0: _TScalar_0,
479+
__ent0: _TCCA[_T0],
490480
__ent1: _TCCA[_T1],
491481
entity_2: _TScalar_2,
492482
entity_3: _TScalar_3,
493-
) -> Select[Tuple[_TScalar_0, _T1, _TScalar_2, _TScalar_3]]:
483+
) -> Select[Tuple[_T0, _T1, _TScalar_2, _TScalar_3]]:
494484
...
495485

496486

497487
@overload
498488
def select( # type: ignore
499-
entity_0: _TScalar_0,
500-
__ent1: _TCCA[_T1],
501-
entity_2: _TScalar_2,
489+
__ent0: _TCCA[_T0],
490+
entity_1: _TScalar_1,
491+
__ent2: _TCCA[_T2],
502492
__ent3: _TCCA[_T3],
503-
) -> Select[Tuple[_TScalar_0, _T1, _TScalar_2, _T3]]:
493+
) -> Select[Tuple[_T0, _TScalar_1, _T2, _T3]]:
504494
...
505495

506496

507497
@overload
508498
def select( # type: ignore
509-
entity_0: _TScalar_0,
510-
__ent1: _TCCA[_T1],
499+
__ent0: _TCCA[_T0],
500+
entity_1: _TScalar_1,
511501
__ent2: _TCCA[_T2],
512502
entity_3: _TScalar_3,
513-
) -> Select[Tuple[_TScalar_0, _T1, _T2, _TScalar_3]]:
503+
) -> Select[Tuple[_T0, _TScalar_1, _T2, _TScalar_3]]:
514504
...
515505

516506

517507
@overload
518508
def select( # type: ignore
519-
entity_0: _TScalar_0,
520-
__ent1: _TCCA[_T1],
521-
__ent2: _TCCA[_T2],
509+
__ent0: _TCCA[_T0],
510+
entity_1: _TScalar_1,
511+
entity_2: _TScalar_2,
522512
__ent3: _TCCA[_T3],
523-
) -> Select[Tuple[_TScalar_0, _T1, _T2, _T3]]:
513+
) -> Select[Tuple[_T0, _TScalar_1, _TScalar_2, _T3]]:
524514
...
525515

526516

@@ -536,71 +526,81 @@ def select( # type: ignore
536526

537527
@overload
538528
def select( # type: ignore
539-
__ent0: _TCCA[_T0],
540-
entity_1: _TScalar_1,
541-
entity_2: _TScalar_2,
529+
entity_0: _TScalar_0,
530+
__ent1: _TCCA[_T1],
531+
__ent2: _TCCA[_T2],
542532
__ent3: _TCCA[_T3],
543-
) -> Select[Tuple[_T0, _TScalar_1, _TScalar_2, _T3]]:
533+
) -> Select[Tuple[_TScalar_0, _T1, _T2, _T3]]:
544534
...
545535

546536

547537
@overload
548538
def select( # type: ignore
549-
__ent0: _TCCA[_T0],
550-
entity_1: _TScalar_1,
539+
entity_0: _TScalar_0,
540+
__ent1: _TCCA[_T1],
551541
__ent2: _TCCA[_T2],
552542
entity_3: _TScalar_3,
553-
) -> Select[Tuple[_T0, _TScalar_1, _T2, _TScalar_3]]:
543+
) -> Select[Tuple[_TScalar_0, _T1, _T2, _TScalar_3]]:
554544
...
555545

556546

557547
@overload
558548
def select( # type: ignore
559-
__ent0: _TCCA[_T0],
560-
entity_1: _TScalar_1,
561-
__ent2: _TCCA[_T2],
549+
entity_0: _TScalar_0,
550+
__ent1: _TCCA[_T1],
551+
entity_2: _TScalar_2,
562552
__ent3: _TCCA[_T3],
563-
) -> Select[Tuple[_T0, _TScalar_1, _T2, _T3]]:
553+
) -> Select[Tuple[_TScalar_0, _T1, _TScalar_2, _T3]]:
564554
...
565555

566556

567557
@overload
568558
def select( # type: ignore
569-
__ent0: _TCCA[_T0],
559+
entity_0: _TScalar_0,
570560
__ent1: _TCCA[_T1],
571561
entity_2: _TScalar_2,
572562
entity_3: _TScalar_3,
573-
) -> Select[Tuple[_T0, _T1, _TScalar_2, _TScalar_3]]:
563+
) -> Select[Tuple[_TScalar_0, _T1, _TScalar_2, _TScalar_3]]:
574564
...
575565

576566

577567
@overload
578568
def select( # type: ignore
579-
__ent0: _TCCA[_T0],
580-
__ent1: _TCCA[_T1],
581-
entity_2: _TScalar_2,
569+
entity_0: _TScalar_0,
570+
entity_1: _TScalar_1,
571+
__ent2: _TCCA[_T2],
582572
__ent3: _TCCA[_T3],
583-
) -> Select[Tuple[_T0, _T1, _TScalar_2, _T3]]:
573+
) -> Select[Tuple[_TScalar_0, _TScalar_1, _T2, _T3]]:
584574
...
585575

586576

587577
@overload
588578
def select( # type: ignore
589-
__ent0: _TCCA[_T0],
590-
__ent1: _TCCA[_T1],
579+
entity_0: _TScalar_0,
580+
entity_1: _TScalar_1,
591581
__ent2: _TCCA[_T2],
592582
entity_3: _TScalar_3,
593-
) -> Select[Tuple[_T0, _T1, _T2, _TScalar_3]]:
583+
) -> Select[Tuple[_TScalar_0, _TScalar_1, _T2, _TScalar_3]]:
594584
...
595585

596586

597587
@overload
598588
def select( # type: ignore
599-
__ent0: _TCCA[_T0],
600-
__ent1: _TCCA[_T1],
601-
__ent2: _TCCA[_T2],
589+
entity_0: _TScalar_0,
590+
entity_1: _TScalar_1,
591+
entity_2: _TScalar_2,
602592
__ent3: _TCCA[_T3],
603-
) -> Select[Tuple[_T0, _T1, _T2, _T3]]:
593+
) -> Select[Tuple[_TScalar_0, _TScalar_1, _TScalar_2, _T3]]:
594+
...
595+
596+
597+
@overload
598+
def select( # type: ignore
599+
entity_0: _TScalar_0,
600+
entity_1: _TScalar_1,
601+
entity_2: _TScalar_2,
602+
entity_3: _TScalar_3,
603+
) -> Select[Tuple[_TScalar_0, _TScalar_1, _TScalar_2, _TScalar_3]]:
604604
...
605605

606606

sqlmodel/sql/expression.py.jinja2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,12 +273,12 @@ _T{{ i }} = TypeVar("_T{{ i }}")
273273
# Generated TypeVars end
274274

275275
@overload
276-
def select(__ent0: _TScalar_0) -> SelectOfScalar[_TScalar_0]: # type: ignore
276+
def select(__ent0: _TCCA[_T0]) -> SelectOfScalar[_T0]:
277277
...
278278

279279

280280
@overload
281-
def select(__ent0: _TCCA[_T0]) -> SelectOfScalar[_T0]:
281+
def select(__ent0: _TScalar_0) -> SelectOfScalar[_TScalar_0]: # type: ignore
282282
...
283283

284284

0 commit comments

Comments
 (0)