diff --git a/conformance/results/mypy/callables_kwargs.toml b/conformance/results/mypy/callables_kwargs.toml index f22038601..571931b13 100644 --- a/conformance/results/mypy/callables_kwargs.toml +++ b/conformance/results/mypy/callables_kwargs.toml @@ -3,7 +3,6 @@ notes = """ Allows callable without kwargs to be assigned to callable with unpacked kwargs """ output = """ -callables_kwargs.py:22: note: "func1" defined here callables_kwargs.py:46: error: Missing named argument "v1" for "func1" [call-arg] callables_kwargs.py:46: error: Missing named argument "v3" for "func1" [call-arg] callables_kwargs.py:51: error: Unexpected keyword argument "v4" for "func1" [call-arg] @@ -15,14 +14,14 @@ callables_kwargs.py:63: error: "func1" gets multiple values for keyword argument callables_kwargs.py:64: error: "func2" gets multiple values for keyword argument "v3" [misc] callables_kwargs.py:64: error: Argument 1 to "func2" has incompatible type "int"; expected "str" [arg-type] callables_kwargs.py:65: error: "func2" gets multiple values for keyword argument "v1" [misc] -callables_kwargs.py:101: error: Incompatible types in assignment (expression has type "def func1(**kwargs: Unpack[TD2]) -> None", variable has type "TDProtocol3") [assignment] +callables_kwargs.py:101: error: Incompatible types in assignment (expression has type "def func1(**kwargs: **TD2) -> None", variable has type "TDProtocol3") [assignment] callables_kwargs.py:101: note: "TDProtocol3.__call__" has type "def __call__(self, *, v1: int, v2: int, v3: str) -> None" -callables_kwargs.py:102: error: Incompatible types in assignment (expression has type "def func1(**kwargs: Unpack[TD2]) -> None", variable has type "TDProtocol4") [assignment] +callables_kwargs.py:102: error: Incompatible types in assignment (expression has type "def func1(**kwargs: **TD2) -> None", variable has type "TDProtocol4") [assignment] callables_kwargs.py:102: note: "TDProtocol4.__call__" has type "def __call__(self, *, v1: int) -> None" -callables_kwargs.py:103: error: Incompatible types in assignment (expression has type "def func1(**kwargs: Unpack[TD2]) -> None", variable has type "TDProtocol5") [assignment] +callables_kwargs.py:103: error: Incompatible types in assignment (expression has type "def func1(**kwargs: **TD2) -> None", variable has type "TDProtocol5") [assignment] callables_kwargs.py:103: note: "TDProtocol5.__call__" has type "def __call__(self, v1: int, v3: str) -> None" -callables_kwargs.py:111: error: Overlap between argument names and ** TypedDict items: "v1" [misc] -callables_kwargs.py:122: error: Unpack item in ** argument must be a TypedDict [misc] +callables_kwargs.py:111: error: Overlap between parameter names and ** TypedDict items: "v1" [misc] +callables_kwargs.py:122: error: Unpack item in ** parameter must be a TypedDict [misc] """ conformance_automated = "Fail" errors_diff = """ diff --git a/conformance/results/mypy/constructors_callable.toml b/conformance/results/mypy/constructors_callable.toml index 0a73c46b8..2d788f335 100644 --- a/conformance/results/mypy/constructors_callable.toml +++ b/conformance/results/mypy/constructors_callable.toml @@ -17,17 +17,17 @@ Line 128: Unexpected errors ['constructors_callable.py:128: error: Expression is Line 145: Unexpected errors ['constructors_callable.py:145: error: Expression is of type "Class6Any", not "Any" [assert-type]', 'constructors_callable.py:145: error: Too few arguments [call-arg]'] """ output = """ -constructors_callable.py:36: note: Revealed type is "def (x: builtins.int) -> constructors_callable.Class1" +constructors_callable.py:36: note: Revealed type is "def (x: int) -> constructors_callable.Class1" constructors_callable.py:38: error: Too few arguments [call-arg] constructors_callable.py:39: error: Unexpected keyword argument "y" [call-arg] constructors_callable.py:49: note: Revealed type is "def () -> constructors_callable.Class2" constructors_callable.py:51: error: Too many arguments [call-arg] -constructors_callable.py:64: note: Revealed type is "def (x: builtins.int) -> constructors_callable.Class3" +constructors_callable.py:64: note: Revealed type is "def (x: int) -> constructors_callable.Class3" constructors_callable.py:66: error: Too few arguments [call-arg] constructors_callable.py:67: error: Unexpected keyword argument "y" [call-arg] constructors_callable.py:68: error: Too many arguments [call-arg] constructors_callable.py:74: error: Incompatible return type for "__new__" (returns "int", but must return a subtype of "Class4") [misc] -constructors_callable.py:79: note: Revealed type is "def (x: builtins.int) -> constructors_callable.Class4" +constructors_callable.py:79: note: Revealed type is "def (x: int) -> constructors_callable.Class4" constructors_callable.py:80: error: Expression is of type "Class4", not "int" [assert-type] constructors_callable.py:81: error: Too few arguments [call-arg] constructors_callable.py:82: error: Unexpected keyword argument "y" [call-arg] @@ -35,15 +35,15 @@ constructors_callable.py:99: note: Revealed type is "def (*args: Any, **kwargs: constructors_callable.py:102: error: Expression is of type "Class5", not "Never" [assert-type] constructors_callable.py:107: error: Expression is of type "Class5", not "Never" [assert-type] constructors_callable.py:118: error: Incompatible return type for "__new__" (returns "Class6Proxy", but must return a subtype of "Class6") [misc] -constructors_callable.py:127: note: Revealed type is "def (x: builtins.int) -> constructors_callable.Class6" +constructors_callable.py:127: note: Revealed type is "def (x: int) -> constructors_callable.Class6" constructors_callable.py:128: error: Expression is of type "Class6", not "Class6Proxy" [assert-type] constructors_callable.py:128: error: Too few arguments [call-arg] -constructors_callable.py:144: note: Revealed type is "def (x: builtins.int) -> constructors_callable.Class6Any" +constructors_callable.py:144: note: Revealed type is "def (x: int) -> constructors_callable.Class6Any" constructors_callable.py:145: error: Expression is of type "Class6Any", not "Any" [assert-type] constructors_callable.py:145: error: Too few arguments [call-arg] -constructors_callable.py:164: note: Revealed type is "Overload(def (x: builtins.int) -> constructors_callable.Class7[builtins.int], def (x: builtins.str) -> constructors_callable.Class7[builtins.str])" -constructors_callable.py:184: note: Revealed type is "def [T] (x: builtins.list[T`1], y: builtins.list[T`1]) -> constructors_callable.Class8[T`1]" +constructors_callable.py:164: note: Revealed type is "Overload(def (x: int) -> constructors_callable.Class7[int], def (x: str) -> constructors_callable.Class7[str])" +constructors_callable.py:184: note: Revealed type is "def [T] (x: list[T], y: list[T]) -> constructors_callable.Class8[T]" constructors_callable.py:186: error: Cannot infer function type argument [misc] -constructors_callable.py:195: note: Revealed type is "def [T] (x: builtins.list[T`-1], y: builtins.list[T`-1]) -> constructors_callable.Class9" +constructors_callable.py:195: note: Revealed type is "def [T] (x: list[T], y: list[T]) -> constructors_callable.Class9" constructors_callable.py:197: error: Cannot infer function type argument [misc] """ diff --git a/conformance/results/mypy/dataclasses_descriptors.toml b/conformance/results/mypy/dataclasses_descriptors.toml index 6e02a182d..e0c1e1426 100644 --- a/conformance/results/mypy/dataclasses_descriptors.toml +++ b/conformance/results/mypy/dataclasses_descriptors.toml @@ -3,11 +3,15 @@ notes = """ Does not correctly evaluate type of descriptor access. """ output = """ +dataclasses_descriptors.py:61: error: Cannot access instance-only attribute "x" on class object [misc] +dataclasses_descriptors.py:62: error: Cannot access instance-only attribute "y" on class object [misc] dataclasses_descriptors.py:66: error: Expression is of type "Desc2[int]", not "int" [assert-type] dataclasses_descriptors.py:67: error: Expression is of type "Desc2[str]", not "str" [assert-type] """ conformance_automated = "Fail" errors_diff = """ +Line 61: Unexpected errors ['dataclasses_descriptors.py:61: error: Cannot access instance-only attribute "x" on class object [misc]'] +Line 62: Unexpected errors ['dataclasses_descriptors.py:62: error: Cannot access instance-only attribute "y" on class object [misc]'] Line 66: Unexpected errors ['dataclasses_descriptors.py:66: error: Expression is of type "Desc2[int]", not "int" [assert-type]'] Line 67: Unexpected errors ['dataclasses_descriptors.py:67: error: Expression is of type "Desc2[str]", not "str" [assert-type]'] """ diff --git a/conformance/results/mypy/directives_deprecated.toml b/conformance/results/mypy/directives_deprecated.toml index 153d58c5b..e7bec6ab7 100644 --- a/conformance/results/mypy/directives_deprecated.toml +++ b/conformance/results/mypy/directives_deprecated.toml @@ -6,7 +6,7 @@ output = """ directives_deprecated.py:18: error: class _directives_deprecated_library.Ham is deprecated: Use Spam instead [deprecated] directives_deprecated.py:24: error: function _directives_deprecated_library.norwegian_blue is deprecated: It is pining for the fjords [deprecated] directives_deprecated.py:25: error: function _directives_deprecated_library.norwegian_blue is deprecated: It is pining for the fjords [deprecated] -directives_deprecated.py:30: error: overload def (x: builtins.int) -> builtins.str of function _directives_deprecated_library.foo is deprecated: Only str will be allowed [deprecated] +directives_deprecated.py:30: error: overload def (x: int) -> str of function _directives_deprecated_library.foo is deprecated: Only str will be allowed [deprecated] directives_deprecated.py:41: error: function _directives_deprecated_library.Spam.__add__ is deprecated: There is enough spam in the world [deprecated] directives_deprecated.py:42: error: function _directives_deprecated_library.Spam.__add__ is deprecated: There is enough spam in the world [deprecated] directives_deprecated.py:44: error: function _directives_deprecated_library.Spam.greasy is deprecated: All spam will be equally greasy [deprecated] diff --git a/conformance/results/mypy/directives_reveal_type.toml b/conformance/results/mypy/directives_reveal_type.toml index c5853ba33..41a8c8720 100644 --- a/conformance/results/mypy/directives_reveal_type.toml +++ b/conformance/results/mypy/directives_reveal_type.toml @@ -1,7 +1,7 @@ conformant = "Pass" output = """ -directives_reveal_type.py:14: note: Revealed type is "builtins.int | builtins.str" -directives_reveal_type.py:15: note: Revealed type is "builtins.list[builtins.int]" +directives_reveal_type.py:14: note: Revealed type is "int | str" +directives_reveal_type.py:15: note: Revealed type is "list[int]" directives_reveal_type.py:16: note: Revealed type is "Any" directives_reveal_type.py:17: note: Revealed type is "directives_reveal_type.ForwardReference" directives_reveal_type.py:19: error: "reveal_type" expects 1 argument [misc] diff --git a/conformance/results/mypy/generics_defaults_referential.toml b/conformance/results/mypy/generics_defaults_referential.toml index ea09457d9..e8484dc7d 100644 --- a/conformance/results/mypy/generics_defaults_referential.toml +++ b/conformance/results/mypy/generics_defaults_referential.toml @@ -6,6 +6,7 @@ output = """ generics_defaults_referential.py:23: error: Expression is of type "type[slice[StartT, StopT, StepT]]", not "type[slice[int, int, int | None]]" [assert-type] generics_defaults_referential.py:38: error: Argument 1 to "Foo" has incompatible type "str"; expected "int" [arg-type] generics_defaults_referential.py:54: error: Type parameter "Start2T" has a default type that refers to one or more type variables that are out of scope [misc] +generics_defaults_referential.py:61: error: Type variable S1 referenced in the default of S2 is unbound [misc] generics_defaults_referential.py:75: error: TypeVar default must be one of the constraint types [misc] generics_defaults_referential.py:78: error: TypeVar default must be one of the constraint types [misc] generics_defaults_referential.py:79: error: TypeVar default must be one of the constraint types [misc] @@ -14,7 +15,6 @@ generics_defaults_referential.py:104: error: Expression is of type "Bar[int, lis conformance_automated = "Fail" errors_diff = """ Line 37: Expected 1 errors -Line 61: Expected 1 errors Line 69: Expected 1 errors Line 23: Unexpected errors ['generics_defaults_referential.py:23: error: Expression is of type "type[slice[StartT, StopT, StepT]]", not "type[slice[int, int, int | None]]" [assert-type]'] Line 78: Unexpected errors ['generics_defaults_referential.py:78: error: TypeVar default must be one of the constraint types [misc]'] diff --git a/conformance/results/mypy/historical_positional.toml b/conformance/results/mypy/historical_positional.toml index e3dec35e3..1338644ef 100644 --- a/conformance/results/mypy/historical_positional.toml +++ b/conformance/results/mypy/historical_positional.toml @@ -5,13 +5,9 @@ Treats keyword-only parameter as positional-only. Applies legacy positional-only rules when PEP 570 syntax is used. """ output = """ -historical_positional.py:13: note: "f1" defined here historical_positional.py:18: error: Unexpected keyword argument "__x" for "f1" [call-arg] -historical_positional.py:45: note: "f3" defined here historical_positional.py:48: error: Unexpected keyword argument "__y" for "f3" [call-arg] -historical_positional.py:52: note: "m1" of "A" defined here historical_positional.py:59: error: Unexpected keyword argument "__x" for "m1" of "A" [call-arg] -historical_positional.py:66: note: "f4" defined here historical_positional.py:69: error: Unexpected keyword argument "__y" for "f4" [call-arg] """ conformance_automated = "Fail" diff --git a/conformance/results/mypy/overloads_consistency.toml b/conformance/results/mypy/overloads_consistency.toml index 26cb4d916..1010582c5 100644 --- a/conformance/results/mypy/overloads_consistency.toml +++ b/conformance/results/mypy/overloads_consistency.toml @@ -4,5 +4,5 @@ errors_diff = """ """ output = """ overloads_consistency.py:28: error: Overloaded function implementation cannot produce return type of signature 2 [misc] -overloads_consistency.py:44: error: Overloaded function implementation does not accept all possible arguments of signature 2 [misc] +overloads_consistency.py:44: error: Overloaded function implementation does not accept all possible parameters of signature 2 [misc] """ diff --git a/conformance/results/mypy/tuples_type_compat.toml b/conformance/results/mypy/tuples_type_compat.toml index da7c5e84f..602e6cd5d 100644 --- a/conformance/results/mypy/tuples_type_compat.toml +++ b/conformance/results/mypy/tuples_type_compat.toml @@ -12,9 +12,8 @@ tuples_type_compat.py:62: error: Incompatible types in assignment (expression ha tuples_type_compat.py:76: error: Expression is of type "tuple[int]", not "tuple[int] | tuple[str, str] | tuple[int, *tuple[str, ...], int]" [assert-type] tuples_type_compat.py:81: error: Expression is of type "tuple[str, str] | tuple[int, int]", not "tuple[int] | tuple[str, str] | tuple[int, *tuple[str, ...], int]" [assert-type] tuples_type_compat.py:86: error: Expression is of type "tuple[int, str, int]", not "tuple[int] | tuple[str, str] | tuple[int, *tuple[str, ...], int]" [assert-type] -tuples_type_compat.py:101: error: Expression is of type "tuple[int] | tuple[str, str] | tuple[int, *tuple[str, ...], int]", not "tuple[int]" [assert-type] -tuples_type_compat.py:106: error: Expression is of type "tuple[int] | tuple[str, str] | tuple[int, *tuple[str, ...], int]", not "tuple[str, str] | tuple[int, int]" [assert-type] -tuples_type_compat.py:111: error: Expression is of type "tuple[int] | tuple[str, str] | tuple[int, *tuple[str, ...], int]", not "tuple[int, str, int]" [assert-type] +tuples_type_compat.py:102: error: Expression is of type "tuple[int]", not "tuple[int] | tuple[str, str] | tuple[int, *tuple[str, ...], int]" [assert-type] +tuples_type_compat.py:107: error: Expression is of type "tuple[str, str] | tuple[int, int]", not "tuple[int] | tuple[str, str] | tuple[int, *tuple[str, ...], int]" [assert-type] tuples_type_compat.py:127: error: Expression is of type "tuple[int | str, str]", not "tuple[int | str, int | str]" [assert-type] tuples_type_compat.py:130: error: Expression is of type "tuple[int | str, int]", not "tuple[int | str, int | str]" [assert-type] tuples_type_compat.py:149: error: Expression is of type "Sequence[object]", not "Sequence[complex | list[int]]" [assert-type] @@ -32,6 +31,7 @@ tuples_type_compat.py:188: error: Incompatible types in assignment (expression h """ conformance_automated = "Fail" errors_diff = """ +Lines 111, 112: Expected error (tag 'func6_3') Line 149: Unexpected errors ['tuples_type_compat.py:149: error: Expression is of type "Sequence[object]", not "Sequence[complex | list[int]]" [assert-type]'] Line 152: Unexpected errors ['tuples_type_compat.py:152: error: Expression is of type "Sequence[object]", not "Sequence[int | str]" [assert-type]'] """ diff --git a/conformance/results/mypy/typeddicts_extra_items.toml b/conformance/results/mypy/typeddicts_extra_items.toml index 1fdda3d4d..e7c58f8bc 100644 --- a/conformance/results/mypy/typeddicts_extra_items.toml +++ b/conformance/results/mypy/typeddicts_extra_items.toml @@ -99,8 +99,6 @@ typeddicts_extra_items.py:124: error: Unexpected keyword argument "extra_items" typeddicts_extra_items.py:128: error: Key "name" of TypedDict "MovieEI" cannot be deleted [misc] typeddicts_extra_items.py:129: error: TypedDict "MovieEI" has no key "year" [typeddict-item] typeddicts_extra_items.py:137: error: Unexpected keyword argument "extra_items" for "__init_subclass__" of "TypedDict" [call-arg] -typeddicts_extra_items.py:140: note: "unpack_no_extra" defined here -typeddicts_extra_items.py:141: note: "unpack_extra" defined here typeddicts_extra_items.py:143: error: Unexpected keyword argument "year" for "unpack_no_extra" [call-arg] typeddicts_extra_items.py:144: error: Unexpected keyword argument "year" for "unpack_extra" [call-arg] typeddicts_extra_items.py:149: error: Unexpected keyword argument "extra_items" for "__init_subclass__" of "TypedDict" [call-arg] diff --git a/conformance/results/mypy/version.toml b/conformance/results/mypy/version.toml index 6356188e2..4b6d1d608 100644 --- a/conformance/results/mypy/version.toml +++ b/conformance/results/mypy/version.toml @@ -1 +1 @@ -version = "mypy 1.19.1" +version = "mypy 1.20.0" diff --git a/conformance/results/pyrefly/callables_annotation.toml b/conformance/results/pyrefly/callables_annotation.toml index 7ddb09654..efbdf98e8 100644 --- a/conformance/results/pyrefly/callables_annotation.toml +++ b/conformance/results/pyrefly/callables_annotation.toml @@ -14,10 +14,10 @@ ERROR callables_annotation.py:29:8-9: Unexpected keyword argument `a` [unexpecte ERROR callables_annotation.py:29:8-11: Expected 2 more positional arguments [bad-argument-count] ERROR callables_annotation.py:29:13-14: Unexpected keyword argument `b` [unexpected-keyword] ERROR callables_annotation.py:35:8-9: Expected 0 positional arguments, got 1 [bad-argument-count] -ERROR callables_annotation.py:55:5-18: `Callable` requires exactly two arguments but 1 was found [bad-specialization] +ERROR callables_annotation.py:55:5-18: Expected 2 arguments for `Callable`, got 1 [bad-specialization] ERROR callables_annotation.py:56:14-17: Callable types can only have `ParamSpec` in this position, got `int` [bad-specialization] ERROR callables_annotation.py:57:18-23: Expected a type form, got instance of `list[type[int]]` [not-a-type] -ERROR callables_annotation.py:58:5-28: `Callable` requires exactly two arguments but 3 was found [bad-specialization] +ERROR callables_annotation.py:58:5-28: Expected 2 arguments for `Callable`, got 3 [bad-specialization] ERROR callables_annotation.py:59:15-18: Invalid position for `...` [invalid-argument] ERROR callables_annotation.py:91:7-15: `() -> str` is not assignable to variable `cb3` with type `(int, ...) -> str` [bad-assignment] ERROR callables_annotation.py:93:7-15: `(*, a: int) -> str` is not assignable to variable `cb3` with type `(int, ...) -> str` [bad-assignment] diff --git a/conformance/results/pyrefly/directives_no_type_check.toml b/conformance/results/pyrefly/directives_no_type_check.toml index e3669041a..52623ac35 100644 --- a/conformance/results/pyrefly/directives_no_type_check.toml +++ b/conformance/results/pyrefly/directives_no_type_check.toml @@ -4,8 +4,6 @@ errors_diff = """ """ output = """ ERROR directives_no_type_check.py:15:14-16: `Literal['']` is not assignable to `int` [bad-assignment] -ERROR directives_no_type_check.py:29:7-17: Argument `Literal[b'invalid']` is not assignable to parameter `a` with type `int` in function `func1` [bad-argument-type] -ERROR directives_no_type_check.py:29:19-31: Argument `Literal[b'arguments']` is not assignable to parameter `b` with type `str` in function `func1` [bad-argument-type] ERROR directives_no_type_check.py:32:6-8: Missing argument `a` in function `func1` [missing-argument] ERROR directives_no_type_check.py:32:6-8: Missing argument `b` in function `func1` [missing-argument] """ diff --git a/conformance/results/pyrefly/enums_member_values.toml b/conformance/results/pyrefly/enums_member_values.toml index e90c4678c..5ac05b3dd 100644 --- a/conformance/results/pyrefly/enums_member_values.toml +++ b/conformance/results/pyrefly/enums_member_values.toml @@ -3,12 +3,9 @@ conformance_automated = "Pass" errors_diff = """ """ output = """ -ERROR enums_member_values.py:21:12-43: assert_type(int, Literal[1]) failed [assert-type] -ERROR enums_member_values.py:22:12-41: assert_type(int, Literal[1]) failed [assert-type] -ERROR enums_member_values.py:26:16-50: assert_type(int, Literal[1, 3]) failed [assert-type] ERROR enums_member_values.py:30:16-51: assert_type(int, Literal[1, 2, 3]) failed [assert-type] ERROR enums_member_values.py:54:12-46: assert_type(Any, Literal[1]) failed [assert-type] ERROR enums_member_values.py:68:12-42: assert_type(int, Literal[1]) failed [assert-type] -ERROR enums_member_values.py:78:5-10: Enum member `GREEN` has type `str`, must match the `_value_` attribute annotation of `int` [bad-assignment] +ERROR enums_member_values.py:78:5-10: Enum member `GREEN` has type `Literal['green']`, must match the `_value_` attribute annotation of `int` [bad-assignment] ERROR enums_member_values.py:85:24-29: `int` is not assignable to attribute `_value_` with type `str` [bad-assignment] """ diff --git a/conformance/results/pyrefly/generics_paramspec_components.toml b/conformance/results/pyrefly/generics_paramspec_components.toml index 1dbe5ff1e..03d98dbde 100644 --- a/conformance/results/pyrefly/generics_paramspec_components.toml +++ b/conformance/results/pyrefly/generics_paramspec_components.toml @@ -1,10 +1,5 @@ -conformant = "Partial" -notes = """ -Does not reject usage of args/kwargs for out-of-scope ParamSpec -""" -conformance_automated = "Fail" +conformance_automated = "Pass" errors_diff = """ -Line 30: Expected 1 errors """ output = """ ERROR generics_paramspec_components.py:17:25-33: `ParamSpec` **kwargs is only allowed in a **kwargs annotation [invalid-annotation] @@ -13,6 +8,8 @@ ERROR generics_paramspec_components.py:20:23-29: `ParamSpec` *args is only allow ERROR generics_paramspec_components.py:23:5-24:13: `ParamSpec` *args and **kwargs must be used together [invalid-param-spec] ERROR generics_paramspec_components.py:23:46-52: `ParamSpec` *args is only allowed in an *args annotation [invalid-annotation] ERROR generics_paramspec_components.py:26:5-27:13: `ParamSpec` *args and **kwargs must be used together [invalid-param-spec] +ERROR generics_paramspec_components.py:30:25-31: Expected a type form, got instance of `ParamSpecArgs` [not-a-type] +ERROR generics_paramspec_components.py:30:43-51: Expected a type form, got instance of `ParamSpecKwargs` [not-a-type] ERROR generics_paramspec_components.py:35:18-24: `ParamSpec` *args is only allowed in an *args annotation [invalid-annotation] ERROR generics_paramspec_components.py:36:20-28: `ParamSpec` **kwargs is only allowed in a **kwargs annotation [invalid-annotation] ERROR generics_paramspec_components.py:38:5-39:13: `ParamSpec` *args and **kwargs must be used together [invalid-param-spec] @@ -22,8 +19,7 @@ ERROR generics_paramspec_components.py:51:11-12: Expected 0 positional arguments ERROR generics_paramspec_components.py:60:28-34: Keyword-only parameter `s` may not appear after ParamSpec args parameter [bad-function-definition] ERROR generics_paramspec_components.py:70:10-30: Expected *-unpacked P.args and **-unpacked P.kwargs [invalid-param-spec] ERROR generics_paramspec_components.py:72:10-27: Expected 1 more positional argument [bad-argument-count] -ERROR generics_paramspec_components.py:83:13-14: Unexpected keyword argument `x` in function `foo` [unexpected-keyword] -ERROR generics_paramspec_components.py:83:13-16: Expected 1 more positional argument in function `foo` [bad-argument-count] +ERROR generics_paramspec_components.py:83:13-14: Expected argument `x` to be positional in function `foo` [unexpected-keyword] ERROR generics_paramspec_components.py:98:20-23: Argument `Literal['A']` is not assignable to parameter `a` with type `int` in function `twice` [bad-argument-type] ERROR generics_paramspec_components.py:98:25-26: Argument `Literal[1]` is not assignable to parameter `b` with type `str` in function `twice` [bad-argument-type] """ diff --git a/conformance/results/pyrefly/generics_self_usage.toml b/conformance/results/pyrefly/generics_self_usage.toml index 7505dd888..8d26f2592 100644 --- a/conformance/results/pyrefly/generics_self_usage.toml +++ b/conformance/results/pyrefly/generics_self_usage.toml @@ -4,13 +4,13 @@ Does not implement some restrictions on where Self can be used """ conformance_automated = "Fail" errors_diff = """ -Line 82: Expected 1 errors Line 87: Expected 1 errors """ output = """ ERROR generics_self_usage.py:73:14-18: `Self` must appear within a class [invalid-annotation] ERROR generics_self_usage.py:73:23-27: `Self` must appear within a class [invalid-annotation] ERROR generics_self_usage.py:76:6-10: `Self` must appear within a class [invalid-annotation] +ERROR generics_self_usage.py:82:9-37: `Self` cannot be used when `self` has an explicit TypeVar annotation [invalid-annotation] ERROR generics_self_usage.py:103:15-19: `Self` must appear within a class [invalid-annotation] ERROR generics_self_usage.py:105:12-16: `Self` must appear within a class [invalid-annotation] ERROR generics_self_usage.py:105:12-16: Invalid base class: `Self` [invalid-inheritance] diff --git a/conformance/results/pyrefly/protocols_modules.toml b/conformance/results/pyrefly/protocols_modules.toml index 88eae7936..08e55a351 100644 --- a/conformance/results/pyrefly/protocols_modules.toml +++ b/conformance/results/pyrefly/protocols_modules.toml @@ -1,13 +1,7 @@ -conformant = "Partial" -notes = """ -Fails one subtyping example of protocol modules -""" -conformance_automated = "Fail" +conformance_automated = "Pass" errors_diff = """ -Line 25: Unexpected errors ['`Module[_protocols_modules1]` is not assignable to `Options1` [bad-assignment]'] """ output = """ -ERROR protocols_modules.py:25:17-36: `Module[_protocols_modules1]` is not assignable to `Options1` [bad-assignment] ERROR protocols_modules.py:26:17-36: `Module[_protocols_modules1]` is not assignable to `Options2` [bad-assignment] ERROR protocols_modules.py:48:18-37: `Module[_protocols_modules2]` is not assignable to `Reporter2` [bad-assignment] ERROR protocols_modules.py:49:18-37: `Module[_protocols_modules2]` is not assignable to `Reporter3` [bad-assignment] diff --git a/conformance/results/pyrefly/qualifiers_final_annotation.toml b/conformance/results/pyrefly/qualifiers_final_annotation.toml index 10c83546a..eda91ff00 100644 --- a/conformance/results/pyrefly/qualifiers_final_annotation.toml +++ b/conformance/results/pyrefly/qualifiers_final_annotation.toml @@ -1,13 +1,5 @@ -conformant = "Partial" -notes = """ -Does not reject Final inside ClassVar. -Issues with NamedTuple interaction. -""" -conformance_automated = "Fail" +conformance_automated = "Pass" errors_diff = """ -Line 107: Expected 1 errors -Line 131: Unexpected errors ['Expected first item to be a string literal [invalid-argument]', 'Expected first item to be a string literal [invalid-argument]'] -Line 133: Unexpected errors ['Unexpected keyword argument `x` in function `N.__new__` [unexpected-keyword]', 'Unexpected keyword argument `y` in function `N.__new__` [unexpected-keyword]'] """ output = """ ERROR qualifiers_final_annotation.py:16:7-12: Expected a type argument for `Final` [invalid-annotation] @@ -22,17 +14,16 @@ ERROR qualifiers_final_annotation.py:67:9-17: Cannot set field `ID7` [read-only] ERROR qualifiers_final_annotation.py:71:8-11: Cannot assign to variable `RATE` because it is marked final [bad-assignment] ERROR qualifiers_final_annotation.py:81:1-18: Cannot set field `DEFAULT_ID` [read-only] ERROR qualifiers_final_annotation.py:94:5-17: `BORDER_WIDTH` is declared as final in parent class `ClassC` [bad-override] +ERROR qualifiers_final_annotation.py:107:5-11: `Final` may not be nested inside `ClassVar` [invalid-annotation] ERROR qualifiers_final_annotation.py:108:19-27: `ClassVar` may not be nested inside `Final` [invalid-annotation] ERROR qualifiers_final_annotation.py:118:9-19: `Final` is not allowed in this context [invalid-annotation] ERROR qualifiers_final_annotation.py:121:14-19: `Final` is only allowed on a class or local variable annotation [invalid-annotation] ERROR qualifiers_final_annotation.py:121:14-30: `Final` is not allowed in this context [invalid-annotation] -ERROR qualifiers_final_annotation.py:131:23-24: Expected first item to be a string literal [invalid-argument] -ERROR qualifiers_final_annotation.py:131:33-34: Expected first item to be a string literal [invalid-argument] -ERROR qualifiers_final_annotation.py:133:3-4: Unexpected keyword argument `x` in function `N.__new__` [unexpected-keyword] -ERROR qualifiers_final_annotation.py:133:8-9: Unexpected keyword argument `y` in function `N.__new__` [unexpected-keyword] +ERROR qualifiers_final_annotation.py:134:2-7: Missing argument `x` in function `N.__new__` [missing-argument] +ERROR qualifiers_final_annotation.py:134:2-7: Missing argument `y` in function `N.__new__` [missing-argument] ERROR qualifiers_final_annotation.py:134:3-4: Unexpected keyword argument `a` in function `N.__new__` [unexpected-keyword] -ERROR qualifiers_final_annotation.py:135:3-4: Unexpected keyword argument `x` in function `N.__new__` [unexpected-keyword] -ERROR qualifiers_final_annotation.py:135:9-10: Unexpected keyword argument `y` in function `N.__new__` [unexpected-keyword] +ERROR qualifiers_final_annotation.py:135:5-7: Argument `Literal['']` is not assignable to parameter `x` with type `int` in function `N.__new__` [bad-argument-type] +ERROR qualifiers_final_annotation.py:135:11-13: Argument `Literal['']` is not assignable to parameter `y` with type `int` in function `N.__new__` [bad-argument-type] ERROR qualifiers_final_annotation.py:141:11-12: Cannot assign to variable `ID1` because it is marked final [bad-assignment] ERROR qualifiers_final_annotation.py:145:5-11: Cannot assign to variable `x` because it is marked final [bad-assignment] ERROR qualifiers_final_annotation.py:147:15-16: Cannot assign to variable `x` because it is marked final [bad-assignment] diff --git a/conformance/results/pyrefly/qualifiers_final_decorator.toml b/conformance/results/pyrefly/qualifiers_final_decorator.toml index aba68da0a..381d74150 100644 --- a/conformance/results/pyrefly/qualifiers_final_decorator.toml +++ b/conformance/results/pyrefly/qualifiers_final_decorator.toml @@ -12,5 +12,5 @@ ERROR qualifiers_final_decorator.py:81:9-15: `method` is declared as final in pa ERROR qualifiers_final_decorator.py:86:9-15: `@final` should only be applied to the implementation of an overloaded function. [invalid-overload] ERROR qualifiers_final_decorator.py:95:9-15: `method` is declared as final in parent class `Base4` [bad-override] ERROR qualifiers_final_decorator.py:118:9-15: `method` is declared as final in parent class `Base5_2` [bad-override] -ERROR qualifiers_final_decorator.py:125:1-7: Decorator `@final` can only be used on methods. [invalid-decorator] + WARN qualifiers_final_decorator.py:125:1-7: Decorator `@final` can only be used on methods. [invalid-decorator] """ diff --git a/conformance/results/pyrefly/typeddicts_alt_syntax.toml b/conformance/results/pyrefly/typeddicts_alt_syntax.toml index 6781d8452..ab8a7e821 100644 --- a/conformance/results/pyrefly/typeddicts_alt_syntax.toml +++ b/conformance/results/pyrefly/typeddicts_alt_syntax.toml @@ -5,7 +5,7 @@ errors_diff = """ output = """ ERROR typeddicts_alt_syntax.py:23:1-14: Expected valid functional typed dictionary definition [invalid-argument] ERROR typeddicts_alt_syntax.py:27:45-46: Expected first item to be a string literal [invalid-argument] -ERROR typeddicts_alt_syntax.py:31:27-38: Expected string literal "BadTypedDict3" [invalid-argument] + WARN typeddicts_alt_syntax.py:31:27-38: Expected string literal "BadTypedDict3" [name-mismatch] ERROR typeddicts_alt_syntax.py:35:72-83: Unrecognized keyword argument `other` in typed dictionary definition [invalid-argument] ERROR typeddicts_alt_syntax.py:41:1-7: Expected valid functional typed dictionary definition [invalid-argument] ERROR typeddicts_alt_syntax.py:41:30-38: Unrecognized keyword argument `name` in typed dictionary definition [invalid-argument] diff --git a/conformance/results/pyrefly/typeforms_typeform.toml b/conformance/results/pyrefly/typeforms_typeform.toml index 5a6215d4f..0b882d7fa 100644 --- a/conformance/results/pyrefly/typeforms_typeform.toml +++ b/conformance/results/pyrefly/typeforms_typeform.toml @@ -1,78 +1,32 @@ -conformant = "Unsupported" +conformant = "Partial" +notes = """ +Does not allow assigning a TypeForm to types.GenericAlias. +Does not allow passing a forward reference to a function accepting a TypeForm. +""" conformance_automated = "Fail" errors_diff = """ -Line 59: Expected 1 errors -Line 15: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 16: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 17: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 18: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 19: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 20: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 21: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 29: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 30: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 31: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 32: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 40: Unexpected errors ['Expected a type form, got instance of `_SpecialForm` [not-a-type]'] -Line 41: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 46: Unexpected errors ['`type[str | None]` is not assignable to `UnionType` [bad-assignment]'] -Line 47: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] Line 49: Unexpected errors ['`type[list[int]]` is not assignable to `GenericAlias` [bad-assignment]', 'Expected `v2_actual` to be a type alias, got `GenericAlias` [invalid-type-alias]'] -Line 50: Unexpected errors ['Expected a type form, got instance of `_SpecialForm` [not-a-type]'] -Line 52: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 53: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 80: Unexpected errors ['Expected a callable, got `_SpecialForm` [not-callable]'] -Line 81: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 83: Unexpected errors ['Expected a callable, got `_SpecialForm` [not-callable]'] -Line 84: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 93: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 97: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] -Line 107: Unexpected errors ['Expected a type form, got instance of `object` [not-a-type]'] +Line 58: Unexpected errors ["Argument `Literal['int']` is not assignable to parameter `x` with type `TypeForm[Any]` in function `func1` [bad-argument-type]"] """ output = """ -ERROR typeforms_typeform.py:15:6-26: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:16:6-26: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:17:6-26: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:18:6-26: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:19:6-26: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:20:6-26: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:21:6-26: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:23:7-27: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:24:7-27: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:29:8-21: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:30:8-21: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:31:20-33: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:32:20-33: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:40:14-22: Expected a type form, got instance of `_SpecialForm` [not-a-type] -ERROR typeforms_typeform.py:41:20-33: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:46:30-40: `type[str | None]` is not assignable to `UnionType` [bad-assignment] -ERROR typeforms_typeform.py:47:15-35: Expected a type form, got instance of `object` [not-a-type] +ERROR typeforms_typeform.py:23:30-39: `type[int | str]` is not assignable to `TypeForm[str | None]` [bad-assignment] +ERROR typeforms_typeform.py:24:30-46: `type[list[str | None]]` is not assignable to `TypeForm[str | None]` [bad-assignment] ERROR typeforms_typeform.py:49:33-42: `type[list[int]]` is not assignable to `GenericAlias` [bad-assignment] ERROR typeforms_typeform.py:49:33-42: Expected `v2_actual` to be a type alias, got `GenericAlias` [invalid-type-alias] -ERROR typeforms_typeform.py:50:15-23: Expected a type form, got instance of `_SpecialForm` [not-a-type] -ERROR typeforms_typeform.py:52:5-24: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:53:5-23: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:67:7-15: Expected a type form, got instance of `_SpecialForm` [not-a-type] -ERROR typeforms_typeform.py:68:7-15: Expected a type form, got instance of `_SpecialForm` [not-a-type] -ERROR typeforms_typeform.py:69:7-15: Expected a type form, got instance of `_SpecialForm` [not-a-type] -ERROR typeforms_typeform.py:70:7-15: Expected a type form, got instance of `_SpecialForm` [not-a-type] +ERROR typeforms_typeform.py:58:7-12: Argument `Literal['int']` is not assignable to parameter `x` with type `TypeForm[Any]` in function `func1` [bad-argument-type] +ERROR typeforms_typeform.py:59:7-19: Argument `Literal['not a type']` is not assignable to parameter `x` with type `TypeForm[Any]` in function `func1` [bad-argument-type] +ERROR typeforms_typeform.py:67:18-25: `tuple[@_, ...]` is not assignable to `TypeForm[Any]` [bad-assignment] +ERROR typeforms_typeform.py:68:18-24: `tuple[Literal[1], Literal[2]]` is not assignable to `TypeForm[Any]` [bad-assignment] +ERROR typeforms_typeform.py:69:18-19: `Literal[1]` is not assignable to `TypeForm[Any]` [bad-assignment] ERROR typeforms_typeform.py:70:18-22: `Self` must appear within a class [invalid-annotation] -ERROR typeforms_typeform.py:71:7-15: Expected a type form, got instance of `_SpecialForm` [not-a-type] +ERROR typeforms_typeform.py:70:18-22: `type[Self]` is not assignable to `TypeForm[Any]` [bad-assignment] ERROR typeforms_typeform.py:71:18-31: `ClassVar` is not allowed in this context [invalid-annotation] -ERROR typeforms_typeform.py:72:7-15: Expected a type form, got instance of `_SpecialForm` [not-a-type] ERROR typeforms_typeform.py:72:18-28: `Final` is not allowed in this context [invalid-annotation] -ERROR typeforms_typeform.py:73:7-15: Expected a type form, got instance of `_SpecialForm` [not-a-type] -ERROR typeforms_typeform.py:74:7-15: Expected a type form, got instance of `_SpecialForm` [not-a-type] -ERROR typeforms_typeform.py:75:7-15: Expected a type form, got instance of `_SpecialForm` [not-a-type] -ERROR typeforms_typeform.py:80:6-14: Expected a callable, got `_SpecialForm` [not-callable] -ERROR typeforms_typeform.py:81:17-37: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:83:6-14: Expected a callable, got `_SpecialForm` [not-callable] -ERROR typeforms_typeform.py:84:17-36: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:86:6-14: Expected a callable, got `_SpecialForm` [not-callable] -ERROR typeforms_typeform.py:88:6-14: Expected a callable, got `_SpecialForm` [not-callable] -ERROR typeforms_typeform.py:93:24-37: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:97:5-24: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:98:5-18: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:107:5-24: Expected a type form, got instance of `object` [not-a-type] -ERROR typeforms_typeform.py:108:5-18: Expected a type form, got instance of `object` [not-a-type] +ERROR typeforms_typeform.py:73:18-28: `type[*TypeVarTuple[Ts]]` is not assignable to `TypeForm[Any]` [bad-assignment] +ERROR typeforms_typeform.py:74:18-26: `type[Optional]` is not assignable to `TypeForm[Any]` [bad-assignment] +ERROR typeforms_typeform.py:75:19-28: `+` is not supported between `type[int]` and `type[str]` [unsupported-operation] +ERROR typeforms_typeform.py:86:16-23: Function call cannot be used in annotations [invalid-annotation] +ERROR typeforms_typeform.py:88:15-22: Function call cannot be used in annotations [invalid-annotation] +ERROR typeforms_typeform.py:98:21-36: `TypeForm[int]` is not assignable to `TypeForm[str]` [bad-assignment] +ERROR typeforms_typeform.py:108:21-31: `type[int]` is not assignable to `TypeForm[str]` [bad-assignment] """ diff --git a/conformance/results/pyrefly/version.toml b/conformance/results/pyrefly/version.toml index 58851b2f1..271a6135d 100644 --- a/conformance/results/pyrefly/version.toml +++ b/conformance/results/pyrefly/version.toml @@ -1 +1 @@ -version = "pyrefly 0.58.0" +version = "pyrefly 0.60.0" diff --git a/conformance/results/results.html b/conformance/results/results.html index 051e4b900..ee117fc40 100644 --- a/conformance/results/results.html +++ b/conformance/results/results.html @@ -172,13 +172,13 @@
| - | mypy 1.19.1
+ | mypy 1.20.0
|
pyright 1.1.408
|
-zuban 0.6.2
+ | zuban 0.7.0
|
-pyrefly 0.58.0
+ | pyrefly 0.60.0
|
ty 0.0.29
|
@@ -228,7 +228,7 @@ Partial Does not support assigning Union and GenericAlias objects to their runtime types. |
Unsupported | Pass | -Unsupported | +Partial Does not allow assigning a TypeForm to types.GenericAlias. Does not allow passing a forward reference to a function accepting a TypeForm. |
Unsupported |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -318,7 +318,7 @@ Python Type System Conformance Test Results | Pass | Pass | Pass | -Partial Does not reject usage of args/kwargs for out-of-scope ParamSpec |
+Pass | Partial Incorrectly allows using `*args: P.args` and `**kwargs: P.kwargs` when `P` has not been put into scope by any other parameter annotation or enclosing scope. |
||||||||
| generics_paramspec_semantics | @@ -415,14 +415,14 @@||||||||||||||
| generics_typevartuple_args | Partial Does not enforce that tuples captured by TypeVarTuple are of the same length. |
Partial Does not correctly solve TypeVarTuple with heterogeneous bounds. |
-Partial Does not correctly solve TypeVarTuple with heterogeneous bounds. |
+Pass | Partial Does not correctly solve TypeVarTuple with heterogeneous bounds. |
Partial Supports PEP-646 unpacked tuples but not TypeVarTuple. |
||||||||
| generics_typevartuple_basic | Partial Does not enforce that tuples captured by TypeVarTuple are same length. |
Partial Does not correctly solve TypeVarTuple with heterogeneous bounds. |
-Partial Does not correctly solve TypeVarTuple with heterogeneous bounds. |
+Pass | Partial TypeVarTuple is pinned too early when calling generic function. |
Unsupported | Partial Does not treat use of Final name as if it was replaced by the literal in NamedTuple definition. Does not allow conditional assignment of Final instance variable in __init__ method. Does not allow redefinition of private class variable that is marked Final in parent class. Does not report modification of local Final variable via "for" statement. |
Pass | Pass | -Partial Does not reject Final inside ClassVar. Issues with NamedTuple interaction. |
+Pass | Pass | ||
| qualifiers_final_decorator | @@ -648,7 +648,7 @@Pass | Pass | Pass | -Partial Fails one subtyping example of protocol modules |
+Pass | Partial Never considers a module as satisfying a protocol with a method member due to the fact that the method will never exist on the class `types.ModuleType`, only on a given specific module instance. |
||||||||
| protocols_recursive | diff --git a/conformance/results/zuban/aliases_explicit.toml b/conformance/results/zuban/aliases_explicit.toml index 655fb9268..0f48394fe 100644 --- a/conformance/results/zuban/aliases_explicit.toml +++ b/conformance/results/zuban/aliases_explicit.toml @@ -17,7 +17,7 @@ aliases_explicit.py:83: error: Invalid type alias: expression is not a valid typ aliases_explicit.py:84: error: Invalid type alias: expression is not a valid type [valid-type] aliases_explicit.py:85: error: Invalid type alias: expression is not a valid type [valid-type] aliases_explicit.py:86: error: Invalid type alias: expression is not a valid type [valid-type] -aliases_explicit.py:87: error: Variable "aliases_explicit.var1" is not valid as a type [valid-type] +aliases_explicit.py:87: error: Variable "tests.aliases_explicit.var1" is not valid as a type [valid-type] aliases_explicit.py:87: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases aliases_explicit.py:88: error: Invalid type alias: expression is not a valid type [valid-type] aliases_explicit.py:89: error: Invalid type: try using Literal[1] instead? [valid-type] diff --git a/conformance/results/zuban/aliases_implicit.toml b/conformance/results/zuban/aliases_implicit.toml index 39572ce2e..1ba69a041 100644 --- a/conformance/results/zuban/aliases_implicit.toml +++ b/conformance/results/zuban/aliases_implicit.toml @@ -8,33 +8,33 @@ aliases_implicit.py:78: error: Bad number of arguments for type alias, expected aliases_implicit.py:79: error: Bad number of arguments for type alias, expected 1, given 2 [misc] aliases_implicit.py:80: error: Can only replace ParamSpec with a parameter types list or another ParamSpec, got "int" [misc] aliases_implicit.py:81: error: Type argument "str" of "GoodTypeAlias12" must be a subtype of "float" [type-var] -aliases_implicit.py:106: error: Variable "aliases_implicit.BadTypeAlias1" is not valid as a type [valid-type] +aliases_implicit.py:106: error: Variable "tests.aliases_implicit.BadTypeAlias1" is not valid as a type [valid-type] aliases_implicit.py:106: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:107: error: Variable "aliases_implicit.BadTypeAlias2" is not valid as a type [valid-type] +aliases_implicit.py:107: error: Variable "tests.aliases_implicit.BadTypeAlias2" is not valid as a type [valid-type] aliases_implicit.py:107: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:108: error: Variable "aliases_implicit.BadTypeAlias3" is not valid as a type [valid-type] +aliases_implicit.py:108: error: Variable "tests.aliases_implicit.BadTypeAlias3" is not valid as a type [valid-type] aliases_implicit.py:108: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:109: error: Variable "aliases_implicit.BadTypeAlias4" is not valid as a type [valid-type] +aliases_implicit.py:109: error: Variable "tests.aliases_implicit.BadTypeAlias4" is not valid as a type [valid-type] aliases_implicit.py:109: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:110: error: Variable "aliases_implicit.BadTypeAlias5" is not valid as a type [valid-type] +aliases_implicit.py:110: error: Variable "tests.aliases_implicit.BadTypeAlias5" is not valid as a type [valid-type] aliases_implicit.py:110: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:111: error: Variable "aliases_implicit.BadTypeAlias6" is not valid as a type [valid-type] +aliases_implicit.py:111: error: Variable "tests.aliases_implicit.BadTypeAlias6" is not valid as a type [valid-type] aliases_implicit.py:111: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:112: error: Variable "aliases_implicit.BadTypeAlias7" is not valid as a type [valid-type] +aliases_implicit.py:112: error: Variable "tests.aliases_implicit.BadTypeAlias7" is not valid as a type [valid-type] aliases_implicit.py:112: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:113: error: Variable "aliases_implicit.BadTypeAlias8" is not valid as a type [valid-type] +aliases_implicit.py:113: error: Variable "tests.aliases_implicit.BadTypeAlias8" is not valid as a type [valid-type] aliases_implicit.py:113: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:114: error: Variable "aliases_implicit.var1" is not valid as a type [valid-type] +aliases_implicit.py:114: error: Variable "tests.aliases_implicit.var1" is not valid as a type [valid-type] aliases_implicit.py:114: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:115: error: Variable "aliases_implicit.BadTypeAlias10" is not valid as a type [valid-type] +aliases_implicit.py:115: error: Variable "tests.aliases_implicit.BadTypeAlias10" is not valid as a type [valid-type] aliases_implicit.py:115: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:116: error: Variable "aliases_implicit.BadTypeAlias11" is not valid as a type [valid-type] +aliases_implicit.py:116: error: Variable "tests.aliases_implicit.BadTypeAlias11" is not valid as a type [valid-type] aliases_implicit.py:116: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:117: error: Variable "aliases_implicit.BadTypeAlias12" is not valid as a type [valid-type] +aliases_implicit.py:117: error: Variable "tests.aliases_implicit.BadTypeAlias12" is not valid as a type [valid-type] aliases_implicit.py:117: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:118: error: Variable "aliases_implicit.BadTypeAlias13" is not valid as a type [valid-type] +aliases_implicit.py:118: error: Variable "tests.aliases_implicit.BadTypeAlias13" is not valid as a type [valid-type] aliases_implicit.py:118: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -aliases_implicit.py:119: error: Variable "aliases_implicit.BadTypeAlias14" is not valid as a type [valid-type] +aliases_implicit.py:119: error: Variable "tests.aliases_implicit.BadTypeAlias14" is not valid as a type [valid-type] aliases_implicit.py:119: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases aliases_implicit.py:133: error: "UnionType" not callable [operator] aliases_implicit.py:135: error: Bad number of arguments for type alias, expected 0, given 1 [misc] diff --git a/conformance/results/zuban/aliases_newtype.toml b/conformance/results/zuban/aliases_newtype.toml index 4bd918e54..840d3b002 100644 --- a/conformance/results/zuban/aliases_newtype.toml +++ b/conformance/results/zuban/aliases_newtype.toml @@ -10,7 +10,7 @@ aliases_newtype.py:26: error: Cannot subclass "NewType" [misc] aliases_newtype.py:35: error: String argument 1 "BadName" to NewType(...) does not match variable name "GoodName" [misc] aliases_newtype.py:41: error: Bad number of arguments for type alias, expected 0, given 1 [misc] aliases_newtype.py:47: error: Argument 2 to NewType(...) must be subclassable (got "int | str") [valid-newtype] -aliases_newtype.py:50: error: Type variable "aliases_newtype.T" is unbound [misc] +aliases_newtype.py:50: error: Type variable "tests.aliases_newtype.T" is unbound [misc] aliases_newtype.py:50: note: (Hint: Use "Generic[T]" or "Protocol[T]" base class to bind "T" inside a class) aliases_newtype.py:50: note: (Hint: Use "T" in function signature to bind "T" inside a function) aliases_newtype.py:52: error: NewType cannot be used with protocol classes [misc] diff --git a/conformance/results/zuban/aliases_type_statement.toml b/conformance/results/zuban/aliases_type_statement.toml index b82e24b75..1cfb553e1 100644 --- a/conformance/results/zuban/aliases_type_statement.toml +++ b/conformance/results/zuban/aliases_type_statement.toml @@ -17,7 +17,7 @@ aliases_type_statement.py:41: error: Invalid type alias: expression is not a val aliases_type_statement.py:42: error: Invalid type alias: expression is not a valid type [valid-type] aliases_type_statement.py:43: error: Invalid type alias: expression is not a valid type [valid-type] aliases_type_statement.py:44: error: Invalid type alias: expression is not a valid type [valid-type] -aliases_type_statement.py:45: error: Variable "aliases_type_statement.var1" is not valid as a type [valid-type] +aliases_type_statement.py:45: error: Variable "tests.aliases_type_statement.var1" is not valid as a type [valid-type] aliases_type_statement.py:45: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases aliases_type_statement.py:46: error: Invalid type alias: expression is not a valid type [valid-type] aliases_type_statement.py:47: error: Invalid type: try using Literal[1] instead? [valid-type] diff --git a/conformance/results/zuban/aliases_typealiastype.toml b/conformance/results/zuban/aliases_typealiastype.toml index 082a9f47b..5eb157015 100644 --- a/conformance/results/zuban/aliases_typealiastype.toml +++ b/conformance/results/zuban/aliases_typealiastype.toml @@ -9,8 +9,7 @@ aliases_typealiastype.py:44: error: All type parameters should be declared ("S" aliases_typealiastype.py:45: error: Tuple literal expected as the type_params argument to TypeAliasType [misc] aliases_typealiastype.py:46: error: Invalid recursive alias: a union item of itself [misc] aliases_typealiastype.py:47: error: Invalid recursive alias: a union item of itself [misc] -aliases_typealiastype.py:48: error: Variable "aliases_typealiastype.BadAlias7" is not valid as a type [valid-type] -aliases_typealiastype.py:48: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases +aliases_typealiastype.py:48: error: Invalid recursive alias: a union item of itself [misc] aliases_typealiastype.py:52: error: Invalid type alias: expression is not a valid type [valid-type] aliases_typealiastype.py:53: error: Bracketed expression "[...]" is not valid as a type [valid-type] aliases_typealiastype.py:53: note: Did you mean "List[...]"? @@ -21,7 +20,7 @@ aliases_typealiastype.py:56: error: Invalid type alias: expression is not a vali aliases_typealiastype.py:57: error: Invalid type alias: expression is not a valid type [valid-type] aliases_typealiastype.py:58: error: Invalid type alias: expression is not a valid type [valid-type] aliases_typealiastype.py:59: error: Invalid type alias: expression is not a valid type [valid-type] -aliases_typealiastype.py:60: error: Variable "aliases_typealiastype.var1" is not valid as a type [valid-type] +aliases_typealiastype.py:60: error: Variable "tests.aliases_typealiastype.var1" is not valid as a type [valid-type] aliases_typealiastype.py:60: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases aliases_typealiastype.py:61: error: Invalid type alias: expression is not a valid type [valid-type] aliases_typealiastype.py:62: error: Invalid type: try using Literal[1] instead? [valid-type] diff --git a/conformance/results/zuban/annotations_forward_refs.toml b/conformance/results/zuban/annotations_forward_refs.toml index 544569aad..9dce37fac 100644 --- a/conformance/results/zuban/annotations_forward_refs.toml +++ b/conformance/results/zuban/annotations_forward_refs.toml @@ -5,7 +5,7 @@ Incorrectly generates error for quoted type defined in class scope. conformance_automated = "Fail" errors_diff = """ Line 82: Unexpected errors ['annotations_forward_refs.py:82: error: Name "str" is not defined [name-defined]'] -Line 87: Unexpected errors ['annotations_forward_refs.py:87: error: Function "annotations_forward_refs.ClassD.int" is not valid as a type [valid-type]'] +Line 87: Unexpected errors ['annotations_forward_refs.py:87: error: Function "tests.annotations_forward_refs.ClassD.int" is not valid as a type [valid-type]'] Line 95: Unexpected errors ['annotations_forward_refs.py:95: error: Expression is of type "Any", not "str" [misc]'] Line 96: Unexpected errors ['annotations_forward_refs.py:96: error: Expression is of type "Any", not "int" [misc]'] """ @@ -22,7 +22,7 @@ annotations_forward_refs.py:45: error: Invalid type comment or annotation [vali annotations_forward_refs.py:46: error: Invalid type comment or annotation [valid-type] annotations_forward_refs.py:47: error: Invalid type comment or annotation [valid-type] annotations_forward_refs.py:48: error: Invalid type comment or annotation [valid-type] -annotations_forward_refs.py:49: error: Variable "annotations_forward_refs.var1" is not valid as a type [valid-type] +annotations_forward_refs.py:49: error: Variable "tests.annotations_forward_refs.var1" is not valid as a type [valid-type] annotations_forward_refs.py:49: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases annotations_forward_refs.py:50: error: Invalid type comment or annotation [valid-type] annotations_forward_refs.py:51: error: Invalid type: try using Literal[1] instead? [valid-type] @@ -33,9 +33,9 @@ annotations_forward_refs.py:55: error: Module "types" is not valid as a type [v annotations_forward_refs.py:55: note: Perhaps you meant to use a protocol matching the module structure? annotations_forward_refs.py:80: error: Name "ClassF" is not defined [name-defined] annotations_forward_refs.py:82: error: Name "str" is not defined [name-defined] -annotations_forward_refs.py:87: error: Function "annotations_forward_refs.ClassD.int" is not valid as a type [valid-type] +annotations_forward_refs.py:87: error: Function "tests.annotations_forward_refs.ClassD.int" is not valid as a type [valid-type] annotations_forward_refs.py:87: note: Perhaps you need "Callable[...]" or a callback protocol? -annotations_forward_refs.py:89: error: Function "annotations_forward_refs.ClassD.int" is not valid as a type [valid-type] +annotations_forward_refs.py:89: error: Function "tests.annotations_forward_refs.ClassD.int" is not valid as a type [valid-type] annotations_forward_refs.py:89: note: Perhaps you need "Callable[...]" or a callback protocol? annotations_forward_refs.py:95: error: Expression is of type "Any", not "str" [misc] annotations_forward_refs.py:96: error: Expression is of type "Any", not "int" [misc] diff --git a/conformance/results/zuban/annotations_typeexpr.toml b/conformance/results/zuban/annotations_typeexpr.toml index dbd9f1b55..67edaac2d 100644 --- a/conformance/results/zuban/annotations_typeexpr.toml +++ b/conformance/results/zuban/annotations_typeexpr.toml @@ -12,7 +12,7 @@ annotations_typeexpr.py:92: error: Invalid type comment or annotation [valid-ty annotations_typeexpr.py:93: error: Invalid type comment or annotation [valid-type] annotations_typeexpr.py:94: error: Invalid type comment or annotation [valid-type] annotations_typeexpr.py:95: error: Invalid type comment or annotation [valid-type] -annotations_typeexpr.py:96: error: Variable "annotations_typeexpr.var1" is not valid as a type [valid-type] +annotations_typeexpr.py:96: error: Variable "tests.annotations_typeexpr.var1" is not valid as a type [valid-type] annotations_typeexpr.py:96: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases annotations_typeexpr.py:97: error: Invalid type comment or annotation [valid-type] annotations_typeexpr.py:98: error: Invalid type: try using Literal[1] instead? [valid-type] diff --git a/conformance/results/zuban/constructors_callable.toml b/conformance/results/zuban/constructors_callable.toml index a59ffe662..09b2c88ee 100644 --- a/conformance/results/zuban/constructors_callable.toml +++ b/conformance/results/zuban/constructors_callable.toml @@ -2,12 +2,12 @@ conformance_automated = "Pass" errors_diff = """ """ output = """ -constructors_callable.py:36: note: Revealed type is "def (x: builtins.int) -> constructors_callable.Class1" +constructors_callable.py:36: note: Revealed type is "def (x: builtins.int) -> tests.constructors_callable.Class1" constructors_callable.py:38: error: Missing positional argument "x" in call [call-arg] constructors_callable.py:39: error: Unexpected keyword argument "y" [call-arg] -constructors_callable.py:49: note: Revealed type is "def () -> constructors_callable.Class2" +constructors_callable.py:49: note: Revealed type is "def () -> tests.constructors_callable.Class2" constructors_callable.py:51: error: Too many arguments [call-arg] -constructors_callable.py:64: note: Revealed type is "def (x: builtins.int) -> constructors_callable.Class3" +constructors_callable.py:64: note: Revealed type is "def (x: builtins.int) -> tests.constructors_callable.Class3" constructors_callable.py:66: error: Missing positional argument "x" in call [call-arg] constructors_callable.py:67: error: Unexpected keyword argument "y" [call-arg] constructors_callable.py:68: error: Too many arguments [call-arg] @@ -15,13 +15,13 @@ constructors_callable.py:79: note: Revealed type is "def (x: builtins.int) -> bu constructors_callable.py:81: error: Missing positional argument "x" in call [call-arg] constructors_callable.py:82: error: Unexpected keyword argument "y" [call-arg] constructors_callable.py:99: note: Revealed type is "def (*args: Any, **kwargs: Any) -> Never" -constructors_callable.py:127: note: Revealed type is "def () -> constructors_callable.Class6Proxy" +constructors_callable.py:127: note: Revealed type is "def () -> tests.constructors_callable.Class6Proxy" constructors_callable.py:129: error: Too many arguments [call-arg] constructors_callable.py:144: note: Revealed type is "def () -> Any" constructors_callable.py:146: error: Too many arguments [call-arg] -constructors_callable.py:164: note: Revealed type is "Overload(def (x: builtins.int) -> constructors_callable.Class7[builtins.int], def (x: builtins.str) -> constructors_callable.Class7[builtins.str])" -constructors_callable.py:184: note: Revealed type is "def [T] (x: builtins.list[T], y: builtins.list[T]) -> constructors_callable.Class8[T]" +constructors_callable.py:164: note: Revealed type is "Overload(def (x: builtins.int) -> tests.constructors_callable.Class7[builtins.int], def (x: builtins.str) -> tests.constructors_callable.Class7[builtins.str])" +constructors_callable.py:184: note: Revealed type is "def [T] (x: builtins.list[T], y: builtins.list[T]) -> tests.constructors_callable.Class8[T]" constructors_callable.py:186: error: List item 0 has incompatible type "str"; expected "int" [list-item] -constructors_callable.py:195: note: Revealed type is "def [T] (x: builtins.list[T], y: builtins.list[T]) -> constructors_callable.Class9" +constructors_callable.py:195: note: Revealed type is "def [T] (x: builtins.list[T], y: builtins.list[T]) -> tests.constructors_callable.Class9" constructors_callable.py:197: error: List item 0 has incompatible type "str"; expected "int" [list-item] """ diff --git a/conformance/results/zuban/dataclasses_slots.toml b/conformance/results/zuban/dataclasses_slots.toml index 6090819e6..3bd82f443 100644 --- a/conformance/results/zuban/dataclasses_slots.toml +++ b/conformance/results/zuban/dataclasses_slots.toml @@ -3,8 +3,8 @@ errors_diff = """ """ output = """ dataclasses_slots.py:11: error: "DC1" both defines "__slots__" and is used with "slots=True" [misc] -dataclasses_slots.py:25: error: Trying to assign name "y" that is not in "__slots__" of type "dataclasses_slots.DC2" [misc] -dataclasses_slots.py:38: error: Trying to assign name "y" that is not in "__slots__" of type "dataclasses_slots.DC3" [misc] +dataclasses_slots.py:25: error: Trying to assign name "y" that is not in "__slots__" of type "tests.dataclasses_slots.DC2" [misc] +dataclasses_slots.py:38: error: Trying to assign name "y" that is not in "__slots__" of type "tests.dataclasses_slots.DC3" [misc] dataclasses_slots.py:66: error: "type[DC6]" has no attribute "__slots__" [attr-defined] dataclasses_slots.py:69: error: "DC6" has no attribute "__slots__" [attr-defined] """ diff --git a/conformance/results/zuban/directives_deprecated.toml b/conformance/results/zuban/directives_deprecated.toml index 691c82a42..a980f030f 100644 --- a/conformance/results/zuban/directives_deprecated.toml +++ b/conformance/results/zuban/directives_deprecated.toml @@ -2,16 +2,16 @@ conformance_automated = "Pass" errors_diff = """ """ output = """ -directives_deprecated.py:18: error: class _directives_deprecated_library.Ham is deprecated: Use Spam instead [deprecated] -directives_deprecated.py:24: error: function _directives_deprecated_library.norwegian_blue is deprecated: It is pining for the fjords [deprecated] -directives_deprecated.py:25: error: function _directives_deprecated_library.norwegian_blue is deprecated: It is pining for the fjords [deprecated] -directives_deprecated.py:30: error: overload def (x: builtins.int) -> builtins.str of function _directives_deprecated_library.foo is deprecated: Only str will be allowed [deprecated] -directives_deprecated.py:41: error: function _directives_deprecated_library.Spam.__add__ is deprecated: There is enough spam in the world [deprecated] -directives_deprecated.py:42: error: function _directives_deprecated_library.Spam.__add__ is deprecated: There is enough spam in the world [deprecated] -directives_deprecated.py:44: error: function _directives_deprecated_library.Spam.greasy is deprecated: All spam will be equally greasy [deprecated] -directives_deprecated.py:47: error: function _directives_deprecated_library.Spam.shape is deprecated: Shapes are becoming immutable [deprecated] -directives_deprecated.py:48: error: function _directives_deprecated_library.Spam.shape is deprecated: Shapes are becoming immutable [deprecated] -directives_deprecated.py:58: error: function directives_deprecated.Invocable.__call__ is deprecated: Deprecated [deprecated] -directives_deprecated.py:69: error: function directives_deprecated.lorem is deprecated: Deprecated [deprecated] -directives_deprecated.py:98: error: function directives_deprecated.SupportsFoo1.foo is deprecated: Deprecated [deprecated] +directives_deprecated.py:18: error: class tests._directives_deprecated_library.Ham is deprecated: Use Spam instead [deprecated] +directives_deprecated.py:24: error: function tests._directives_deprecated_library.norwegian_blue is deprecated: It is pining for the fjords [deprecated] +directives_deprecated.py:25: error: function tests._directives_deprecated_library.norwegian_blue is deprecated: It is pining for the fjords [deprecated] +directives_deprecated.py:30: error: overload def (x: builtins.int) -> builtins.str of function tests._directives_deprecated_library.foo is deprecated: Only str will be allowed [deprecated] +directives_deprecated.py:41: error: function tests._directives_deprecated_library.Spam.__add__ is deprecated: There is enough spam in the world [deprecated] +directives_deprecated.py:42: error: function tests._directives_deprecated_library.Spam.__add__ is deprecated: There is enough spam in the world [deprecated] +directives_deprecated.py:44: error: function tests._directives_deprecated_library.Spam.greasy is deprecated: All spam will be equally greasy [deprecated] +directives_deprecated.py:47: error: function tests._directives_deprecated_library.Spam.shape is deprecated: Shapes are becoming immutable [deprecated] +directives_deprecated.py:48: error: function tests._directives_deprecated_library.Spam.shape is deprecated: Shapes are becoming immutable [deprecated] +directives_deprecated.py:58: error: function tests.directives_deprecated.Invocable.__call__ is deprecated: Deprecated [deprecated] +directives_deprecated.py:69: error: function tests.directives_deprecated.lorem is deprecated: Deprecated [deprecated] +directives_deprecated.py:98: error: function tests.directives_deprecated.SupportsFoo1.foo is deprecated: Deprecated [deprecated] """ diff --git a/conformance/results/zuban/directives_reveal_type.toml b/conformance/results/zuban/directives_reveal_type.toml index 753a0a2ac..76a0ed461 100644 --- a/conformance/results/zuban/directives_reveal_type.toml +++ b/conformance/results/zuban/directives_reveal_type.toml @@ -5,7 +5,7 @@ output = """ directives_reveal_type.py:14: note: Revealed type is "builtins.int | builtins.str" directives_reveal_type.py:15: note: Revealed type is "builtins.list[builtins.int]" directives_reveal_type.py:16: note: Revealed type is "Any" -directives_reveal_type.py:17: note: Revealed type is "directives_reveal_type.ForwardReference" +directives_reveal_type.py:17: note: Revealed type is "tests.directives_reveal_type.ForwardReference" directives_reveal_type.py:19: error: Too few arguments for "reveal_type" [call-arg] directives_reveal_type.py:20: error: Too many arguments for "reveal_type" [call-arg] """ diff --git a/conformance/results/zuban/generics_scoping.toml b/conformance/results/zuban/generics_scoping.toml index 54b38f2f7..000fd4f34 100644 --- a/conformance/results/zuban/generics_scoping.toml +++ b/conformance/results/zuban/generics_scoping.toml @@ -7,10 +7,10 @@ generics_scoping.py:19: error: Expression is of type "Literal['a']", not "str" generics_scoping.py:34: error: Argument 1 to "meth_2" of "MyClass" has incompatible type "str"; expected "int" [arg-type] generics_scoping.py:49: error: Expression is of type "Literal['abc']", not "str" [misc] generics_scoping.py:53: error: Expression is of type "Literal[b'abc']", not "bytes" [misc] -generics_scoping.py:61: error: Type variable "generics_scoping.S" is unbound [misc] +generics_scoping.py:61: error: Type variable "tests.generics_scoping.S" is unbound [misc] generics_scoping.py:61: note: (Hint: Use "Generic[S]" or "Protocol[S]" base class to bind "S" inside a class) generics_scoping.py:61: note: (Hint: Use "S" in function signature to bind "S" inside a function) -generics_scoping.py:65: error: Type variable "generics_scoping.S" is unbound [misc] +generics_scoping.py:65: error: Type variable "tests.generics_scoping.S" is unbound [misc] generics_scoping.py:65: note: (Hint: Use "Generic[S]" or "Protocol[S]" base class to bind "S" inside a class) generics_scoping.py:65: note: (Hint: Use "S" in function signature to bind "S" inside a function) generics_scoping.py:76: error: Free type variable expected in Generic[...] [misc] @@ -18,13 +18,13 @@ generics_scoping.py:86: error: Type variable "T" is bound by an outer class [mi generics_scoping.py:89: error: Type variable "T" is bound by an outer class [misc] generics_scoping.py:91: error: Type variable "T" is bound by an outer class [misc] generics_scoping.py:98: error: Can't use bound type variable "T" to define generic alias [misc] -generics_scoping.py:105: error: Type variable "generics_scoping.T" is unbound [misc] +generics_scoping.py:105: error: Type variable "tests.generics_scoping.T" is unbound [misc] generics_scoping.py:105: note: (Hint: Use "Generic[T]" or "Protocol[T]" base class to bind "T" inside a class) generics_scoping.py:105: note: (Hint: Use "T" in function signature to bind "T" inside a function) -generics_scoping.py:106: error: Type variable "generics_scoping.T" is unbound [misc] +generics_scoping.py:106: error: Type variable "tests.generics_scoping.T" is unbound [misc] generics_scoping.py:106: note: (Hint: Use "Generic[T]" or "Protocol[T]" base class to bind "T" inside a class) generics_scoping.py:106: note: (Hint: Use "T" in function signature to bind "T" inside a function) -generics_scoping.py:107: error: Type variable "generics_scoping.T" is unbound [misc] +generics_scoping.py:107: error: Type variable "tests.generics_scoping.T" is unbound [misc] generics_scoping.py:107: note: (Hint: Use "Generic[T]" or "Protocol[T]" base class to bind "T" inside a class) generics_scoping.py:107: note: (Hint: Use "T" in function signature to bind "T" inside a function) """ diff --git a/conformance/results/zuban/generics_syntax_declarations.toml b/conformance/results/zuban/generics_syntax_declarations.toml index f4cb79a84..6da51b54f 100644 --- a/conformance/results/zuban/generics_syntax_declarations.toml +++ b/conformance/results/zuban/generics_syntax_declarations.toml @@ -10,7 +10,7 @@ generics_syntax_declarations.py:48: error: Bracketed expression "[...]" is not v generics_syntax_declarations.py:48: note: Did you mean "List[...]"? generics_syntax_declarations.py:60: error: Type variable must have at least two constrained types [misc] generics_syntax_declarations.py:64: error: Type variable must have at least two constrained types [misc] -generics_syntax_declarations.py:71: error: Variable "generics_syntax_declarations.t1" is not valid as a type [valid-type] +generics_syntax_declarations.py:71: error: Variable "tests.generics_syntax_declarations.t1" is not valid as a type [valid-type] generics_syntax_declarations.py:71: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases generics_syntax_declarations.py:75: error: Invalid type: try using Literal[3] instead? [valid-type] generics_syntax_declarations.py:79: error: Name "S" is not defined [name-defined] diff --git a/conformance/results/zuban/generics_syntax_scoping.toml b/conformance/results/zuban/generics_syntax_scoping.toml index f2fdbd44b..a0444e813 100644 --- a/conformance/results/zuban/generics_syntax_scoping.toml +++ b/conformance/results/zuban/generics_syntax_scoping.toml @@ -2,13 +2,13 @@ conformance_automated = "Pass" errors_diff = """ """ output = """ -generics_syntax_scoping.py:14: error: Variable "generics_syntax_scoping.S" is not valid as a type [valid-type] +generics_syntax_scoping.py:14: error: Variable "tests.generics_syntax_scoping.S" is not valid as a type [valid-type] generics_syntax_scoping.py:14: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases -generics_syntax_scoping.py:18: error: Variable "generics_syntax_scoping.T" is not valid as a type [valid-type] +generics_syntax_scoping.py:18: error: Variable "tests.generics_syntax_scoping.T" is not valid as a type [valid-type] generics_syntax_scoping.py:18: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases generics_syntax_scoping.py:35: error: Name "T" is used before definition [used-before-def] generics_syntax_scoping.py:44: error: Name "T" is used before definition [used-before-def] -generics_syntax_scoping.py:44: error: Variable "generics_syntax_scoping.T" is not valid as a type [valid-type] +generics_syntax_scoping.py:44: error: Variable "tests.generics_syntax_scoping.T" is not valid as a type [valid-type] generics_syntax_scoping.py:44: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases generics_syntax_scoping.py:92: error: "T" already defined as a type parameter [misc] generics_syntax_scoping.py:95: error: "T" already defined as a type parameter [misc] diff --git a/conformance/results/zuban/generics_typevartuple_args.toml b/conformance/results/zuban/generics_typevartuple_args.toml index 4d7d961fb..29b6e9434 100644 --- a/conformance/results/zuban/generics_typevartuple_args.toml +++ b/conformance/results/zuban/generics_typevartuple_args.toml @@ -1,10 +1,5 @@ -conformant = "Partial" -notes = """ -Does not correctly solve TypeVarTuple with heterogeneous bounds. -""" -conformance_automated = "Fail" +conformance_automated = "Pass" errors_diff = """ -Line 76: Unexpected errors ['generics_typevartuple_args.py:76: error: Argument 2 to "func4" has incompatible type "tuple[Literal[\\'1\\']]"; expected "tuple[int]" [arg-type]'] """ output = """ generics_typevartuple_args.py:33: error: Argument 3 to "exec_le" has incompatible type "str"; expected "Env" [arg-type] @@ -15,6 +10,5 @@ generics_typevartuple_args.py:58: error: Too few arguments for "func2" [call-ar generics_typevartuple_args.py:59: error: Too few arguments for "func2" [call-arg] generics_typevartuple_args.py:59: error: Argument 1 to "func2" has incompatible type "str"; expected "int" [arg-type] generics_typevartuple_args.py:67: error: Too few arguments for "func3" [call-arg] -generics_typevartuple_args.py:75: error: Argument 2 to "func4" has incompatible type "tuple[Literal[1], int]"; expected "tuple[int]" [arg-type] -generics_typevartuple_args.py:76: error: Argument 2 to "func4" has incompatible type "tuple[Literal['1']]"; expected "tuple[int]" [arg-type] +generics_typevartuple_args.py:75: error: Argument 2 to "func4" has incompatible type "tuple[int, int]"; expected "tuple[int]" [arg-type] """ diff --git a/conformance/results/zuban/generics_typevartuple_basic.toml b/conformance/results/zuban/generics_typevartuple_basic.toml index d7f7cbb9f..ca0cca722 100644 --- a/conformance/results/zuban/generics_typevartuple_basic.toml +++ b/conformance/results/zuban/generics_typevartuple_basic.toml @@ -1,10 +1,5 @@ -conformant = "Partial" -notes = """ -Does not correctly solve TypeVarTuple with heterogeneous bounds. -""" -conformance_automated = "Fail" +conformance_automated = "Pass" errors_diff = """ -Line 90: Unexpected errors ['generics_typevartuple_basic.py:90: error: Argument 2 to "func2" has incompatible type "tuple[Literal[\\'0\\']]"; expected "tuple[int]" [arg-type]'] """ output = """ generics_typevartuple_basic.py:42: error: Argument 1 to "Array" has incompatible type "Height"; expected "tuple[Height, Width]" [arg-type] @@ -17,8 +12,7 @@ generics_typevartuple_basic.py:59: error: TypeVarTuple "Shape" is only valid wit generics_typevartuple_basic.py:65: error: Unexpected keyword argument "covariant" for "TypeVarTuple" [call-arg] generics_typevartuple_basic.py:66: error: Too many positional arguments for "TypeVarTuple" [call-arg] generics_typevartuple_basic.py:67: error: Unexpected keyword argument "bound" for "TypeVarTuple" [call-arg] -generics_typevartuple_basic.py:90: error: Argument 2 to "func2" has incompatible type "tuple[Literal['0']]"; expected "tuple[int]" [arg-type] -generics_typevartuple_basic.py:91: error: Argument 2 to "func2" has incompatible type "tuple[Literal[0]]"; expected "tuple[int, int]" [arg-type] +generics_typevartuple_basic.py:91: error: Argument 2 to "func2" has incompatible type "tuple[int]"; expected "tuple[int, int]" [arg-type] generics_typevartuple_basic.py:100: error: Argument 2 to "multiply" has incompatible type "Array[Width]"; expected "Array[Height]" [arg-type] generics_typevartuple_basic.py:101: error: Argument 2 to "multiply" has incompatible type "Array[Height, Width]"; expected "Array[Height]" [arg-type] generics_typevartuple_basic.py:107: error: Can only use one type var tuple in a class def [misc] diff --git a/conformance/results/zuban/generics_variance.toml b/conformance/results/zuban/generics_variance.toml index 02c8a1f9c..f104685a4 100644 --- a/conformance/results/zuban/generics_variance.toml +++ b/conformance/results/zuban/generics_variance.toml @@ -8,11 +8,11 @@ generics_variance.py:81: error: Variance of TypeVar "T_contra" incompatible with generics_variance.py:93: error: Variance of TypeVar "T_contra" incompatible with variance in parent type [type-var] generics_variance.py:105: error: Variance of TypeVar "T_co" incompatible with variance in parent type [type-var] generics_variance.py:113: error: Variance of TypeVar "T_co" incompatible with variance in parent type [type-var] -generics_variance.py:126: error: Variance of TypeVar "T_co" incompatible with variance in parent type [type-var] -generics_variance.py:132: error: Variance of TypeVar "T_contra" incompatible with variance in parent type [type-var] -generics_variance.py:142: error: Variance of TypeVar "T_co" incompatible with variance in parent type [type-var] +generics_variance.py:125: error: Variance of TypeVar "T_co" incompatible with variance in parent type [type-var] +generics_variance.py:131: error: Variance of TypeVar "T_contra" incompatible with variance in parent type [type-var] +generics_variance.py:141: error: Variance of TypeVar "T_co" incompatible with variance in parent type [type-var] generics_variance.py:163: error: Variance of TypeVar "T_contra" incompatible with variance in parent type [type-var] generics_variance.py:167: error: Variance of TypeVar "T_co" incompatible with variance in parent type [type-var] generics_variance.py:191: error: Variance of TypeVar "T_contra" incompatible with variance in parent type [type-var] -generics_variance.py:196: error: Variance of TypeVar "T_co" incompatible with variance in parent type [type-var] +generics_variance.py:195: error: Variance of TypeVar "T_co" incompatible with variance in parent type [type-var] """ diff --git a/conformance/results/zuban/literals_parameterizations.toml b/conformance/results/zuban/literals_parameterizations.toml index fd128510e..0a1ba71fa 100644 --- a/conformance/results/zuban/literals_parameterizations.toml +++ b/conformance/results/zuban/literals_parameterizations.toml @@ -11,7 +11,7 @@ literals_parameterizations.py:46: error: Invalid type: Literal[...] cannot conta literals_parameterizations.py:47: error: Invalid type: Literal[...] cannot contain arbitrary expressions [valid-type] literals_parameterizations.py:48: error: Parameter 1 of Literal[...] is invalid [valid-type] literals_parameterizations.py:49: error: Parameter 1 of Literal[...] is invalid [valid-type] -literals_parameterizations.py:50: error: Type variable "literals_parameterizations.T" is unbound [misc] +literals_parameterizations.py:50: error: Type variable "tests.literals_parameterizations.T" is unbound [misc] literals_parameterizations.py:50: note: (Hint: Use "Generic[T]" or "Protocol[T]" base class to bind "T" inside a class) literals_parameterizations.py:50: note: (Hint: Use "T" in function signature to bind "T" inside a function) literals_parameterizations.py:51: error: Parameter 1 of Literal[...] cannot be of type "float" [valid-type] diff --git a/conformance/results/zuban/protocols_modules.toml b/conformance/results/zuban/protocols_modules.toml index 204ef50fb..c478b180b 100644 --- a/conformance/results/zuban/protocols_modules.toml +++ b/conformance/results/zuban/protocols_modules.toml @@ -3,10 +3,10 @@ errors_diff = """ """ output = """ protocols_modules.py:26: error: Incompatible types in assignment (expression has type "ModuleType", variable has type "Options2") [assignment] -protocols_modules.py:26: note: Following member(s) of Module "_protocols_modules1" have conflicts: +protocols_modules.py:26: note: Following member(s) of Module "tests._protocols_modules1" have conflicts: protocols_modules.py:26: note: timeout: expected "str", got "int" protocols_modules.py:48: error: Incompatible types in assignment (expression has type "ModuleType", variable has type "Reporter2") [assignment] -protocols_modules.py:48: note: Following member(s) of Module "_protocols_modules2" have conflicts: +protocols_modules.py:48: note: Following member(s) of Module "tests._protocols_modules2" have conflicts: protocols_modules.py:48: note: Expected: protocols_modules.py:48: note: def on_error(x: int) -> int protocols_modules.py:48: note: Got: diff --git a/conformance/results/zuban/version.toml b/conformance/results/zuban/version.toml index fe45d003e..8bb03465d 100644 --- a/conformance/results/zuban/version.toml +++ b/conformance/results/zuban/version.toml @@ -1 +1 @@ -version = "zuban 0.6.2" +version = "zuban 0.7.0" diff --git a/conformance/uv.lock b/conformance/uv.lock index a06be9bb9..00ae0757d 100644 --- a/conformance/uv.lock +++ b/conformance/uv.lock @@ -25,7 +25,7 @@ wheels = [ [[package]] name = "mypy" -version = "1.19.1" +version = "1.20.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, @@ -33,15 +33,16 @@ dependencies = [ { name = "pathspec" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f5/db/4efed9504bc01309ab9c2da7e352cc223569f05478012b5d9ece38fd44d2/mypy-1.19.1.tar.gz", hash = "sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", size = 3582404, upload-time = "2025-12-15T05:03:48.42Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/5c/b0089fe7fef0a994ae5ee07029ced0526082c6cfaaa4c10d40a10e33b097/mypy-1.20.0.tar.gz", hash = "sha256:eb96c84efcc33f0b5e0e04beacf00129dd963b67226b01c00b9dfc8affb464c3", size = 3815028, upload-time = "2026-03-31T16:55:14.959Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/06/8a/19bfae96f6615aa8a0604915512e0289b1fad33d5909bf7244f02935d33a/mypy-1.19.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1", size = 13206053, upload-time = "2025-12-15T05:03:46.622Z" }, - { url = "https://files.pythonhosted.org/packages/a5/34/3e63879ab041602154ba2a9f99817bb0c85c4df19a23a1443c8986e4d565/mypy-1.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e", size = 12219134, upload-time = "2025-12-15T05:03:24.367Z" }, - { url = "https://files.pythonhosted.org/packages/89/cc/2db6f0e95366b630364e09845672dbee0cbf0bbe753a204b29a944967cd9/mypy-1.19.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2", size = 12731616, upload-time = "2025-12-15T05:02:44.725Z" }, - { url = "https://files.pythonhosted.org/packages/00/be/dd56c1fd4807bc1eba1cf18b2a850d0de7bacb55e158755eb79f77c41f8e/mypy-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8", size = 13620847, upload-time = "2025-12-15T05:03:39.633Z" }, - { url = "https://files.pythonhosted.org/packages/6d/42/332951aae42b79329f743bf1da088cd75d8d4d9acc18fbcbd84f26c1af4e/mypy-1.19.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a", size = 13834976, upload-time = "2025-12-15T05:03:08.786Z" }, - { url = "https://files.pythonhosted.org/packages/6f/63/e7493e5f90e1e085c562bb06e2eb32cae27c5057b9653348d38b47daaecc/mypy-1.19.1-cp312-cp312-win_amd64.whl", hash = "sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13", size = 10118104, upload-time = "2025-12-15T05:03:10.834Z" }, - { url = "https://files.pythonhosted.org/packages/8d/f4/4ce9a05ce5ded1de3ec1c1d96cf9f9504a04e54ce0ed55cfa38619a32b8d/mypy-1.19.1-py3-none-any.whl", hash = "sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", size = 2471239, upload-time = "2025-12-15T05:03:07.248Z" }, + { url = "https://files.pythonhosted.org/packages/be/dd/3afa29b58c2e57c79116ed55d700721c3c3b15955e2b6251dd165d377c0e/mypy-1.20.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:002b613ae19f4ac7d18b7e168ffe1cb9013b37c57f7411984abbd3b817b0a214", size = 14509525, upload-time = "2026-03-31T16:55:01.824Z" }, + { url = "https://files.pythonhosted.org/packages/54/eb/227b516ab8cad9f2a13c5e7a98d28cd6aa75e9c83e82776ae6c1c4c046c7/mypy-1.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9336b5e6712f4adaf5afc3203a99a40b379049104349d747eb3e5a3aa23ac2e", size = 13326469, upload-time = "2026-03-31T16:51:41.23Z" }, + { url = "https://files.pythonhosted.org/packages/57/d4/1ddb799860c1b5ac6117ec307b965f65deeb47044395ff01ab793248a591/mypy-1.20.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f13b3e41bce9d257eded794c0f12878af3129d80aacd8a3ee0dee51f3a978651", size = 13705953, upload-time = "2026-03-31T16:48:55.69Z" }, + { url = "https://files.pythonhosted.org/packages/c5/b7/54a720f565a87b893182a2a393370289ae7149e4715859e10e1c05e49154/mypy-1.20.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9804c3ad27f78e54e58b32e7cb532d128b43dbfb9f3f9f06262b821a0f6bd3f5", size = 14710363, upload-time = "2026-03-31T16:53:26.948Z" }, + { url = "https://files.pythonhosted.org/packages/b2/2a/74810274848d061f8a8ea4ac23aaad43bd3d8c1882457999c2e568341c57/mypy-1.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:697f102c5c1d526bdd761a69f17c6070f9892eebcb94b1a5963d679288c09e78", size = 14947005, upload-time = "2026-03-31T16:50:17.591Z" }, + { url = "https://files.pythonhosted.org/packages/77/91/21b8ba75f958bcda75690951ce6fa6b7138b03471618959529d74b8544e2/mypy-1.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ecd63f75fdd30327e4ad8b5704bd6d91fc6c1b2e029f8ee14705e1207212489", size = 10880616, upload-time = "2026-03-31T16:52:19.986Z" }, + { url = "https://files.pythonhosted.org/packages/8a/15/3d8198ef97c1ca03aea010cce4f1d4f3bc5d9849e8c0140111ca2ead9fdd/mypy-1.20.0-cp312-cp312-win_arm64.whl", hash = "sha256:f194db59657c58593a3c47c6dfd7bad4ef4ac12dbc94d01b3a95521f78177e33", size = 9813091, upload-time = "2026-03-31T16:53:44.385Z" }, + { url = "https://files.pythonhosted.org/packages/21/66/4d734961ce167f0fd8380769b3b7c06dbdd6ff54c2190f3f2ecd22528158/mypy-1.20.0-py3-none-any.whl", hash = "sha256:a6e0641147cbfa7e4e94efdb95c2dab1aff8cfc159ded13e07f308ddccc8c48e", size = 2636365, upload-time = "2026-03-31T16:51:44.911Z" }, ] [[package]] @@ -73,18 +74,19 @@ wheels = [ [[package]] name = "pyrefly" -version = "0.58.0" +version = "0.60.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/eb/bb/5611669a79967250e0654c0cffb7b0bb892b4263d5dec9b4345917edd9cd/pyrefly-0.58.0.tar.gz", hash = "sha256:4512b89cd8db95e8994537895ff41ad60e6211643442f8e33ed93bb59f88a256", size = 5357858, upload-time = "2026-03-25T01:21:01.8Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c6/c7/28d14b64888e2d03815627ebff8d57a9f08389c4bbebfe70ae1ed98a1267/pyrefly-0.60.0.tar.gz", hash = "sha256:2499f5b6ff5342e86dfe1cd94bcce133519bbbc93b7ad5636195fea4f0fa3b81", size = 5500389, upload-time = "2026-04-06T19:57:30.643Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/fb/499e8efc0c3bc4e8f0e689922e616a8d406ff3297962c94b8053701b727f/pyrefly-0.58.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6521e3924d98c2fe118109de625c075d970f9d4a9682f11afa4f7c6b5f11ca1f", size = 12765022, upload-time = "2026-03-25T01:20:41.397Z" }, - { url = "https://files.pythonhosted.org/packages/b6/7f/25f329adfb191e78c22524858cce7d0e06d3961d44fe2ed5c302d3096dc2/pyrefly-0.58.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:bd52dd8f330e08f3829791b914f170769f97e8a0e377abf554710decbf799f20", size = 12276729, upload-time = "2026-03-25T01:20:43.815Z" }, - { url = "https://files.pythonhosted.org/packages/ac/ca/4982e8e3a177ed30e7ec23f51a429c2319653dcebbe20bac55ef3f275f23/pyrefly-0.58.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2334bea7d7b43a4d9061cce8e48ee5da2de185511637ed691dca5d649633f514", size = 35369879, upload-time = "2026-03-25T01:20:46.48Z" }, - { url = "https://files.pythonhosted.org/packages/7f/56/02afb8f6584765d1fed08a81f0415504345229ff452384143864a8ed8062/pyrefly-0.58.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb7bf956beb01f2664a1b20ca7303dc617bc454457b869237945edd5a52fc39b", size = 38060979, upload-time = "2026-03-25T01:20:49.62Z" }, - { url = "https://files.pythonhosted.org/packages/ca/ec/78ae846cba36a244db20d157948e6dd238713f63b812b701754e22fab4d5/pyrefly-0.58.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce58ec7d4a5bc4fdb4a8d90329259c15e221e840ce1da946c698c4954aa4098b", size = 40753678, upload-time = "2026-03-25T01:20:52.718Z" }, - { url = "https://files.pythonhosted.org/packages/98/ec/6d1461960bf2efbf7af679846edd29ff1fce9e20b4a653cb99338e1e847e/pyrefly-0.58.0-py3-none-win32.whl", hash = "sha256:43fa3b1abc0b55503c6238d09f333ce4f7a341cb9d5113b9d5e3089b8e0901b6", size = 11793278, upload-time = "2026-03-25T01:20:55.367Z" }, - { url = "https://files.pythonhosted.org/packages/3d/23/70c20ea234409e4ea3b4177ec6cdf221532fd34bfec012961972e2ab511f/pyrefly-0.58.0-py3-none-win_amd64.whl", hash = "sha256:5dbd270d6841ec7b772ee41dd2d83f376ad24b279b747ddb8c11550ad3648dde", size = 12626215, upload-time = "2026-03-25T01:20:57.329Z" }, - { url = "https://files.pythonhosted.org/packages/c3/20/fed053053785585cdd3a393aa3ab8e2e1f9c5078c16c9b659bb4b87ff22d/pyrefly-0.58.0-py3-none-win_arm64.whl", hash = "sha256:86425dfb43607027960ffed13722504992e83b45becbb83853d8f961c715dac2", size = 12124266, upload-time = "2026-03-25T01:20:59.641Z" }, + { url = "https://files.pythonhosted.org/packages/31/99/6c9984a09220e5eb7dd5c869b7a32d25c3d06b5e8854c6eb679db1145c3e/pyrefly-0.60.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:bf1691af0fee69d0c99c3c6e9d26ab6acd3c8afef96416f9ba2e74934833b7b5", size = 12921262, upload-time = "2026-04-06T19:57:00.745Z" }, + { url = "https://files.pythonhosted.org/packages/05/b3/6216aa3c00c88e59a27eb4149851b5affe86eeea6129f4224034a32dddb0/pyrefly-0.60.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:3e71b70c9b95545cf3b479bc55d1381b531de7b2380eb64411088a1e56b634cb", size = 12424413, upload-time = "2026-04-06T19:57:03.417Z" }, + { url = "https://files.pythonhosted.org/packages/9b/87/eb8dd73abd92a93952ac27a605e463c432fb250fb23186574038c7035594/pyrefly-0.60.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:680ee5f8f98230ea145652d7344708f5375786209c5bf03d8b911fdb0d0d4195", size = 35940884, upload-time = "2026-04-06T19:57:06.909Z" }, + { url = "https://files.pythonhosted.org/packages/0d/34/dc6aeb67b840c745fcee6db358295d554abe6ab555a7eaaf44624bd80bf1/pyrefly-0.60.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d0b20dbbe4aff15b959e8d825b7521a144c4122c11e57022e83b36568c54470", size = 38677220, upload-time = "2026-04-06T19:57:11.235Z" }, + { url = "https://files.pythonhosted.org/packages/66/6b/c863fcf7ef592b7d1db91502acf0d1113be8bed7a2a7143fc6f0dd90616f/pyrefly-0.60.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2911563c8e6b2eaefff68885c94727965469a35375a409235a7a4d2b7157dc15", size = 36907431, upload-time = "2026-04-06T19:57:15.074Z" }, + { url = "https://files.pythonhosted.org/packages/8e/a2/25ea095ab2ecca8e62884669b11a79f14299db93071685b73a97efbaf4f3/pyrefly-0.60.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0a631d9d04705e303fe156f2e62551611bc7ef8066c34708ceebcfb3088bd55", size = 41447898, upload-time = "2026-04-06T19:57:19.382Z" }, + { url = "https://files.pythonhosted.org/packages/8e/2c/097bdc6e8d40676b28eb03710a4577bc3c7b803cd24693ac02bf15de3d67/pyrefly-0.60.0-py3-none-win32.whl", hash = "sha256:a08d69298da5626cf502d3debbb6944fd13d2f405ea6625363751f1ff570d366", size = 11913434, upload-time = "2026-04-06T19:57:22.887Z" }, + { url = "https://files.pythonhosted.org/packages/0a/d4/8d27fe310e830c8d11ab73db38b93f9fd2e218744b6efb1204401c9a74d5/pyrefly-0.60.0-py3-none-win_amd64.whl", hash = "sha256:56cf30654e708ae1dd635ffefcba4fa4b349dd7004a6ccc5c41e3a9bb944320c", size = 12745033, upload-time = "2026-04-06T19:57:25.517Z" }, + { url = "https://files.pythonhosted.org/packages/1f/ad/8eea1f8fb8209f91f6dbfe48000c9d05fd0cdb1b5b3157283c9b1dada55d/pyrefly-0.60.0-py3-none-win_arm64.whl", hash = "sha256:b6d27fba970f4777063c0227c54167d83bece1804ea34f69e7118e409ba038d2", size = 12246390, upload-time = "2026-04-06T19:57:28.141Z" }, ] [[package]] @@ -187,19 +189,19 @@ wheels = [ [[package]] name = "zuban" -version = "0.6.2" +version = "0.7.0" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/10/29/2d9f68f875155dfc58cb2542bad9bce60c680bf77b883a17cefd2c7b1399/zuban-0.6.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:392a24f4542b36e06b6ea8ff8a66b9bcf073fac380f6fedf5ead6d239a089b1b", size = 11274171, upload-time = "2026-03-16T23:11:13.516Z" }, - { url = "https://files.pythonhosted.org/packages/0f/83/77cf8a9568e21653c79ca6acbd35575ef3bc82251d1f604bb4c32bea98df/zuban-0.6.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5637981d19c503325bc2fd24b92af218733ee618de2f5217fa2523ca918b3a88", size = 10985794, upload-time = "2026-03-16T23:11:17.828Z" }, - { url = "https://files.pythonhosted.org/packages/23/22/2f7579439acbea7a28d8bbeb361225ddb9502406a892da9a94e73fadd522/zuban-0.6.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8097a716499ff7b3ac927b8e4c5425b9cfff5cd0b4e644a03e24d1a7c625d048", size = 28440118, upload-time = "2026-03-16T23:11:21.496Z" }, - { url = "https://files.pythonhosted.org/packages/03/1f/e714bbbf1783b76687a39c1ed7764b96c395221c103be91c0b63a4e249da/zuban-0.6.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ecf4b0c0e682f76f6403d68457d9085cc01dbbc56d402d925d931e82b36d9b5f", size = 28715022, upload-time = "2026-03-16T23:11:25.409Z" }, - { url = "https://files.pythonhosted.org/packages/24/b0/cd98c1c2797353a9fd8d10393ba018255e18a23ba47f505a538c32ea923c/zuban-0.6.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b1488ed63733d813d9be81b0c2bc888a329b31c4a03cb2cf462c7f0db052fef", size = 29943854, upload-time = "2026-03-16T23:11:29.391Z" }, - { url = "https://files.pythonhosted.org/packages/70/ee/d1ddcf7e7ea098eb33cc1d5b6b38a2688375f27207bdc80929a3abb8251e/zuban-0.6.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5b48be20d805b41ac224feeabd1b421a53e55b6cc10f2f3011139c1f625c583", size = 30939082, upload-time = "2026-03-16T23:11:34.003Z" }, - { url = "https://files.pythonhosted.org/packages/fb/45/c477ee9e281a334cfe7cf0375e1cf5e0433e80ade4cc7165ff9a9b756256/zuban-0.6.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:14d30ece874c9ca5b99ef57064b778edc834404e9d350af0c54eaf36d7eb6396", size = 28712077, upload-time = "2026-03-16T23:11:37.711Z" }, - { url = "https://files.pythonhosted.org/packages/ab/df/a962d8aacaf177356bfd698418d10a12fddd8d1c300e5cbd994ff62f80c2/zuban-0.6.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:3c144cd9436d39a3bebe50302c2eb600be403d22a85ae3ef41f061768e96d17e", size = 29336825, upload-time = "2026-03-16T23:11:41.965Z" }, - { url = "https://files.pythonhosted.org/packages/bd/35/09450daba51442632b51b70ef95a94356482fcfdd0127e70ed0f45be2a83/zuban-0.6.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ff52b183e752646baea76c0fb1e06e247c47e437d0d37f1386e07504dc2e4c29", size = 30047009, upload-time = "2026-03-16T23:11:46.796Z" }, - { url = "https://files.pythonhosted.org/packages/a4/73/796d8e3789dadc84020a7a67d65cf13facca9807d40852adae8041032f41/zuban-0.6.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0e265fb4c38efc78e4ed79dc1b9b7adb034d70fa51f963c9ac609af1fbe2f855", size = 29316703, upload-time = "2026-03-16T23:11:50.81Z" }, - { url = "https://files.pythonhosted.org/packages/ea/2a/508617bda8277472cf403ecb73ae3b9227820dc2ff2a3a023eaed8512d5b/zuban-0.6.2-py3-none-win32.whl", hash = "sha256:4a129511f9f6080ba7d4153f111b5e6c2214a3eef945730ce466658903c324b8", size = 9742656, upload-time = "2026-03-16T23:11:54.231Z" }, - { url = "https://files.pythonhosted.org/packages/d0/25/dae184c1b6d7fbdc43e906254fef2577d23899669b58de865fcb0fe150f5/zuban-0.6.2-py3-none-win_amd64.whl", hash = "sha256:7db193c8b1456977ca2dfa2291c93a376e17f465a69018a06d0ecc8655464fff", size = 10464125, upload-time = "2026-03-16T23:11:57.267Z" }, + { url = "https://files.pythonhosted.org/packages/6b/5e/1b6c0b5646f9417233f11555da980cd31360a733fbb0df3e03f8e15f8c9e/zuban-0.7.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:743bfa4570dae9e70ef3a4a1804536dae7e227baee6710cd8d186d912a457ce5", size = 11227277, upload-time = "2026-04-05T23:54:08.775Z" }, + { url = "https://files.pythonhosted.org/packages/02/50/1517bb6fc5f74043f17ec1b62e4c206eea5899e06aacd23eff0f7ec187e1/zuban-0.7.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:13c73dfae2b7541cca73d00e536f56c05a8902418417cb525561d95f9138835c", size = 10936919, upload-time = "2026-04-05T23:54:11.781Z" }, + { url = "https://files.pythonhosted.org/packages/0c/f3/b8e831c12353cd38f6d600e4384ed8325b3dae4d6202f7b6f4d10ac2cf07/zuban-0.7.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a13e017e58ec8819e1b180fe1432d42bd0d78b551de6885685ffcfdd42d81d64", size = 27859671, upload-time = "2026-04-05T23:54:14.863Z" }, + { url = "https://files.pythonhosted.org/packages/81/55/48b7a732b606fe8eecf8fb7940b37ff97c0d25938e0ae80cdd9c90c2af35/zuban-0.7.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3521f9403ce7e6a21203ccbc57e53f58928265010df048bc4ac41be63bf3747a", size = 28013069, upload-time = "2026-04-05T23:54:18.524Z" }, + { url = "https://files.pythonhosted.org/packages/73/6d/526eb4d587f5471f11d7cfffcf9bae620d48c496883472dddbff4d82da53/zuban-0.7.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d207872861447fb4a7f246341b4499610d2b4008fd10445ab33e9a8831ede36b", size = 29282006, upload-time = "2026-04-05T23:54:21.785Z" }, + { url = "https://files.pythonhosted.org/packages/16/fa/4b65cd8ba5fde5de98228119e874b0ad4f9b002619c5b0d35306fe024e85/zuban-0.7.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc664e4036351aa0239876c4049a4b4316a9958c36a115cce1e3a9a3b5b3fca7", size = 30261031, upload-time = "2026-04-05T23:54:25.965Z" }, + { url = "https://files.pythonhosted.org/packages/8c/07/bf6f751c429f1ae141058169260e11d648108e41cb313a2bad5ce3e97635/zuban-0.7.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:16f9c4e06e6693e61767bcb38957748f316af7351dd85f926c6ed92424ae67ae", size = 28011942, upload-time = "2026-04-05T23:54:29.405Z" }, + { url = "https://files.pythonhosted.org/packages/0a/22/e9f8c6d3939e4ff2b3a8e720c3d8e5464d6a177612421381169b6a6a8c5a/zuban-0.7.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7c483afa9c6f097b761a7141b5a21c675cac1634dd9746cb52020c34334d207c", size = 28431793, upload-time = "2026-04-05T23:54:33.32Z" }, + { url = "https://files.pythonhosted.org/packages/92/d0/abc21f67b591130a4d9dca7f8314364916739f21a7be89ea5b0580ec7aa3/zuban-0.7.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c0b58dc6c64ce954bb991b121b3ccdd8c63e2c43ba577457223a7418e259532d", size = 29183590, upload-time = "2026-04-05T23:54:36.732Z" }, + { url = "https://files.pythonhosted.org/packages/a0/44/476913fa1294cc16d202766ad6f09d017d7da33a2bade21c6045b1ad846d/zuban-0.7.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:6148578b75fbc149ae5844e8b9acc54fa7e60fdd3bb5f75dd5b588754a38d4df", size = 28583142, upload-time = "2026-04-05T23:54:40.564Z" }, + { url = "https://files.pythonhosted.org/packages/4b/25/fe6b17934a1e8ec9bceafdc140c7a583bd6c3fbf2b77451516805b2d5dad/zuban-0.7.0-py3-none-win32.whl", hash = "sha256:9cde2f8aaf9fc7d1afbe78ac66afc34f99fc28aedc201897b6fd4336c4c96ec2", size = 9786129, upload-time = "2026-04-05T23:54:43.907Z" }, + { url = "https://files.pythonhosted.org/packages/59/24/5efbdd25be1763018dc39133a01ee89fb2d5c0239b278a984dd217ea8d63/zuban-0.7.0-py3-none-win_amd64.whl", hash = "sha256:8120092828389ee6cb328c513f3219971656837bed9c6837afd81076b31b7d98", size = 10555603, upload-time = "2026-04-05T23:54:46.677Z" }, ]||||||||||||||