Skip to content

Releases: microsoft/pyright

Published 1.0.12

13 Apr 08:40
Compare
Choose a tag to compare

New Feature: Type checker now supports generators functions. If yield type isn't specified, the checker infers the type from yield clauses.
New Feature: Added support for type hints that use a combination of string and non-string tokens (e.g. Optional['Foo']).
New Feature: Added support for comment-based type hints for assignment statements, since these are used in some typeshed stub files.
New Feature: Added support for class decorators and added a configuration switch "reportUntypedClassDecorator" to allow these to be flagged by the type checker.
New Feature: Type checker now distinguishes between access, set, and delete operations when accessing members of an object and flags errors when that usage is not supported (e.g. writing to a property that has no defined setter).
Enhancement: Improved type checker's ability to track types within while and for loops.
Fixed bug with structural (protocol) type checking that generated false positives.
Deleted Python 2 typeshed fallback stub files since they are never used by Pyright. This reduced the package size by about 100K.

Published 1.0.11

12 Apr 02:06
Compare
Choose a tag to compare

New Feature: Type checking support for @DataClass, which was introduced in Python 3.7.
New Feature: Type checker now reports incorrect usage of ellipses in various cases.
Fixed #67: Modules are now treated as though they derive from object by the type checker.
Improved responsiveness of VS Code extension.
Improved error reporting for abstract class instantiation; abstract methods are now reported with their containing class.
Fixed #68: Silenced incorrect error for star expression usage (list expansion).
Fixed some edge cases relating to new and init validation.
Fixed #66: Bug caused an infinite loop in type checker.
Fixed automatic detection of python import paths for Python 3.x environments (contribution from @zhangkaizhao)

Published 1.0.10

10 Apr 08:07
Compare
Choose a tag to compare

New Feature: Partial support for Python 3.7 data classes. Classes must subclass from NamedTuple. Doesn't yet handle @dataclass class decorator. (Contribution from mhzed)
New Feature: Detect and flag attempt to instantiate abstract class or any class that derives from an abstract class that doesn't override all abstract methods.
New Feature: Pyright now retrieves the search paths from the default python interpreter or from the interpreter specified by the python.pythonPath setting in VS Code.
Fixed bug in file URI formatting that caused error messages on Windows.
Fixed exit code reporting in command-line tool.
Provided hover support in VS Code extension for symbols that have unknown types.

Published 1.0.9

06 Apr 21:50
Compare
Choose a tag to compare

New Feature: Type analyzer now analyzes function decorators rather than ignoring type analysis for all calls to functions that have decorators. Proper analysis requires decorators to be annotated appropriately. A new config switch "reportUntypedFunctionDecorator" to identify decorators that lack the appropriate type annotations and therefore defeat type checking.
New Feature: Type analyzer is now smarter about analyzing while/else statements.
New Feature: Type analyzer handles while True and knows that it will not exit through the bottom of the loop.
New Feature: Pyright VS Code extension is now activated automatically if a pyrightconfig.json file is present in the workspace.
New Feature: Type analyzer now specializes the parameter and return types when analyzing a method on a specialized class.
New Feature: Type analyzer now takes into account parameters to the constructor (including the init method) to infer the specialized type of an object.
New Feature: Variable ${workspaceFolder} is now expanded for paths that come from VS Code settings (like "python.venvPath").
New Feature: "Naked" raise is now flagged as an error if used outside of except clause.
New Feature: Added "--timing" switch to command-line tool to output detailed timing stats. By default, only the total time is reported.
New Feature: Command-line version can now be run with no parameters. It looks in the current working directory for a configuration file called "pyrightconfig.json".
Fixed exit code reporting in command-line version. It now properly exits with a code of zero if no errors or warnings are found.
Fixed bugs related to relative imports, especially with relative imports that consist of only "." or "..".
Fixed several bugs in type analysis engine related to tuples.
Removed "-P" switch from command-line tool. It was deprecated in the previous release.

Published 1.0.8

02 Apr 02:35
Compare
Choose a tag to compare

