pyright

Static Type Checker for Python

OTHER License

Downloads
2.3M
Stars
13.2K
Committers
119

Bot releases are hidden (Show)

pyright - Published 1.1.160

Published by erictraut about 3 years ago

Enhancement: Updated the "type(x) is y" type narrowing logic to handle the negative case when the class type is "final".

Bug Fix: Fixed bug that prevented "rename symbol" from working when in single-file mode. Rather than failing, it will now perform a rename only within a single file.

Enhancement: Updated typeshed stubs to the latest version.

Bug Fix: Fixed false positive that occurs when defining an abstract dataclass and one of its fields refers to the class itself in its type annotation.

Bug Fix: Fixed bug in x is None type narrowing logic when x was typed as object.

Bug Fix: Fixed bug that verified that a protocol class used within an isinstance call is runtime_checkable. It was skipping this check when the first argument to isinstance was an Any or Unknown type.

Bug Fix: Fixed bug where a union of Literal[False] and Literal[True] were being coalesced into bool inappropriately in the case where they were conditional types that came from a constrained TypeVar.

Bug Fix: Removed the assumption that all top-level modules in typeshed third-party stubs are unique. The typeshed folder structure allows multiple packages to have the same top-level module.

Bug Fix: Fixed bug in the handling of generic recursive type aliases.

Enhancement: Implemented support for new Python 3.10 dataclass features: kw_only parameter for dataclass and field and KW_ONLY separator.

pyright - Published 1.1.159

Published by erictraut about 3 years ago

Bug Fix: Fixed bug that could lead to an internal stack overflow when a generic value was used as an argument for a function or class decorator.

Enhancement: Added support in literal comparison type narrowing to filter out comparisons to "None" in positive case.

Bug Fix: Fixed bug in parser where it was too permissive in allowing keywords to be used as identifiers. The Python interpreter is less permissive, so pyright's parser should match.

Bug Fix: Fixed several bugs that caused crashes (dereference of undefined variable) in certain circumstances.

Enhancement: Added a new log error for the case where enumeration of files within the workspace is taking longer than 10 seconds.

Bug Fix: Fixed bug in tokenizer which treated 'constructor' as a keyword.

Bug Fix: Fixed bug in "type(x) is y" type narrowing logic to handle the case where x is an instance of a generic class.

Enhancement: Added check for illegal trailing comma in "from x import y," statement. This generates a syntax error at runtime.

Enhancement: Added check for illegal use of "Protocol" as a type argument.

Enhancement: Implemented new check for a class that is decorated with @final but does not implement all abstract methods from abstract classes that it derives from.

Enhancement: Added check for inappropriate use of ClassVar that will generate runtime exceptions.

Enhancement: Added logic to enforce protocol mismatches if a member in the protocol is marked "Final" and the class is not (or vice versa).

Behavior Change: Modified assignment type narrowing for index expressions so it applies only to built-in types. This eliminates incorrect type inference when using a class that has assymetric __setitem__ and __getitem__ methods.

Enhancement: Fixed false positive error when @property is combined with @functools.cache.

pyright - Published 1.1.158

Published by erictraut about 3 years ago

Bug Fix: Fixed handling of generic type aliases with missing type arguments used in type annotations when the type alias itself is a member access expression.

Enhancement: Added new diagnostic check (controlled by the existing "reportUnsupportedDunderAll" config switch) that reports an issue with a name specified in __all__ if that symbol does not exist at the module level.

Enhancement: Updated typeshed stubs to latest version.

Enhancement: Added support for nested callables that use a ParamSpec at each level.

Bug Fix: Fixed false positive error related to the use of the Final keyword when annotating attributes within a dataclass.

Bug Fix: Fixed bug in TypeVar matching logic that allowed Type[T] to be matched against an instance of a type.

Behavior Change: Changed type checking logic for functions to allow a function with a return result of NoReturn to match against any other return type.

Bug Fix: Fixed false positive error in parser dealing with f-strings with string literals within the f-string expression that, in turn, have quotes within the string literal.

Enhancement: Added support for "attribute docstrings" (defined in PEP 258) in completion provider.

Bug Fix: Fixed bug in type analyzer related to a TypeVar with a bound type that is a union.

pyright - Published 1.1.157

Published by erictraut over 3 years ago

Bug Fix: Fixed false positive error when calling an object that has an Any in its inheritance chain.

