You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For Pulumi we are looking into generating types using TypedDict to model cloud APIs. For example for Kubernetes we have something representing a Deployment.
Output does a lot things, but for the purposes of this repro all that matters is that its a generic type.
The K8S types can nest pretty deeply, and I suspect a combination of having nested literals along with the Union via the Input type is causing slowness here.
Ran some more tests with a larger set of types, and it looks like the issue might be memory related. I am seeing python max on memory on my system, causing heavy swapping, while the process sits at 100% CPU, probably GCing constantly.
Bug Report
For Pulumi we are looking into generating types using TypedDict to model cloud APIs. For example for Kubernetes we have something representing a Deployment.
Pulumi has a notion of inputs and outputs, and the
Input
type used in the above example looks like this:Output does a lot things, but for the purposes of this repro all that matters is that its a generic type.
The K8S types can nest pretty deeply, and I suspect a combination of having nested literals along with the
Union
via theInput
type is causing slowness here.Example:
If I drop
Awaitable[T]
from the union to reduce it to two members, typechecking completes in 2 seconds. With it present, it takes 40 seconds.This is a simplified example, and the actual code has another union layered on top. In that case we run out of memory.
To Reproduce
I have created a repro here https://github.com/julienp/typeddict-performance
Expected Behavior
It takes a second or two to typecheck.
Actual Behavior
It takes ~40 seconds on my machine
Your Environment
mypy.ini
(and other config files): noneThe text was updated successfully, but these errors were encountered: