Notable changes:
- Import resolution performance has been improved, which significantly reduces overall analysis times (30% in some projects).
- Hover tooltips for overloaded functions will now place each overload on its own line. This matches the existing completion tooltip. Additionally, signatures which may appear too wide in a tooltip are now separated by extra newlines to visually distinguish them.
(pylance-release#612) if
/elif
chains withoutelse
clauses can now completely narrow variables. For example, it's possible to verify that an enum value has been exhaustively checked against all possible values without a "default" case. This feature is only active in annotated functions.- Symlinks are now generally supported.
(pylance-release#131) - Angle brackets in docstring inline code blocks are no longer incorrectly escaped.
(pylance-release#816) - PEP 464 support (variadic generics) has been updated to match the current state of the PEP. This PEP is not yet accepted, but is targeting Python 3.10.
- TypedDict support has been updated to allow for narrowing dict members. For example, checking
if "a" in d
will now recognized["a"]
as a safe operation. - When indexing is enabled (
"python.analysis.indexing": true
), auto-import completions will no longer include indexer results from user code (as this negatively impacted performance); only auto-imports in code referenced from currently open files will be offered. We are looking for feedback about the indexing feature; please file an issue if you have enabled indexing and this affects your workflow. - Pylance's copy of typeshed has been updated.
For the full changelog, see CHANGELOG.md.