feat(function_schema): add enforce_type_annotations flag for stricter schema validation with type enforcement, clearer errors, and updated docstrings #1092
+10
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem:
Previously, the
function_schema
function silently defaulted unannotated parameters toAny
, leading to:"type": "any"
)Solution:
This PR introduces the
enforce_type_annotations
flag tofunction_schema
, allowing developers to:enforce_type_annotations=True
, which raises aValueError
for unannotated parameters.Any
whenenforce_type_annotations=False
(default).Example error message:
Changes Made
enforce_type_annotations=True
, unannotated parameters now raise aValueError
with a clear example.Any
if disabled (default behavior preserved).enforce_type_annotations
:Example: def func(x: str)
Backward Compatibility:
enforce_type_annotations=False
).Testing Guidance:
To verify the change:
Impact:
Example Usage: