Skip to content

Conversation

tjstum
Copy link
Member

@tjstum tjstum commented Feb 5, 2025

In python/typeshed#13372, the type of the stdlib's socket.getaddrinfo was updated to add a union member for cases where Python was compiled with --disable-ipv6. This causes custom resolvers that use the stdlib function to fail mypy

This is probably going to (mypy) break everyone's custom HostnameResolver, since the parent type is changing

In python/typeshed#13372, the type of the
stdlib's `socket.getaddrinfo` was updated to add a union member for
cases where Python was compiled with `--disable-ipv6`. This causes
custom resolvers that use the stdlib function to fail mypy

This is probably going to (mypy) break everyone's custom
`HostnameResolver`, since the parent type is changing
Copy link

codecov bot commented Feb 5, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00000%. Comparing base (8a7674c) to head (3d61e02).
Report is 192 commits behind head on main.

Additional details and impacted files
@@               Coverage Diff                @@
##                 main        #3201    +/-   ##
================================================
  Coverage   100.00000%   100.00000%            
================================================
  Files             124          124            
  Lines           18792        18917   +125     
  Branches         1268         1295    +27     
================================================
+ Hits            18792        18917   +125     
Files with missing lines Coverage Δ
src/trio/_abc.py 100.00000% <ø> (ø)
src/trio/_core/_entry_queue.py 100.00000% <100.00000%> (ø)
src/trio/_core/_instrumentation.py 100.00000% <100.00000%> (ø)
src/trio/_core/_run.py 100.00000% <100.00000%> (ø)
src/trio/_core/_tests/test_asyncgen.py 100.00000% <100.00000%> (ø)
src/trio/_core/_tests/test_ki.py 100.00000% <100.00000%> (ø)
src/trio/_core/_tests/test_run.py 100.00000% <100.00000%> (ø)
src/trio/_core/_thread_cache.py 100.00000% <100.00000%> (ø)
src/trio/_core/_traps.py 100.00000% <100.00000%> (ø)
src/trio/_file_io.py 100.00000% <ø> (ø)
... and 15 more

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@A5rocks
Copy link
Contributor

A5rocks commented Feb 5, 2025

I guess this PR should be more generally "update to mypy 1.15"...

And major typing changes are fine, type hints are optional/not at runtime anyways.

@CoolCat467 CoolCat467 added dependencies Pull requests that update a dependency file typing Adding static types to trio's interface labels Feb 5, 2025
@tjstum
Copy link
Member Author

tjstum commented Feb 5, 2025

OK, I'll take a look at the other typing changes needed for 1.15 as well

@jakkdl
Copy link
Member

jakkdl commented Feb 6, 2025

looks like we need to replace a lot of type: ignore[misc] with type: ignore[explicit-any]

@tjstum tjstum changed the title Update typing for HostnameResolver Update to mypy 1.15 Feb 7, 2025
Copy link
Contributor

@A5rocks A5rocks left a comment

Choose a reason for hiding this comment

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

I actually just was looking at doing this and thinking through what I would prefer, but I actually prefer the choices you made here (e.g. pushing up the CoroutineType change rather than littering code with assert isinstance(task.coro, CoroutineType))

A couple comments, but most are very nitpicky so feel free to ignore.

Copy link

@Hnasar Hnasar left a comment

Choose a reason for hiding this comment

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

Superb!

Copy link
Contributor

@TeamSpen210 TeamSpen210 left a comment

Choose a reason for hiding this comment

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

Not sure if any @_public users have overloads, but if so:

Copy link
Member

@jakkdl jakkdl left a comment

Choose a reason for hiding this comment

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

unclear if we should even bother keeping the async_generator stuff at all - see python-trio/async_generator#35

Copy link
Contributor

@A5rocks A5rocks left a comment

Choose a reason for hiding this comment

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

The changes here make sense to me!

@A5rocks A5rocks requested a review from TeamSpen210 February 10, 2025 16:37
Copy link
Member

@CoolCat467 CoolCat467 left a comment

Choose a reason for hiding this comment

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

Looks good other than a few things I had questions about

@tjstum tjstum added this pull request to the merge queue Feb 11, 2025
Merged via the queue into python-trio:main with commit ad9462b Feb 11, 2025
39 checks passed
@tjstum tjstum deleted the resolver branch February 11, 2025 22:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file typing Adding static types to trio's interface
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants