Skip to content

Commit 73844ee

Browse files
ShuoRen-TTdamaz91
andauthored
fix: reuse duplicate capability extension models (#56)
* fix: reuse duplicate capability extension models * test: remove fragile generated models reuse test --------- Co-authored-by: damaz91 <federico.damato91@gmail.com>
1 parent 67a4fa2 commit 73844ee

2 files changed

Lines changed: 8 additions & 45 deletions

File tree

generate_models.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ mkdir -p "$OUTPUT_DIR"
6666
# Run generation using uv
6767
# We use --use-schema-description to use descriptions from JSON schema as docstrings
6868
# We use --field-constraints to include validation constraints (regex, min/max, etc.)
69+
# We use --reuse-model to collapse structurally identical generated types.
6970
# Note: Formatting is done as a post-processing step.
7071
uv run \
7172
--link-mode=copy \
@@ -83,6 +84,7 @@ uv run \
8384
--use-double-quotes \
8485
--allow-extra-fields \
8586
--use-type-alias \
87+
--reuse-model \
8688
--custom-template-dir templates \
8789
--additional-imports pydantic.ConfigDict
8890

src/ucp_sdk/models/schemas/capability.py

Lines changed: 6 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -58,23 +58,10 @@
5858
"""
5959

6060

61-
Extends2 = TypeAliasType(
62-
"Extends2",
63-
Annotated[
64-
str, Field(..., pattern="^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$")
65-
],
66-
)
67-
"""
68-
Parent capability(s) this extends. Present for extensions, absent for root capabilities. Use array for multi-parent extensions.
69-
"""
61+
Extends2 = TypeAliasType("Extends2", Extends)
7062

7163

72-
Extends3Item = TypeAliasType(
73-
"Extends3Item",
74-
Annotated[
75-
str, Field(..., pattern="^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$")
76-
],
77-
)
64+
Extends3Item = TypeAliasType("Extends3Item", Extends1Item)
7865

7966

8067
Extends3 = TypeAliasType(
@@ -85,23 +72,10 @@
8572
"""
8673

8774

88-
Extends4 = TypeAliasType(
89-
"Extends4",
90-
Annotated[
91-
str, Field(..., pattern="^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$")
92-
],
93-
)
94-
"""
95-
Parent capability(s) this extends. Present for extensions, absent for root capabilities. Use array for multi-parent extensions.
96-
"""
75+
Extends4 = TypeAliasType("Extends4", Extends)
9776

9877

99-
Extends5Item = TypeAliasType(
100-
"Extends5Item",
101-
Annotated[
102-
str, Field(..., pattern="^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$")
103-
],
104-
)
78+
Extends5Item = TypeAliasType("Extends5Item", Extends1Item)
10579

10680

10781
Extends5 = TypeAliasType(
@@ -112,23 +86,10 @@
11286
"""
11387

11488

115-
Extends6 = TypeAliasType(
116-
"Extends6",
117-
Annotated[
118-
str, Field(..., pattern="^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$")
119-
],
120-
)
121-
"""
122-
Parent capability(s) this extends. Present for extensions, absent for root capabilities. Use array for multi-parent extensions.
123-
"""
89+
Extends6 = TypeAliasType("Extends6", Extends)
12490

12591

126-
Extends7Item = TypeAliasType(
127-
"Extends7Item",
128-
Annotated[
129-
str, Field(..., pattern="^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$")
130-
],
131-
)
92+
Extends7Item = TypeAliasType("Extends7Item", Extends1Item)
13293

13394

13495
Extends7 = TypeAliasType(

0 commit comments

Comments
 (0)