Enhancement: Improved support for callable type narrowing in cases where the type is a non-callable instance, but a subtype could be callable.

Enhancement: Improved handling of callable type narrowing when the type involves a constrained type variable.

Enhancement: Added support for ParamSpec's within a Protocol, which is supported in Python 3.10.

Enhancement: Improved handling of isinstance type narrowing logic when the type being narrowed is a callable.

Bug Fix: Fixed recent regression in type evaluator that occurs when a generic (non-specialized) type is assigned to another generic type and the type parameter(s) for the generic type are invariant.

Bug Fix: Fixed bug that caused diagnostics from an open file not to be cleared after closing that file if it was not saved.

Enhancement (from pylance): Improved completion suggestions for literals when used as dictionary keys.

New Feature: Implemented "reportUninitializedInstanceVariable" diagnostic check that looks for instance variables that are not initialized in the class body or constructor.

Bug Fix: Fixed false positive error due to bug in constraint solver related to the handling of Type[T] when T is a constrained type variable.

Bug Fix: Fixed false positive error related to the use of a recursive type alias when from __future__ import annotations was in effect.

Bug Fix: Fixed false negative related to augmented assignment expressions when operand was a union type and a subset of the union subtypes were not supported for the operation.

pyright - Published 1.1.156

Published by erictraut over 3 years ago

Bug Fix: Fixed false positive error related to member access of optional type.

Bug Fix: Fixed false positive error related to an escape sequence (backslash) used in an f-string format specifier.

Bug Fix: Fixed false positive error with f-string format specifier that contains an expression within braces and also a colon specifier.

Enhancement: Updated typeshed stubs to latest version.

Bug Fix: Fixed false positive error when evaluating a subscript (index) operation with an index value that is a union type and an overloaded __getitem__ method that requires union expansion.

Enhancement: Added new check for a function overload that contains an implementation.

Enhancement: Added special-case handling for addition of two tuples that have known lengths.

Bug Fix: Fixed bug in check that detects improper variance for type variables used within generic protocols. Class or instance variables within a generic protocol must use invariant type variables.

Enhancement: Improved heuristics for type matching when source and dest types are unions and invariance is being enforced — specifically in the case where the destination union type includes generic types.

pyright - Published 1.1.155

Published by erictraut over 3 years ago

Bug Fix: Fixed recent regression that resulted in false positive errors when a class declaration used both Type[X] and X in its specialization of base classes.

Bug Fix: Fixed false positive error related to isinstance narrowing of a non-constrained TypeVar.

Bug Fix: Changed encoding of literals in error messages to avoid including raw (unescaped) special characters in output.

Behavior Change: Increased maximum source file size from 16MB to 32MB.

Enhancement: Improved formatting of error messages that include expressions — specifically when the expression includes an empty dict ("{}").

Bug Fix: Fixed false positive error for the case where a function with positional/keyword parameters is assigned to a callback protocol that accepts only keyword parameters.

Enhancement: Added support for member access expressions for the None object.

Enhancement: Added support for isinstance and issubclass type narrowing where the variable type and the test type have no apparent relationship. The type evaluator synthesizes a class that is a subclass of both types — effectively an "intersection" of the two.

Behavior Change: Modified reportUnnecessaryIsInstance diagnostic to never report always-false conditions because the type checker no longer generates such conditions.

pyright - Published 1.1.154

Published by erictraut over 3 years ago

Removed support for undocumented "mspythonconfig.json" config file name. This was previously available as an alternative to "pyrightconfig.json", but we've decided to standardize on the latter.

Bug Fix: Changed logic for "overload missing implementation" check to not require an implementation within a protocol class.

Enhancement: Updated typeshed stubs to latest version.

Bug Fix: Fixed confusing error message when file or directory is specified on command line but is excluded by the "exclude" section of the config file.

Behavior Change: Exempt classes from __slots__ check if they explicitly declare an empty slots. This is commonly used for mix-in classes that are compatible with slotted classes.

Internal Change: This version of pyright includes a significant change within the type evaluator that simplifies the code and eliminates a major source of bugs related to the handling of Type[X] type annotations.

pyright - Published 1.1.153

Published by erictraut over 3 years ago

Bug Fix: Fixed type evaluation bug where Callable is used to annotate an input parameter, and the Callable return type is a union that contains a type variable and the type variable is used within a nested function.

