@@ -2492,3 +2492,189 @@ test('typegen: swift w/ public access control', async () => {
2492
2492
}"
2493
2493
` )
2494
2494
} )
2495
+
2496
+ test ( 'typegen: python' , async ( ) => {
2497
+ const { body } = await app . inject ( { method : 'GET' , path : '/generators/python' } )
2498
+ expect ( body ) . toMatchInlineSnapshot ( `
2499
+ "from pydantic import BaseModel, Json
2500
+ from typing import Any
2501
+
2502
+
2503
+ class PublicUsersSelect(BaseModel):
2504
+ id: int = Field(alias="id")
2505
+ name: str | None = Field(alias="name")
2506
+ status: str | None = Field(alias="status")
2507
+
2508
+
2509
+ class PublicUsersInsert(BaseModel):
2510
+ id: int | None = Field(alias="id")
2511
+ name: str | None = Field(alias="name")
2512
+ status: str | None = Field(alias="status")
2513
+
2514
+
2515
+ class PublicUsersUpdate(BaseModel):
2516
+ id: int | None = Field(alias="id")
2517
+ name: str | None = Field(alias="name")
2518
+ status: str | None = Field(alias="status")
2519
+
2520
+
2521
+ class PublicTodosSelect(BaseModel):
2522
+ details: str | None = Field(alias="details")
2523
+ id: int = Field(alias="id")
2524
+ user_id: int = Field(alias="user-id")
2525
+
2526
+
2527
+ class PublicTodosInsert(BaseModel):
2528
+ details: str | None = Field(alias="details")
2529
+ id: int | None = Field(alias="id")
2530
+ user_id: int = Field(alias="user-id")
2531
+
2532
+
2533
+ class PublicTodosUpdate(BaseModel):
2534
+ details: str | None = Field(alias="details")
2535
+ id: int | None = Field(alias="id")
2536
+ user_id: int | None = Field(alias="user-id")
2537
+
2538
+
2539
+ class PublicUsersAuditSelect(BaseModel):
2540
+ created_at: str | None = Field(alias="created_at")
2541
+ id: int = Field(alias="id")
2542
+ previous_value: Any = Field(alias="previous_value")
2543
+ user_id: int | None = Field(alias="user_id")
2544
+
2545
+
2546
+ class PublicUsersAuditInsert(BaseModel):
2547
+ created_at: str | None = Field(alias="created_at")
2548
+ id: int | None = Field(alias="id")
2549
+ previous_value: Any = Field(alias="previous_value")
2550
+ user_id: int | None = Field(alias="user_id")
2551
+
2552
+
2553
+ class PublicUsersAuditUpdate(BaseModel):
2554
+ created_at: str | None = Field(alias="created_at")
2555
+ id: int | None = Field(alias="id")
2556
+ previous_value: Any = Field(alias="previous_value")
2557
+ user_id: int | None = Field(alias="user_id")
2558
+
2559
+
2560
+ class PublicUserDetailsSelect(BaseModel):
2561
+ details: str | None = Field(alias="details")
2562
+ user_id: int = Field(alias="user_id")
2563
+
2564
+
2565
+ class PublicUserDetailsInsert(BaseModel):
2566
+ details: str | None = Field(alias="details")
2567
+ user_id: int = Field(alias="user_id")
2568
+
2569
+
2570
+ class PublicUserDetailsUpdate(BaseModel):
2571
+ details: str | None = Field(alias="details")
2572
+ user_id: int | None = Field(alias="user_id")
2573
+
2574
+
2575
+ class PublicEmptySelect(BaseModel):
2576
+ pass
2577
+
2578
+
2579
+ class PublicEmptyInsert(BaseModel):
2580
+ pass
2581
+
2582
+
2583
+ class PublicEmptyUpdate(BaseModel):
2584
+ pass
2585
+
2586
+
2587
+ class PublicTableWithOtherTablesRowTypeSelect(BaseModel):
2588
+ col1: Json[Any] = Field(alias="col1")
2589
+ col2: Json[Any] = Field(alias="col2")
2590
+
2591
+
2592
+ class PublicTableWithOtherTablesRowTypeInsert(BaseModel):
2593
+ col1: Json[Any] = Field(alias="col1")
2594
+ col2: Json[Any] = Field(alias="col2")
2595
+
2596
+
2597
+ class PublicTableWithOtherTablesRowTypeUpdate(BaseModel):
2598
+ col1: Json[Any] = Field(alias="col1")
2599
+ col2: Json[Any] = Field(alias="col2")
2600
+
2601
+
2602
+ class PublicTableWithPrimaryKeyOtherThanIdSelect(BaseModel):
2603
+ name: str | None = Field(alias="name")
2604
+ other_id: int = Field(alias="other_id")
2605
+
2606
+
2607
+ class PublicTableWithPrimaryKeyOtherThanIdInsert(BaseModel):
2608
+ name: str | None = Field(alias="name")
2609
+ other_id: int | None = Field(alias="other_id")
2610
+
2611
+
2612
+ class PublicTableWithPrimaryKeyOtherThanIdUpdate(BaseModel):
2613
+ name: str | None = Field(alias="name")
2614
+ other_id: int | None = Field(alias="other_id")
2615
+
2616
+
2617
+ class PublicCategorySelect(BaseModel):
2618
+ id: int = Field(alias="id")
2619
+ name: string = Field(alias="name")
2620
+
2621
+
2622
+ class PublicCategoryInsert(BaseModel):
2623
+ id: int | None = Field(alias="id")
2624
+ name: string = Field(alias="name")
2625
+
2626
+
2627
+ class PublicCategoryUpdate(BaseModel):
2628
+ id: int | None = Field(alias="id")
2629
+ name: str | None = Field(alias="name")
2630
+
2631
+
2632
+ class PublicMemesSelect(BaseModel):
2633
+ category: int | None = Field(alias="category")
2634
+ created_at: string = Field(alias="created_at")
2635
+ id: int = Field(alias="id")
2636
+ metadata: Json[Any] = Field(alias="metadata")
2637
+ name: string = Field(alias="name")
2638
+ status: str | None = Field(alias="status")
2639
+
2640
+
2641
+ class PublicMemesInsert(BaseModel):
2642
+ category: int | None = Field(alias="category")
2643
+ created_at: string = Field(alias="created_at")
2644
+ id: int | None = Field(alias="id")
2645
+ metadata: Json[Any] = Field(alias="metadata")
2646
+ name: string = Field(alias="name")
2647
+ status: str | None = Field(alias="status")
2648
+
2649
+
2650
+ class PublicMemesUpdate(BaseModel):
2651
+ category: int | None = Field(alias="category")
2652
+ created_at: str | None = Field(alias="created_at")
2653
+ id: int | None = Field(alias="id")
2654
+ metadata: Json[Any] = Field(alias="metadata")
2655
+ name: str | None = Field(alias="name")
2656
+ status: str | None = Field(alias="status")
2657
+
2658
+
2659
+ class PublicTodosViewSelect(BaseModel):
2660
+ details: str | None = Field(alias="details")
2661
+ id: int | None = Field(alias="id")
2662
+ user_id: int | None = Field(alias="user-id")
2663
+
2664
+
2665
+ class PublicUsersViewSelect(BaseModel):
2666
+ id: int | None = Field(alias="id")
2667
+ name: str | None = Field(alias="name")
2668
+ status: str | None = Field(alias="status")
2669
+
2670
+
2671
+ class PublicAViewSelect(BaseModel):
2672
+ id: int | None = Field(alias="id")
2673
+
2674
+
2675
+ class PublicTodosMatviewSelect(BaseModel):
2676
+ details: str | None = Field(alias="details")
2677
+ id: int | None = Field(alias="id")
2678
+ user_id: int | None = Field(alias="user-id")
2679
+ "` )
2680
+ } )
0 commit comments