Skip to content

Properly fetch PEP 695 type params for functions, do not fetch annotations from signature#11093

Merged
sydney-runkle merged 1 commit intomainfrom
validate-call-fixes
Dec 13, 2024
Merged

Properly fetch PEP 695 type params for functions, do not fetch annotations from signature#11093
sydney-runkle merged 1 commit intomainfrom
validate-call-fixes

Conversation

@Viicos
Copy link
Copy Markdown
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
# 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
Copy Markdown
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
Copy Markdown
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.

@codspeed-hq
Copy link
Copy Markdown

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
@cloudflare-workers-and-pages
Copy link
Copy Markdown

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-deprecated[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
@github-actions
Copy link
Copy Markdown
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
@github-actions
Copy link
Copy Markdown
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
Copy Markdown
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!

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
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Haha, yikes.

Comment thread tests/test_validate_call.py
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