Bug Fix: Fixed bug in "isinstance" type narrowing logic and in the "unnecessary isinstance" diagnostic check when the type being narrowed is a runtime-checkable protocol instance.

Bug Fix: Fixed bug in type evaluator that resulted in a false positive error when a __getattr__ was supplied in a metaclass, and it returned a generic callable type.

Enhancement: Added validation for assignment of instance variables that are not declared in __slots__.

Enhancement: Added check for class variables that conflict with an instance variable declared in __slots__ within a class.

Behavior Change: When displaying overloaded functions in hover text, filter out the implementation signature.

Bug Fix: Fixed bug in code flow engine that caused incorrect type evaluation of complex expression that appears multiple times within a function in contexts where isinstance type narrowing generates different types for the same expression.

pyright - Published 1.1.152

Published by erictraut over 3 years ago

Bug Fix: Fixed false positive error involved in the instantiation of type(self)() within an abstract class.

Bug Fix: Fixed parser bug that caused completion provider to not work correctly when completing relative imports ending in a dot.

Bug Fix: Fixed bug that led to false positive error related to dictionary unpacking when the argument type is a type variable.

Bug Fix: Fixed false positive error when using del keyword with a tuple expression.

Bug Fix: Fixed bug in completion provider where it was interpreting prior quotes incorrectly when completing a typed dictionary key, most easily reproducible when using nested typed dictionaries.

Bug Fix: Eliminated false positive error for Final when it doesn't include a type argument.

Bug Fix: Fixed several possible causes of stack overflow crashes in the type evaluator.

Bug Fix (from pylance): Fixed bug in completion provider related to dictionary key completions that contain non-alpha characters.

Bug Fix: Fixed false positive error when super() was used in a static or class method and the target function in the base class had an annotated cls parameter.

pyright - Published 1.1.151

Published by erictraut over 3 years ago

Enhancement: Added support for metaclasses that support the __getitem__, __setitem__ and __delitem__ magic methods, allowing classes that derive from these metaclasses to be used in index expressions.

Bug Fix: Fixed bug that caused dataclass usage to break in Python 3.6 and older when using the polyfill library.

Enhancement: Added conditional type support for __setitem__ so a value with a type defined by a constrained TypeVar can be assigned to an index expression.

Bug Fix: Fixed bug that caused a crash in the tokenizer when encountering a string literal that is extremely long (>100K in length).

Bug Fix: Fixed bug caused by a variable assignment with a list expression on the RHS that was interpreted temporarily as a type alias declaration. Added more sanity checking on the type of the assigned expression for type aliases.

Bug Fix: Fixed type evaluation bug where Callable is used to annotate an input parameter, and the Callable return type is a union that contains a type variable.

Bug Fix: Fixed bug in constraint solver relating to replacement of return type of the form T when matching was performed against Type[T].

Enhancement: Added support for __builtins__ module symbol symbol.

Enhancement: Added support for type narrowing conditional expressions of the form a is False, a is True, a is not False and a is not True.

pyright - Published 1.1.150

Published by erictraut over 3 years ago

Enhancement: Avoid completion suggestions when typing an ellipsis. (Thanks to contribution from Marc Mueller.)

Bug Fix: Fixed false positive errors relating to unions created from a Type[T] type.

Bug Fix: Fixed bug that caused class docString not to appear in signature help when invoking constructor for classes with synthesized constructor methods (e.g. dataclass or namedtuple).

Behavior Change: Changed reportPrivateUsage diagnostic check to suppress the check when method or attribute comes from a type stub file. It is presumably part of the public interface contract in this case and not a private or protected member.

Enhancement: Added completion suggestion support for dictionary key names.

Bug Fix: Fixed bug in type evaluator that resulted in incorrect type in certain cases when evaluating function with declared return type of Type[T].

Bug Fix: Fixed false positive error that occurred when evaluating a binary operation provided by a metaclass when the LHS or RHS type was a Type[T].

Behavior Change: In basic type checking mode, enabled the following diagnostic checks by default: reportOptionalSubscript, reportOptionalMemberAccess, reportOptionalCall, reportOptionalIterable, reportOptionalContextManager, and reportOptionalOperand.

Bug Fix: Fixed crashing bug in document symbol provider when handling import statements.

