1616
1717ScopeType : TypeAlias = dict [str , Any ]
1818
19- ExpressionType : TypeAlias = Any
20- # (
21- # str
22- # | int
23- # | float
24- # | bool
25- # | None
26- # | list["ExpressionType"]
27- # | dict[str, "ExpressionType"]
28- # )
29-
3019
3120Message : TypeAlias = dict [str , Any ]
3221Messages : TypeAlias = list [Message ]
@@ -64,6 +53,28 @@ class LocationType(BaseModel):
6453empty_block_location = LocationType (file = "" , path = [], table = {})
6554
6655
56+ class LocalizedExpression (BaseModel ):
57+ """Expression with location information"""
58+
59+ model_config = ConfigDict (
60+ extra = "forbid" , use_attribute_docstrings = True , arbitrary_types_allowed = True
61+ )
62+ expr : Any
63+ location : Optional [LocationType ] = None
64+
65+
66+ ExpressionType : TypeAlias = Any | LocalizedExpression
67+ # (
68+ # str
69+ # | int
70+ # | float
71+ # | bool
72+ # | None
73+ # | list["ExpressionType"]
74+ # | dict[str, "ExpressionType"]
75+ # )
76+
77+
6778class Parser (BaseModel ):
6879 model_config = ConfigDict (extra = "forbid" )
6980 description : Optional [str ] = None
@@ -96,7 +107,11 @@ class ContributeValue(BaseModel):
96107class Block (BaseModel ):
97108 """Common fields for all PDL blocks."""
98109
99- model_config = ConfigDict (extra = "forbid" , use_attribute_docstrings = True )
110+ model_config = ConfigDict (
111+ extra = "forbid" ,
112+ use_attribute_docstrings = True ,
113+ arbitrary_types_allowed = True ,
114+ )
100115
101116 description : Optional [str ] = None
102117 """Documentation associated to the block.
@@ -265,7 +280,7 @@ class ModelBlock(Block):
265280class BamModelBlock (ModelBlock ):
266281 platform : Literal [ModelPlatform .BAM ]
267282 prompt_id : Optional [str ] = None
268- parameters : Optional [BamTextGenerationParameters | dict ] = None
283+ parameters : Optional [BamTextGenerationParameters | ExpressionType ] = None
269284 moderations : Optional [ModerationParameters ] = None
270285 data : Optional [PromptTemplateData ] = None
271286 constraints : Any = None # TODO
@@ -275,7 +290,7 @@ class LitellmModelBlock(ModelBlock):
275290 """Call a LLM through the LiteLLM API: https://docs.litellm.ai/."""
276291
277292 platform : Literal [ModelPlatform .LITELLM ] = ModelPlatform .LITELLM
278- parameters : Optional [LitellmParameters | dict ] = None
293+ parameters : Optional [LitellmParameters | ExpressionType ] = None
279294
280295
281296class CodeBlock (Block ):
0 commit comments