New Feature: Added new configuration switches reportOptionalSubscript, reportOptionalMemberAccess and reportOptionalCall to control whether the type checker should report errors for these conditions.
New Feature: Added type analysis for lambdas.
New Feature: Added more comprehensive error reporting for type mismatch errors. These multi-line errors now include hierarchical information and detail about the detected type mismatch, allowing for easier diagnosis.
New Feature: The type checker now reports cases where a non-quoted type forward reference is used within a regular ".py" file. Such forward references are allowed in stub files.
Fixed several bugs in type matching logic related to function (Callable) types.
Fixed bug in handling of special-case types like Dict and FrozenSet when they are used in type annotations with no type arguments.
Added missing support for matrix multiply operator (@).

Published 1.0.7

01 Apr 01:37
Compare
Choose a tag to compare

New Feature: Added support for PYTHONPATH environment variable for resolving imports.
New Feature: Added type checking for expressions that involve arithmetic, logical, and comparison operators.
Removed support for pythonPath config file entry and VS Code setting because it was confusing everyone.
Fixed type analyzer to not flag imported symbols as missing if they come from an external source file, even though pyright doesn't parse and analyze such files.

Published 1.0.6

31 Mar 03:05
Compare
Choose a tag to compare

New feature: Progress reporting in VS Code status bar.
New feature: Return type validation is now disabled for methods with @abstractmethod decorator.
New feature: Added JSON schema for pyrightconfig.json file so VS Code provides IntelliSense.
New feature: Added validation of type arguments for specialization of generic types. These are now validated against TypeVar constraints and bounds.
New feature: Added "ignore" settings which silences any errors or warnings generated for specified files or directories.
New feature: Added more validation of venvPath, pythonPath, typingsPath, typeshedPath and other settings to help diagnose configuration problems.
Fixed bug that caused venvPath and pythonPath not to be honored in config file.
Fixed regression that caused unknown symbols used in type annotations not to be flagged as errors.
Fixed bug in expression evaluator that resulted in false positive type errors.
Fixed bug in type constraint logic to invalidate previous constraints when a value is modified through an assignment.
Fixed handling of __new__ magic method when it's called explicitly by name.
Fixed bug in type checking of functions that are passed as parameters.
Fixed logic that specializes generic types when no type parameters are specified (e.g. List or Callable).
Fixed bug that caused the analyzer to crash if a class derived from itself. This is now reported as an error case.
Made analyzer more resilient to internal errors. Rather than getting into an infinite loop of retries, it now flags a source file as complete and moves on.
Started to add tests for type analyzer.
Fixed crash that occurred if an input file or directory was invalid.
Further improved responsiveness of error reporting for files open within the editor.

Published 1.0.5

29 Mar 06:38
Compare
Choose a tag to compare

Fixed several bugs in type constraint engine.
Improved performance of VS Code extension by increasing analysis batch time.
Added assignment type constraint for instance and class variables.
Fixed special-case type checking rules for int and float.
Fixed handling of type annotations that involve generic classes with no type variables (e.g. "list").

Published 1.0.4

27 Mar 07:06
Compare
Choose a tag to compare

Added better support for generic type subclass analysis, including support for covariance and contra variance.
Fixed bug that caused type analysis not to converge sometimes, resulting in an infinite loop.
Fixed crashing bug that could occur if typeshed files were not found.
In VS Code extension, filled in "source" string so "pyright" appears in the problems panel.
Added support for a few configuration settings in VS Code that are common to the standard VS Code Python extension.
Added new config setting "reportMissingTypeStubs" to differentiate from "reportMissingImports".
Fixed bug in "isinstance" type constraint handling. Its logic was reversed when checking for subtypes.
Disabled reporting of errors to return type mismatches in generator functions. This will be enabled again once generator and coroutine support is added to the analyzer.
Added an error output when configuration specifies a python version older than 3.0.
Fixed reported type analysis bug that affected built-in types that had aliases defined in the collections.pyi type stub (notably, Deque, DefaultDict and ChainMap).

Published 1.0.1

24 Mar 05:02
Compare
Choose a tag to compare

Fixed numerous bugs.