Bug Fix: Fixed type evaluation bug that affected the specialization of a generic type alias that includes a bound TypeVar.

pyright - Published 1.1.149

Published by erictraut over 3 years ago

Bug Fix (from pylance): Fixed crash that can occur when a library is installed in the form of a zip file, and that zip file is malformed.

Bug Fix: Fixed bug that caused false positive error when using a generic type alias as a constructor call.

Enhancement: Added check for illegal use of "async" keyword. The Python interpreter generates a syntax error if it is used outside of an async function.

Enhancement: Tweaked heuristics in constraint solver for dealing with matching of TypeVar T for the type expression Union[T, SomeClass[T]]. There are two valid solutions if the argument is type SomeClass[X], but the "simpler" solution (T = X) should be preferred over the more complex (T = SomeClass[X]).

Bug Fix: Fixed bug in type checker related to the use of a TypeVar or ParamSpec within an inner function when it is already bound to an outer function but used only within that outer function's return type annotation.

Bug Fix: Added error handling for very large source files. This situation is now detected earlier so we don't attempt to load the file contents and crash the language server in the process.

Behavior Change: Added logic to convert Type[A | B] into Type[A] | Type[B], which avoids violating assumptions elsewhere in the type checker.

Enhancement: Updated to the latest version of typeshed, which includes support for ParamSpec in contextlib's contextmanager function.

Bug Fix: Fixed bug in type checker that occurred in some cases when a generic function returned Type[T]. In some cases where an input parameter also had an annotation of Type[T], the "solved" type was wrapped in Type twice (e.g. Type[Type[int]]).

Bug Fix: Fixed bug in type evaluator that occurred when calling a constructor of type Type[T] where T is a constrained TypeVar.

Bug Fix: Fixed bug that resulted in an import being marked as unaccessed if it was accessed within a class declaration but was also redeclared within the class scope.

pyright - Published 1.1.148

Published by erictraut over 3 years ago

Enhancement: Improved type narrowing of subject expression in a match statement when none of the case statements match the pattern and the code falls through the bottom of the match.

Enhancement: Added support for pattern matching exhaustion detection in cases where there is not an explicit irrefutable pattern present.

Bug Fix: Fixed recent regression that resulted in false positive errors when attempting to instantiate tuple or type directly.

Enhancement: Improved type checking for classes that are assigned to Callable types. Previously, type incompatibilities were not reported if the __init__ or __new__ methods were overloaded within the class.

Bug Fix: Fixed bug that caused parser error when handling a carriage return within a triple-quoted inner string within an outer triple-quoted f-string.

Bug Fix: Fixed bug that resulted in false positive error when second argument to NewType call contained a Type object.

Bug Fix: Fixed recent regression that resulted in a false positive error when instantiating a variable of type Type[T] where T was a protocol class.

Bug Fix: Fixed bug in type printer that resulted in double parentheses around return type expressions when they involved unions.

Bug Fix: Fixed bug that resulted in a false positive error when using generic Type[T] in a function parameter in overload validation.

Bug Fix: Fixed bug in type checker relating to constrained type variables that combine non-union and union constraints.

Bug Fix: Fixed bug in type checker when handling Final variables assigned at the class level. PEP 591 indicates that they should be treated as though they are annotated as ClassVar even though they are not.

Bug Fix: Fixed a bug in the type checker relating to the use of a specialized generic class that is parameterized by a ParamSpec.

pyright - Published 1.1.147

Published by erictraut over 3 years ago

Enhancement: Added check for an attempt to instantiate a protocol class. This causes a runtime error.

Behavior Change: Closed a hole in type narrowing for "in" operator when used with TypedDict. It can eliminate types from a union only if the type is marked final.

Enhancement: Changed type printer to handle recursion differently — most notably when dealing with recursive type aliases. If it is asked to expand type aliases, it now expands only the first level of a given type alias, so if there's recursion, it will use the type alias name the second time it is encountered rather than continuing to expand it.

Enhancement: Changed reveal_type and reveal_locals to expand type aliases in their output.

Bug Fix: Fixed bug that resulted in incorrect type checking behavior when a type annotation involved a tuple with literal elements.

Bug Fix: Fixed bug that affected the handling of a function decorator that uses ParamSpec when applied to a classmethod or staticmethod.

Enhancement: Added diagnostic for an attempt to instantiate a special type like a Union, Callable, or Optional.

