15 ms·
In a medium size codebase (~ 100 python modules of 200 lines), mypy take 5 minutes to type check. This can be a problem for a CI.
by E_Bfx 2y ago
In a medium size codebase (~ 100 python modules of 200 lines), mypy take 5 minutes to type check. This can be a problem for a CI.
- zelphirkalt 2y agoNever happened for me. Similarly sized code base, done in seconds, if not 1s. Guess we all have our anecdotes.
- sgarland 2y agoI think you have something misconfigured, or are timing incorrectly. I'm working on a project right now with ~10K LOC. I haven't timed it, but it's easily <= 2 seconds. Even if I nuke MyPy's cache, it's at most 5 seconds. This is on an M3 MBP FWIW.
- imron 2y agoAnd with dmypy (included with myoy) it’s even faster
- wk_end 2y agoJust to throw my anecdote in: I used to work at the mypy shop - our client code base was on the order of millions of lines of very thorny Python code. This was several years ago, but to the best of my recollection, even at that scale, mypy was nowhere near that slow. Like I said, this was many years ago - mypy might've gotten slower, but computers have also gotten faster, so who knows. My hunch is still that you have an issue with misconfiguration, or perhaps you're hitting a bug.
- wavemode 2y agoMy current company is a Python shop, 1M+ LOC. My CI run earlier today completed mypy typechecking in 9 minutes 5 seconds. Take from that what you will.
- Redoubts 2y agoDitto, same order of magnitude experience; at least for --no-incremental runs. Part of the problem for me is how easily caches get invalidated. A type error somewhere will invalidate the cache of the file and anything in its dependency tree, which blows a huge hole runtime. Checking 1 file in a big repo can take 10 seconds, or more than a minute as a result.
- E_Bfx 2y agoI guess that there is something with the cache that we don't do right. Thanks for your return.