Skip to content

Conversation

Viicos
Copy link
Member

@Viicos Viicos commented Dec 11, 2024

Fixes #11076, fixes #11073.

Turns out discussion in #10484 (comment) was relevant, as not using get_function_type_hints would skip the None -> NoneType conversion, and other things might happen as well.

Change Summary

Related issue number

Checklist

  • The pull request title is a good summary of the changes - it will be used in the changelog
  • Unit tests for the changes exist
  • Tests pass on CI
  • Documentation reflects the changes where applicable
  • My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

@github-actions github-actions bot added the relnotes-fix Used for bugfixes. label Dec 11, 2024
@@ -123,7 +125,11 @@ def ns_for_function(obj: Callable[..., Any], parent_namespace: MappingNamespace
# passed as a separate argument. However, internally, `_eval_type` calls
# `ForwardRef._evaluate` which will merge type params with the localns,
# essentially mimicking what we do here.
type_params: tuple[TypeVar, ...] = ()
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I somehow forgot to actually fetch the type params here 🤔

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Turns out the test did not use forward annotations, so it was fixed as well.

Copy link

codspeed-hq bot commented Dec 11, 2024

CodSpeed Performance Report

Merging #11093 will not alter performance

Comparing validate-call-fixes (61e935d) with main (6fa92d1)

Summary

✅ 46 untouched benchmarks

@Viicos Viicos force-pushed the validate-call-fixes branch from d78f8b0 to 80251eb Compare December 12, 2024 10:51
Copy link

cloudflare-workers-and-pages bot commented Dec 12, 2024

Deploying pydantic-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 61e935d
Status: ✅  Deploy successful!
Preview URL: https://d47ea3e5.pydantic-docs.pages.dev
Branch Preview URL: https://validate-call-fixes.pydantic-docs.pages.dev

View logs

hyperlint-ai[bot]

This comment was marked as resolved.

…tions from signature

We now unsupport built-in functions.
@Viicos Viicos force-pushed the validate-call-fixes branch from 80251eb to 61e935d Compare December 12, 2024 10:52
@Viicos Viicos marked this pull request as ready for review December 12, 2024 10:56
Copy link
Contributor

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  pydantic
  validate_call_decorator.py
  pydantic/_internal
  _generate_schema.py
  _namespace_utils.py
Project Total  

This report was generated by python-coverage-comment-action

1 similar comment
Copy link
Contributor

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  pydantic
  validate_call_decorator.py
  pydantic/_internal
  _generate_schema.py
  _namespace_utils.py
Project Total  

This report was generated by python-coverage-comment-action

Copy link
Contributor

@sydney-runkle sydney-runkle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good overall, added a few follow up questions. Thanks!

@@ -1832,13 +1832,7 @@ def _call_schema(self, function: ValidateCallSupportedTypes) -> core_schema.Call
if p.annotation is sig.empty:
annotation = typing.cast(Any, Any)
else:
# Note: This was originally get by `_typing_extra.get_function_type_hints`,
# but we switch to simply `p.annotation` to support bultins (e.g. `sorted`).
# May need to revisit if anything breaks.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haha, yikes.

@sydney-runkle sydney-runkle merged commit d19368a into main Dec 13, 2024
56 checks passed
@sydney-runkle sydney-runkle deleted the validate-call-fixes branch December 13, 2024 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
relnotes-fix Used for bugfixes.
Projects
None yet
2 participants