Bug Fix: Improved support for generic functions that annotate a parameter and a return type with a union that includes a TypeVar. In such cases, the TypeVar may not be matched during constraint solving.

Enhancement: Improved hover text for type variables and param specs by updating the label so they are not shown simply as type aliases.

Enhancement: Updated to the latest typeshed stubs.

pyright - Published 1.1.146

Published by erictraut over 3 years ago

Enhancement: Updated to the latest version of typeshed stubs.

Behavior Change: Updated reportIncompatibleVariableOverride to avoid reporting an error when a class variable is reassigned a value in a base class without declaring its type.

Bug Fix: Fixed false positive error indicating that a type alias is a variable. This results when a type alias refers to a union and that union is reformed when losing the original type alias.

Enhancement: Added optimization for union creation where all subtypes are the same. This optimization commonly reduces the need to create new types during code flow operations. It also retains type alias info more faithfully.

Enhancement: Added support for __qualname__ and __module__ attributes within a class body.

Behavior Change: Changed call expression evaluation logic to not skip return type inference when there are errors detected during argument expression evaluation. This was previously added as an optimization, but it was leading to confusing results in some cases.

Enhancement: Enhanced logic to detect unannotated decorator functions and treat them as no-ops rather than using return type inference, which often leads to incorrect and confusing results for decorators.

Bug Fix: Fixed bug in pattern matching logic for class patterns where the class uses properties or descriptors for the targeted attributes.

Enhancement (from pylance): Added support for libraries packages as zip/egg containers.

pyright - Published 1.1.145

Published by erictraut over 3 years ago

Bug Fix: Fixed bug that resulted in the incorrect type when bidirectional type inference (an "expected type") was used in conjunction with the tuple() constructor.

Behavior Change: Changed logic to avoid reanalyzing a file when it is opened in the editor if we have already analyzed it and the file contents are the same as before.

Bug Fix: Improved handling of call expressions where the call is a union and some of the subtypes return NoReturn and others do not.

Behavior Change: Changed the logic that validates the assignment to instance variables that are marked Final. Previously, only one such assignment was allowed even if it was within an __init__ method. It now allows an arbitrary number of assignments (conditional or otherwise) as long as they occur within an __init__ method.

Enhancement: Enhanced "reportIncompatibleVariableOverride" diagnostic check to detect the case where a base class declares a class variable and a child class tries to override it with an instance variable or vice versa.

Bug Fix: Added logic to handle the case where a dataclass subclass overrides a member of its parent class with a ClassVar and another dataclass then subclasses from the child.

Enhancement: Enhanced type stub generator so it doesn't emit "object" as base class, since that's implied in Python 3.x.

Enhancement: Enhanced type stub generator to emit inferred function and method return types as comments.

Behavior Change: Removed false positive error reported for a "bare" raise statement outside of an except clause.

Bug Fix: Changed type variable constraint solver to preserve literal types when matching type arguments from other class types. In other cases, it typically "strips" the literal, widening the type to a str, int, etc. This change allows proper type evaluation in certain cases where a literal type is specified in a type annotation, such as with Set[Literal["foo"]].

Bug Fix: Fixed bug in code flow engine where it was sometimes evaluating the wrong type when cycles occurred in type dependencies.

Bug Fix: Fixed bug that can result in a crash when indexing a file that includes a nested function or lambda that is used for type inference.

Enhancement: Improved detection and reporting of illegal type alias recursion cases — e.g. when a possible type alias refers to a function that uses the type alias in parameter or return type annotations.

Enhancement: Changed type printer to include a "*" after a type if it is conditionally associated with a TypeVar constraint.

Bug Fix: Augmented type checking logic for generator expressions to allow await keyword even though enclosing function isn't async. Also allowed generator expression to be evaluated as AsyncGenerator rather normal Generator.

Enhancement: Changed the way conditional constraints are tracked in the type evaluator. This is a significant change that simplifies the logic and handles some cases that the old approach did not.

pyright - Published 1.1.144

Published by erictraut over 3 years ago

Bug Fix: Changed CLI to not use process.exit() but instead return normally. The previous code sometimes resulted in truncated output.

Enhancement: Added error for keyword-only parameter separator or position-only parameter separator appearing in a function signature after an "*args" parameter. This will result in a runtime error.

Enhancement: Improved error message for missing **kwargs parameter when assigning one function to another.

Bug Fix: Fixed bug in logic that converts a type into a text representation. It wasn't properly adding the scope for a ParamSpec in certain circumstances, so instead of outputting P@scope, it was outputting P.

Bug Fix: Fixed bug in specialization of generic class that contains only one type variable that is a ParamSpec.

Bug Fix: Fixed bugs that prevented ParamSpec annotations P.args and P.kwargs from working properly when the annotation was in quotes.

Bug Fix: Fixed false positive error in check for inappropriate use of contravariant type var in return type annotation. It should not generate an error when the contravariant type var is part of a union.

Enhancement: Improved error message consistency for "cannot assign to None" condition.

pyright - Published 1.1.143

Published by erictraut over 3 years ago

Bug Fix: Added missing recursion check that resulted in stack overflow in type evaluator.

Enhancement: Added support for unpacked dictionary argument in function calls when the unpacked expression is a TypedDict.

Enhancement: Improved error message for the case where positional-only parameters are used in a function and a caller does not provide enough arguments.

Bug Fix: Improved logic for argument matching for call expressions where the call includes keyword-only parameters and the call expression includes an unpacked list argument.

Bug Fix: Fixed bug in type evaluation of list comprehensions when literal types were involved. The literal types were being widened to their associated non-literal types.

Enhancement: Improved isinstance type narrowing logic to accommodate the case where the first argument to isinstance is a module and the second argument is a runtime-checkable protocol class.

Bug Fix: Fixed regression that caused false positive in the case where a Callable type was used that defined its own TypeVar scope and was later matched against a self parameter in an instance method.

Enhancement: Enhanced "reportIncompatibleVariableOverride" diagnostic check so it applies to instance variables defined within a method (e.g. self.var: str = "") in addition to class variables.

Enhancement: Added type narrowing support for index expressions where the index value is a string literal.

Enhancement: Added support for "tagged union" type narrowing when the conditional expression is of the form x[K] == V or x[K] != V where x is a union of TypedDict objects and K is a literal str key value that refers to a field with a literal type and V is a literal value.

pyright - Published 1.1.142

Published by erictraut over 3 years ago

Bug Fix: Fixed false negative (missing error) due to bug in dictionary expression bidirectional type inference logic when the expected type included a union.

Enhancement: Added support for subscript expressions that contain slices when applied to tuples with known lengths.

Bug Fix: Fixed false negative condition where a protocol class was treated as a callback protocol even though it included members other than __call__.

Bug Fix: Fixed false positive error when a builtin symbol was used in a file but later redeclared within the module scope.

Bug Fix: Fixed bug in "expression printer" which is used in some error messages. It was not properly preserving parentheses for binary operation expressions.

Bug FIx: Fixed false positive error for "missing type arguments" that was surfaced when changes were made within typeshed's types.pyi stub.

pyright - Published 1.1.141

Published by erictraut over 3 years ago

Enhancement: Improved "is None" and "is not None" type narrowing logic for constrained TypeVars that include None as one of the constraints.

Enhancement: Improved error message for illegal character in token and surrogate character codes combinations that are not allowed in identifiers.

Enhancement: Added support for more surrogate character ranges that I didn't realize existed when I added the initial support.

Behavior change: Don't prefer py.typed libraries when the execution environment is typeshed.

Bug Fix: Fixed bug in signature help provider where it was not properly handling a call with a type Type[T].

Bug Fix: Fixed bug in code that handles "super" call when a cls variable is passed as the first argument.

Bug Fix: Changed the way the current parameter index is specified in signature help to better conform to LSP standard.

Enhancement: Improved the "X is incompatible with Y" error message in the case where types X and Y have the same short name. In this case, the fully-qualified names will be used to provide clarity.

Bug Fix: Fixed bug that resulted in false positive when generic type was used for iterable within a list comprehension.

Bug Fix: Fixed bug that resulted in incorrect errors when using a TypeVar imported from another file and referenced using a member access expression (e.g. typing.AnyStr).

Enhancement: Added support for defaults argument in namedtuple constructor, which marks the rightmost input parameters to the resulting named tuple as having default values.

Behavior change (from pylance): Filter auto-imports more strictly to reduce the number of completions returned. Matches require at least the first character to match before fuzzy matching is applied.

Enhancement (from pylance): Add support for tables in docstrings.