|
|
|
|
|
by nickm12
855 days ago
|
|
Yes. Mypy supports type annotations provided in comments in both Python 2 and Python 3. I have ported a codebase from Python 2 to 3 by annotating it with comment-syntax annotations and it helps a ton to keep your strings and bytes separate. Basically, you annotate with the binary_type, text_type types the six package and typecheck your code on both Python 2 and Python 3. Basically, the steps involved are:
1. set up static analysis (linting and typechecking) for python 2 and python 3
2. get code passing static analysis on Py2 and Py3
3. get code passing tests on Py2 and Py3
4. get code running in production on Py3
5. stop checking and testing on Py2 It's not trivial and it requires some strong Python experience to write code that correctly "straddles" Py2 and Py3. But the advantage of the static checkers is you can slowly dial up their strictness and once they are dialed in, you minimize new regressions (new untyped code, new code that fails typechecking). |
|