Skip to content

Start moving away from named_type callback architecture#21201

Open
ilevkivskyi wants to merge 1 commit intopython:masterfrom
ilevkivskyi:less-named-type
Open

Start moving away from named_type callback architecture#21201
ilevkivskyi wants to merge 1 commit intopython:masterfrom
ilevkivskyi:less-named-type

Conversation

@ilevkivskyi
Copy link
Copy Markdown
Member

This is a follow-up for #21170

Now that we have modules available as part of the global state (for the purposes of lazy deserialization), I propose to gradually move away from (IMO awkward) architecture where we pass around a lot of named_type callbacks, and instead use:

  • A library of lookup functions (we already started migrating lookup functions to lookup.py)
  • And the newly added global modules state

I am not sure yet what is the best way to use instance cache in a most robust way. For now I am starting with something a bit ad-hoc. We can experiment with this, and see if this works.

Note I only migrate few most problematic cases of the old callback-based pattern (one of those actually used an invalid callback). I also rename the global state file added in #21170 to have more generic name.

This also removes one function-level import and few nested functions, which may make code faster with mypyc (I measure 0.5% improvement, but this is at the noise level).

cc @JukkaL

@github-actions
Copy link
Copy Markdown
Contributor

According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant