mirror of https://github.com/astral-sh/ruff
[ty] LSP Benchmarks (#21625)
This commit is contained in:
parent
c2773b4c6f
commit
2e229aa8cb
|
|
@ -12,6 +12,56 @@
|
|||
|
||||
Requires hyperfine 1.20 or newer.
|
||||
|
||||
## Benchmarks
|
||||
|
||||
### Cold check time
|
||||
|
||||
Run with:
|
||||
|
||||
```shell
|
||||
uv run --python 3.14 benchmark
|
||||
```
|
||||
|
||||
Measures how long it takes to type check a project without a pre-existing cache.
|
||||
|
||||
You can run the benchmark with `--single-threaded` to measure the check time when using a single thread only.
|
||||
|
||||
### Warm check time
|
||||
|
||||
Run with:
|
||||
|
||||
```shell
|
||||
uv run --python 3.14 benchmark --warm
|
||||
```
|
||||
|
||||
Measures how long it takes to recheck a project if there were no changes.
|
||||
|
||||
> **Note**: Of the benchmarked type checkers, only mypy supports caching.
|
||||
|
||||
### LSP: Time to first diagnostic
|
||||
|
||||
Measures how long it takes for a newly started LSP to return the diagnostics for the files open in the editor.
|
||||
|
||||
Run with:
|
||||
|
||||
```bash
|
||||
uv run --python 3.14 pytest src/benchmark/test_lsp_diagnostics.py::test_fetch_diagnostics
|
||||
```
|
||||
|
||||
**Note**: Use `-v -s` to see the set of diagnostics returned by each type checker.
|
||||
|
||||
### LSP: Re-check time
|
||||
|
||||
Measure how long it takes to recheck all open files after making a single change in a file.
|
||||
|
||||
Run with:
|
||||
|
||||
```bash
|
||||
uv run --python 3.14 pytest src/benchmark/test_lsp_diagnostics.py::test_incremental_edit
|
||||
```
|
||||
|
||||
> **Note**: This benchmark uses [pull diagnostics](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_pullDiagnostics) for type checkers that support this operation (ty), and falls back to [publish diagnostics](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_publishDiagnostics) otherwise (Pyright, Pyrefly).
|
||||
|
||||
## Known limitations
|
||||
|
||||
The tested type checkers implement Python's type system to varying degrees and
|
||||
|
|
|
|||
|
|
@ -2,14 +2,18 @@
|
|||
name = "ty_benchmark"
|
||||
version = "0.0.1"
|
||||
description = "Package for running end-to-end ty benchmarks"
|
||||
requires-python = ">=3.12"
|
||||
requires-python = ">=3.14"
|
||||
dependencies = [
|
||||
# mypy is missing here because we need to install it into the project's virtual environment
|
||||
# for plugins to work. See `Venv.install`.
|
||||
# Pyright is missing because we install it with `npm` to avoid measuring the overhead
|
||||
# of the Python wrapper script (that lazily installs Pyright).
|
||||
"mslex>=1.3.0",
|
||||
"pyrefly>=0.41.3",
|
||||
"pyrefly>=0.43.1",
|
||||
"pytest-benchmark>=4.0.0",
|
||||
"pytest>=8.0.0",
|
||||
"pygls>=2.0.0",
|
||||
"lsprotocol>=2025.0.0",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
|
|
|
|||
|
|
@ -18,10 +18,9 @@ src/black/linegen.py:1757:25: warning[possibly-missing-attribute] Attribute `val
|
|||
src/black/linegen.py:1795:13: error[invalid-assignment] Object of type `Literal[""]` is not assignable to attribute `value` on type `Node | Leaf`
|
||||
src/black/linegen.py:1796:13: error[invalid-assignment] Object of type `Literal[""]` is not assignable to attribute `value` on type `Node | Leaf`
|
||||
src/black/nodes.py:746:32: warning[possibly-missing-attribute] Attribute `value` may be missing on object of type `Leaf | Node`
|
||||
src/black/rusty.py:28:23: error[invalid-argument-type] Argument to class `Err` is incorrect: Expected `Exception`, found `typing.TypeVar`
|
||||
src/black/rusty.py:28:27: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `Exception` of type variable `E@Err`
|
||||
src/blib2to3/pgen2/conv.py:35:6: error[unresolved-import] Cannot resolve imported module `pgen2`
|
||||
src/blib2to3/pgen2/conv.py:77:34: warning[possibly-missing-attribute] Attribute `groups` may be missing on object of type `Match[str] | None`
|
||||
src/blib2to3/pgen2/grammar.py:151:16: error[invalid-return-type] Return type does not match returned value: expected `_P@copy`, found `Grammar`
|
||||
src/blib2to3/pgen2/parse.py:367:13: warning[possibly-missing-attribute] Attribute `append` may be missing on object of type `list[Node | Leaf] | None`
|
||||
src/blib2to3/pytree.py:149:13: error[unresolved-attribute] Unresolved attribute `parent` on type `object`.
|
||||
Found 26 diagnostics
|
||||
Found 25 diagnostics
|
||||
|
|
|
|||
|
|
@ -6,9 +6,6 @@ ERROR discord/abc.py:1031:72-81: Argument `int` is not assignable to parameter `
|
|||
ERROR discord/abc.py:1052:64-79: Argument `int` is not assignable to parameter `channel_type` with type `Literal[0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 15, 16]` in function `discord.http.HTTPClient.create_channel` [bad-argument-type]
|
||||
ERROR discord/abc.py:1224:25-37: Object of class `NoneType` has no attribute `id` [missing-attribute]
|
||||
ERROR discord/abc.py:1357:25-67: Argument `int | None` is not assignable to parameter `target_type` with type `Literal[1, 2] | None` in function `discord.http.HTTPClient.create_invite` [bad-argument-type]
|
||||
ERROR discord/abc.py:1808:30-32: Invalid key for TypedDict `ChannelPins`, got `Literal[-1]` [bad-typed-dict-key]
|
||||
ERROR discord/abc.py:1815:33-40: No matching overload found for function `reversed.__new__` called with arguments: (type[reversed[_T]], list[TypedDict[MessagePin]] | TypedDict[ChannelPins]) [no-matching-overload]
|
||||
ERROR discord/abc.py:1818:39-44: Argument `list[TypedDict[MessagePin]] | reversed[Unknown] | TypedDict[ChannelPins]` is not assignable to parameter `iterable` with type `Iterable[TypedDict[MessagePin]]` in function `enumerate.__new__` [bad-argument-type]
|
||||
ERROR discord/abc.py:1821:23-30: Type of yielded value `Message` is not assignable to declared return type `PinnedMessage` [invalid-yield]
|
||||
ERROR discord/abc.py:2091:51-62: Default `type[VoiceClient]` is not assignable to parameter `cls` with type `(Client, Connectable) -> T` [bad-function-definition]
|
||||
ERROR discord/activity.py:286:9-16: Class member `Activity.to_dict` overrides parent class `BaseActivity` in an inconsistent manner [bad-override]
|
||||
|
|
@ -196,7 +193,6 @@ ERROR discord/ext/commands/converter.py:402:47-54: Argument `(CategoryChannel &
|
|||
ERROR discord/ext/commands/converter.py:1119:9-26: Class member `Greedy.__class_getitem__` overrides parent class `list` in an inconsistent manner [bad-override]
|
||||
ERROR discord/ext/commands/converter.py:1128:31-35: Expected a type form, got instance of `tuple[()] | Any` [not-a-type]
|
||||
ERROR discord/ext/commands/converter.py:1280:52-59: Expected class object, got `type[Generic]` [invalid-argument]
|
||||
ERROR discord/ext/commands/converter.py:1326:39-41: Cannot instantiate `Converter` because it is a protocol [bad-instantiation]
|
||||
ERROR discord/ext/commands/cooldowns.py:171:9-22: Class member `DynamicCooldownMapping.create_bucket` overrides parent class `CooldownMapping` in an inconsistent manner [bad-override]
|
||||
ERROR discord/ext/commands/core.py:462:22-46: Object of class `FunctionType` has no attribute `__commands_checks__` [missing-attribute]
|
||||
ERROR discord/ext/commands/core.py:470:24-50: Object of class `FunctionType` has no attribute `__commands_cooldown__` [missing-attribute]
|
||||
|
|
@ -271,7 +267,6 @@ ERROR discord/ext/commands/hybrid.py:61:9-20: Class member `_HybridCommandDecora
|
|||
ERROR discord/ext/commands/hybrid.py:69:9-20: Class member `_HybridGroupKwargs.description` overrides parent class `_HybridCommandDecoratorKwargs` in an inconsistent manner [bad-override]
|
||||
ERROR discord/ext/commands/hybrid.py:73:9-20: Class member `_HybridGroupDecoratorKwargs.description` overrides parent class `_HybridGroupKwargs` in an inconsistent manner [bad-override]
|
||||
ERROR discord/ext/commands/hybrid.py:113:9-18: Class member `_CallableDefault.__class__` overrides parent class `object` in an inconsistent manner [bad-override]
|
||||
ERROR discord/ext/commands/hybrid.py:156:43-45: Cannot instantiate `Converter` because it is a protocol [bad-instantiation]
|
||||
ERROR discord/ext/commands/hybrid.py:232:13-45: Object of class `FunctionType` has no attribute `__hybrid_command_flag__` [missing-attribute]
|
||||
ERROR discord/ext/commands/hybrid.py:273:63-100: Expected a type form, got instance of `ConverterTransformer` [not-a-type]
|
||||
ERROR discord/ext/commands/hybrid.py:328:9-39: Object of class `FunctionType` has no attribute `__signature__` [missing-attribute]
|
||||
|
|
@ -313,7 +308,6 @@ ERROR discord/flags.py:1784:9-20: Class member `ArrayFlags._from_value` override
|
|||
ERROR discord/flags.py:1881:9-17: Class member `AutoModPresets.to_array` overrides parent class `ArrayFlags` in an inconsistent manner [bad-override]
|
||||
ERROR discord/gateway.py:137:48-57: Multiple values for argument `name` in function `threading.Thread.__init__` [bad-keyword-argument]
|
||||
ERROR discord/gateway.py:218:9-11: Class member `VoiceKeepAliveHandler.ws` overrides parent class `KeepAliveHandler` in an inconsistent manner [bad-override]
|
||||
ERROR discord/gateway.py:336:92-94: Cannot instantiate `_DecompressionContext` because it is a protocol [bad-instantiation]
|
||||
ERROR discord/gateway.py:466:13-34: Cannot set item in `int` [unsupported-operation]
|
||||
ERROR discord/gateway.py:466:37-70: Cannot set item in `dict[str, bool | dict[str, str] | int | str | None]` [unsupported-operation]
|
||||
ERROR discord/gateway.py:470:13-37: Cannot set item in `int` [unsupported-operation]
|
||||
|
|
@ -450,8 +444,6 @@ ERROR discord/player.py:233:92-100: Object of class `NoneType` has no attribute
|
|||
ERROR discord/player.py:233:102-117: Object of class `NoneType` has no attribute `returncode` [missing-attribute]
|
||||
ERROR discord/player.py:331:21-44: Argument `BufferedIOBase | str` is not assignable to parameter `object` with type `str` in function `list.append` [bad-argument-type]
|
||||
ERROR discord/player.py:443:21-44: Argument `BufferedIOBase | str` is not assignable to parameter `object` with type `str` in function `list.append` [bad-argument-type]
|
||||
ERROR discord/player.py:591:63-100: Argument `() -> tuple[str | None, int | None] | Unknown` is not assignable to parameter `func` with type `(**tuple[*@_]) -> @_` in function `asyncio.events.AbstractEventLoop.run_in_executor` [bad-argument-type]
|
||||
ERROR discord/player.py:601:67-103: Argument `() -> tuple[str | None, int | None]` is not assignable to parameter `func` with type `(**tuple[*@_]) -> @_` in function `asyncio.events.AbstractEventLoop.run_in_executor` [bad-argument-type]
|
||||
ERROR discord/player.py:768:24-75: No matching overload found for function `max` called with arguments: (Literal[0], float) [no-matching-overload]
|
||||
ERROR discord/poll.py:480:28-50: `int` is not assignable to TypedDict key `layout_type` with type `Literal[1]` [bad-typed-dict-key]
|
||||
ERROR discord/raw_models.py:247:73-102: Type `object` is not iterable [not-iterable]
|
||||
|
|
@ -594,6 +586,8 @@ ERROR discord/ui/text_display.py:72:26-33: Cannot set item in `dict[str, int | s
|
|||
ERROR discord/ui/text_display.py:87:9-23: Class member `TextDisplay.from_component` overrides parent class `Item` in an inconsistent manner [bad-override]
|
||||
ERROR discord/ui/text_input.py:148:14-17: Class member `TextInput.row` overrides parent class `Item` in an inconsistent manner [bad-override]
|
||||
ERROR discord/ui/text_input.py:148:20-23: `int | None` is not assignable to attribute `row` with type `(self: Self@TextInput, value: int | None) -> None` [bad-assignment]
|
||||
WARN discord/ui/text_input.py:190:6-11: `TextInput.label` is deprecated [deprecated]
|
||||
WARN discord/ui/text_input.py:190:6-18: `TextInput.label` is deprecated [deprecated]
|
||||
ERROR discord/ui/text_input.py:249:9-26: Class member `TextInput.to_component_dict` overrides parent class `Item` in an inconsistent manner [bad-override]
|
||||
ERROR discord/ui/text_input.py:252:9-27: Class member `TextInput._refresh_component` overrides parent class `Item` in an inconsistent manner [bad-override]
|
||||
ERROR discord/ui/text_input.py:255:9-23: Class member `TextInput._refresh_state` overrides parent class `Item` in an inconsistent manner [bad-override]
|
||||
|
|
@ -653,4 +647,4 @@ ERROR discord/welcome_screen.py:104:33-48: Object of class `_EmojiTag` has no at
|
|||
ERROR discord/welcome_screen.py:211:37-48: Cannot set item in `dict[str, list[Unknown]]` [unsupported-operation]
|
||||
ERROR discord/welcome_screen.py:214:33-40: Cannot set item in `dict[str, list[Unknown]]` [unsupported-operation]
|
||||
INFO Checking project configured at `<CWD>/pyrefly.toml`
|
||||
INFO 652 errors (521 suppressed)
|
||||
INFO 644 errors (522 suppressed)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
discord/abc.py:1057:16: error[invalid-return-type] Return type does not match returned value: expected `Self@_clone_impl`, found `GuildChannel`
|
||||
discord/abc.py:2091:9: error[invalid-parameter-default] Default value of type `<class 'VoiceClient'>` is not assignable to annotated parameter type `(Client, Connectable, /) -> T@connect`
|
||||
discord/app_commands/checks.py:190:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `Cooldown`
|
||||
discord/app_commands/commands.py:140:63: error[invalid-argument-type] Argument to class `Choice` is incorrect: Expected `str | int | float`, found `typing.TypeVar`
|
||||
discord/app_commands/commands.py:141:55: error[invalid-argument-type] Argument to class `Choice` is incorrect: Expected `str | int | float`, found `typing.TypeVar`
|
||||
discord/activity.py:286:9: error[invalid-method-override] Invalid override of method `to_dict`: Definition is incompatible with `BaseActivity.to_dict`
|
||||
discord/activity.py:455:9: error[invalid-method-override] Invalid override of method `to_dict`: Definition is incompatible with `BaseActivity.to_dict`
|
||||
discord/activity.py:566:9: error[invalid-method-override] Invalid override of method `to_dict`: Definition is incompatible with `BaseActivity.to_dict`
|
||||
discord/activity.py:822:9: error[invalid-method-override] Invalid override of method `to_dict`: Definition is incompatible with `BaseActivity.to_dict`
|
||||
discord/app_commands/commands.py:140:70: error[invalid-type-arguments] Type `typing.TypeVar` does not satisfy constraints `str`, `int`, `int | float`, `str | int | float` of type variable `ChoiceT@Choice`
|
||||
discord/app_commands/commands.py:141:62: error[invalid-type-arguments] Type `typing.TypeVar` does not satisfy constraints `str`, `int`, `int | float`, `str | int | float` of type variable `ChoiceT@Choice`
|
||||
discord/app_commands/commands.py:372:37: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__qualname__`
|
||||
discord/app_commands/commands.py:381:102: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__qualname__`
|
||||
discord/app_commands/commands.py:393:29: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__discord_app_commands_param_description__`
|
||||
|
|
@ -13,7 +15,6 @@ discord/app_commands/commands.py:432:38: error[unresolved-attribute] Object of t
|
|||
discord/app_commands/commands.py:444:58: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__qualname__`
|
||||
discord/app_commands/commands.py:450:57: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__globals__`
|
||||
discord/app_commands/commands.py:450:75: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__globals__`
|
||||
discord/app_commands/commands.py:456:5: error[unresolved-attribute] Unresolved attribute `__discord_app_commands_base_function__` on type `F@mark_overrideable`.
|
||||
discord/app_commands/commands.py:807:19: error[missing-argument] No argument provided for required parameter `error` of function `on_error`
|
||||
discord/app_commands/commands.py:807:35: error[invalid-argument-type] Argument to function `on_error` is incorrect: Expected `Group`, found `Interaction[Client]`
|
||||
discord/app_commands/commands.py:807:48: error[invalid-argument-type] Argument to function `on_error` is incorrect: Expected `Interaction[Client]`, found `AppCommandError`
|
||||
|
|
@ -30,7 +31,7 @@ discord/app_commands/transformers.py:110:67: error[invalid-argument-type] Argume
|
|||
discord/app_commands/transformers.py:115:67: error[invalid-argument-type] Argument to bound method `_checked_translate` is incorrect: Expected `locale_str`, found `str | locale_str`
|
||||
discord/app_commands/transformers.py:238:22: error[invalid-type-form] Variable of type `Self@__or__` is not allowed in a type expression
|
||||
discord/app_commands/transformers.py:584:13: error[invalid-assignment] Not enough values to unpack: Expected 3
|
||||
discord/app_commands/tree.py:76:10: error[invalid-argument-type] Argument to class `Interaction` is incorrect: Expected `Client`, found `typing.TypeVar`
|
||||
discord/app_commands/tree.py:76:22: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `Client` of type variable `ClientT@Interaction`
|
||||
discord/app_commands/tree.py:1011:27: error[unresolved-attribute] Object of type `((Interaction[Any], Member, /) -> @Todo) | ((Interaction[Any], User, /) -> @Todo) | ((Interaction[Any], Message, /) -> @Todo)` has no attribute `__name__`
|
||||
discord/app_commands/tree.py:1133:19: error[missing-argument] No argument provided for required parameter `error` of function `on_error`
|
||||
discord/app_commands/tree.py:1133:33: error[invalid-argument-type] Argument to function `on_error` is incorrect: Argument type `Interaction[ClientT@CommandTree]` does not satisfy upper bound `CommandTree[ClientT@CommandTree]` of type variable `Self`
|
||||
|
|
@ -44,11 +45,8 @@ discord/app_commands/tree.py:1280:9: error[unresolved-attribute] Unresolved attr
|
|||
discord/app_commands/tree.py:1301:19: error[missing-argument] No argument provided for required parameter `error` of function `on_error`
|
||||
discord/app_commands/tree.py:1301:33: error[invalid-argument-type] Argument to function `on_error` is incorrect: Argument type `Interaction[ClientT@CommandTree]` does not satisfy upper bound `CommandTree[ClientT@CommandTree]` of type variable `Self`
|
||||
discord/app_commands/tree.py:1301:46: error[invalid-argument-type] Argument to function `on_error` is incorrect: Expected `Interaction[ClientT@CommandTree]`, found `AppCommandError`
|
||||
discord/asset.py:462:16: error[invalid-return-type] Return type does not match returned value: expected `Self@replace`, found `Asset`
|
||||
discord/asset.py:462:31: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client] | _WebhookState`, found `Any | None | ConnectionState[Client] | _WebhookState`
|
||||
discord/asset.py:490:16: error[invalid-return-type] Return type does not match returned value: expected `Self@with_size`, found `Asset`
|
||||
discord/asset.py:490:31: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client] | _WebhookState`, found `Any | None | ConnectionState[Client] | _WebhookState`
|
||||
discord/asset.py:525:16: error[invalid-return-type] Return type does not match returned value: expected `Self@with_format`, found `Asset`
|
||||
discord/asset.py:525:31: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client] | _WebhookState`, found `Any | None | ConnectionState[Client] | _WebhookState`
|
||||
discord/audit_logs.py:550:56: error[invalid-argument-type] Argument to bound method `from_data` is incorrect: Expected `int`, found `None | Unknown | int`
|
||||
discord/audit_logs.py:551:55: error[invalid-argument-type] Argument to bound method `from_data` is incorrect: Expected `int`, found `None | Unknown | int`
|
||||
|
|
@ -57,8 +55,13 @@ discord/automod.py:164:49: error[invalid-key] Unknown key "duration_seconds" for
|
|||
discord/automod.py:165:52: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `int | float`, found `str | int`
|
||||
discord/automod.py:167:47: error[invalid-key] Unknown key "channel_id" for TypedDict `_AutoModerationActionMetadataCustomMessage`: Unknown key "channel_id"
|
||||
discord/automod.py:167:47: error[invalid-key] Unknown key "channel_id" for TypedDict `_AutoModerationActionMetadataTimeout`: Unknown key "channel_id"
|
||||
discord/automod.py:538:16: error[invalid-return-type] Return type does not match returned value: expected `Self@edit`, found `AutoModRule`
|
||||
discord/backoff.py:63:42: error[invalid-parameter-default] Default value of type `Literal[False]` is not assignable to annotated parameter type `T@ExponentialBackoff`
|
||||
discord/channel.py:374:9: error[invalid-method-override] Invalid override of method `_update`: Definition is incompatible with `GuildChannel._update`
|
||||
discord/channel.py:1098:15: error[invalid-method-override] Invalid override of method `_get_channel`: Definition is incompatible with `Messageable._get_channel`
|
||||
discord/channel.py:1107:9: error[invalid-method-override] Invalid override of method `_update`: Definition is incompatible with `GuildChannel._update`
|
||||
discord/channel.py:1770:9: error[invalid-method-override] Invalid override of method `_update`: Definition is incompatible with `VocalGuildChannel._update`
|
||||
discord/channel.py:2065:9: error[invalid-method-override] Invalid override of method `_update`: Definition is incompatible with `GuildChannel._update`
|
||||
discord/channel.py:2478:9: error[invalid-method-override] Invalid override of method `_update`: Definition is incompatible with `GuildChannel._update`
|
||||
discord/channel.py:3234:40: error[missing-argument] No argument provided for required parameter `data` of function `store_user`
|
||||
discord/channel.py:3234:57: error[invalid-argument-type] Argument to function `store_user` is incorrect: Argument type `PartialUser` does not satisfy upper bound `ConnectionState[ClientT@ConnectionState]` of type variable `Self`
|
||||
discord/channel.py:3409:40: error[missing-argument] No argument provided for required parameter `data` of function `store_user`
|
||||
|
|
@ -69,8 +72,6 @@ discord/client.py:723:59: error[invalid-argument-type] Argument to bound method
|
|||
discord/client.py:723:59: error[invalid-argument-type] Argument to bound method `from_client` is incorrect: Expected `bool`, found `Unknown | int | None`
|
||||
discord/client.py:723:59: error[invalid-argument-type] Argument to bound method `from_client` is incorrect: Expected `str`, found `Unknown | int | None`
|
||||
discord/client.py:723:59: error[invalid-argument-type] Argument to bound method `from_client` is incorrect: Expected `bool`, found `Unknown | int | None`
|
||||
discord/client.py:2058:23: error[unresolved-attribute] Object of type `CoroT@event` has no attribute `__name__`
|
||||
discord/client.py:2059:71: error[unresolved-attribute] Object of type `CoroT@event` has no attribute `__name__`
|
||||
discord/components.py:86:9: error[invalid-type-form] Variable of type `Literal["TextDisplay"]` is not allowed in a type expression
|
||||
discord/components.py:787:29: error[invalid-type-form] Variable of type `Literal["TextDisplay"]` is not allowed in a type expression
|
||||
discord/components.py:1326:27: error[invalid-argument-type] Invalid argument to key "components" with declared type `list[ActionRow | TextComponent | MediaGalleryComponent | ... omitted 5 union elements]` on TypedDict `ContainerComponent`: value of type `list[ButtonComponent | SelectMenu | TextInput | ... omitted 11 union elements]`
|
||||
|
|
@ -86,6 +87,7 @@ discord/components.py:1476:35: error[invalid-argument-type] Argument to bound me
|
|||
discord/components.py:1478:26: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ContainerComponent`, found `ButtonComponent | SelectMenu | TextInput | ... omitted 10 union elements`
|
||||
discord/components.py:1480:31: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `LabelComponent`, found `ButtonComponent | SelectMenu | TextInput | ... omitted 10 union elements`
|
||||
discord/components.py:1482:36: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `FileUploadComponent`, found `ButtonComponent | SelectMenu | TextInput | ... omitted 10 union elements`
|
||||
discord/embeds.py:308:9: error[invalid-method-override] Invalid override of method `__eq__`: Definition is incompatible with `object.__eq__`
|
||||
discord/emoji.py:131:42: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client]`, found `Any | None | ConnectionState[Client]`
|
||||
discord/emoji.py:186:16: warning[possibly-missing-attribute] Attribute `_get_guild` may be missing on object of type `Any | None | ConnectionState[Client]`
|
||||
discord/emoji.py:225:30: warning[possibly-missing-attribute] Attribute `application_id` may be missing on object of type `Any | None | ConnectionState[Client]`
|
||||
|
|
@ -101,18 +103,15 @@ discord/ext/commands/bot.py:177:9: error[invalid-parameter-default] Default valu
|
|||
discord/ext/commands/bot.py:655:16: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__name__`
|
||||
discord/ext/commands/bot.py:681:16: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__name__`
|
||||
discord/ext/commands/bot.py:1546:13: error[invalid-parameter-default] Default value of type `_DefaultRepr` is not assignable to annotated parameter type `HelpCommand | None`
|
||||
discord/ext/commands/cog.py:268:5: error[unresolved-attribute] Unresolved attribute `__cog_special_method__` on type `FuncT@_cog_special_method`.
|
||||
discord/ext/commands/cog.py:288:28: error[invalid-argument-type] Argument to class `Command` is incorrect: Expected `Cog | None`, found `typing.Self`
|
||||
discord/ext/commands/cog.py:289:58: error[invalid-argument-type] Argument to class `Command` is incorrect: Expected `Group | Cog`, found `typing.Self`
|
||||
discord/ext/commands/cog.py:497:24: error[unresolved-attribute] Object of type `FuncT@_get_overridden_method` has no attribute `__func__`
|
||||
discord/ext/commands/cog.py:527:13: error[invalid-assignment] Object of type `Literal[True]` is not assignable to attribute `__cog_listener__` on type `(FuncT@listener & ~staticmethod[object, object]) | ((...) -> object)`
|
||||
discord/ext/commands/cog.py:528:33: error[unresolved-attribute] Object of type `(FuncT@listener & ~staticmethod[object, object]) | ((...) -> object)` has no attribute `__name__`
|
||||
discord/ext/commands/cog.py:530:17: error[unresolved-attribute] Object of type `(FuncT@listener & ~staticmethod[object, object]) | ((...) -> object)` has no attribute `__cog_listener_names__`
|
||||
discord/ext/commands/cog.py:532:17: error[invalid-assignment] Object of type `list[Unknown | (str & ~AlwaysFalsy)]` is not assignable to attribute `__cog_listener_names__` on type `(FuncT@listener & ~staticmethod[object, object]) | ((...) -> object)`
|
||||
discord/ext/commands/cog.py:288:36: error[invalid-type-arguments] Type `typing.Self` is not assignable to upper bound `Cog | None` of type variable `CogT@Command`
|
||||
discord/ext/commands/cog.py:289:79: error[invalid-type-arguments] Type `typing.Self` is not assignable to upper bound `Group | Cog` of type variable `GroupT@Command`
|
||||
discord/ext/commands/context.py:411:15: error[invalid-method-override] Invalid override of method `_get_channel`: Definition is incompatible with `Messageable._get_channel`
|
||||
discord/ext/commands/context.py:783:9: error[invalid-method-override] Invalid override of method `typing`: Definition is incompatible with `Messageable.typing`
|
||||
discord/ext/commands/converter.py:402:39: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `TextChannel | VoiceChannel | StageChannel | ... omitted 4 union elements`, found `(VoiceChannel & ~AlwaysFalsy) | (StageChannel & ~AlwaysFalsy) | (ForumChannel & Messageable & ~AlwaysFalsy) | ... omitted 5 union elements`
|
||||
discord/ext/commands/converter.py:1119:9: error[invalid-method-override] Invalid override of method `__class_getitem__`: Definition is incompatible with `list.__class_getitem__`
|
||||
discord/ext/commands/converter.py:1211:89: warning[possibly-missing-attribute] Attribute `name` may be missing on object of type `Parameter | None`
|
||||
discord/ext/commands/converter.py:1241:13: error[invalid-assignment] Not enough values to unpack: Expected 3
|
||||
discord/ext/commands/cooldowns.py:251:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `MaxConcurrency`
|
||||
discord/ext/commands/cooldowns.py:171:9: error[invalid-method-override] Invalid override of method `create_bucket`: Definition is incompatible with `CooldownMapping.create_bucket`
|
||||
discord/ext/commands/core.py:141:24: error[invalid-assignment] Object of type `object` is not assignable to `(...) -> Any`
|
||||
discord/ext/commands/core.py:433:38: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__name__`
|
||||
discord/ext/commands/core.py:462:22: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__commands_checks__`
|
||||
|
|
@ -121,14 +120,6 @@ discord/ext/commands/core.py:483:31: error[unresolved-attribute] Object of type
|
|||
discord/ext/commands/core.py:500:29: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__before_invoke__`
|
||||
discord/ext/commands/core.py:508:28: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__after_invoke__`
|
||||
discord/ext/commands/core.py:544:24: error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__globals__`
|
||||
discord/ext/commands/core.py:653:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `Command[CogT@Command, P@Command, T@Command]`
|
||||
discord/ext/commands/core.py:660:20: error[invalid-return-type] Return type does not match returned value: expected `Self@_update_copy`, found `Command[CogT@Command, P@Command, T@Command]`
|
||||
discord/ext/commands/core.py:680:52: warning[possibly-missing-attribute] Attribute `cog_command_error` may be missing on object of type `CogT@Command & ~None`
|
||||
discord/ext/commands/core.py:919:47: warning[possibly-missing-attribute] Attribute `cog_before_invoke` may be missing on object of type `CogT@Command & ~None`
|
||||
discord/ext/commands/core.py:921:23: error[invalid-argument-type] Argument to bound method `cog_before_invoke` is incorrect: Expected `Cog`, found `CogT@Command`
|
||||
discord/ext/commands/core.py:939:47: warning[possibly-missing-attribute] Attribute `cog_after_invoke` may be missing on object of type `CogT@Command & ~None`
|
||||
discord/ext/commands/core.py:941:23: error[invalid-argument-type] Argument to bound method `cog_after_invoke` is incorrect: Expected `Cog`, found `CogT@Command`
|
||||
discord/ext/commands/core.py:1312:58: warning[possibly-missing-attribute] Attribute `cog_check` may be missing on object of type `CogT@Command & ~None`
|
||||
discord/ext/commands/core.py:1552:22: error[no-matching-overload] No overload of function `command` matches arguments
|
||||
discord/ext/commands/core.py:1609:22: error[no-matching-overload] No overload of function `group` matches arguments
|
||||
discord/ext/commands/core.py:1942:17: error[invalid-assignment] Object of type `list[Unknown]` is not assignable to attribute `__commands_checks__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]] & ~<Protocol with members '__commands_checks__'>`
|
||||
|
|
@ -152,18 +143,23 @@ discord/ext/commands/core.py:2547:13: error[invalid-assignment] Object of type `
|
|||
discord/ext/commands/core.py:2582:13: error[invalid-assignment] Object of type `MaxConcurrency` is not assignable to attribute `__commands_max_concurrency__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]`
|
||||
discord/ext/commands/core.py:2634:13: error[invalid-assignment] Object of type `@Todo` is not assignable to attribute `__before_invoke__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]`
|
||||
discord/ext/commands/core.py:2657:13: error[invalid-assignment] Object of type `@Todo` is not assignable to attribute `__after_invoke__` on type `((...) -> @Todo) & ~Top[Command[Unknown, object, Unknown]]`
|
||||
discord/ext/commands/help.py:248:5: error[unresolved-attribute] Unresolved attribute `__help_command_not_overridden__` on type `FuncT@_not_overridden`.
|
||||
discord/ext/commands/help.py:309:9: error[invalid-assignment] Implicit shadowing of function `get_commands`
|
||||
discord/ext/commands/help.py:310:9: error[invalid-assignment] Implicit shadowing of function `walk_commands`
|
||||
discord/ext/commands/help.py:407:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `HelpCommand`
|
||||
discord/ext/commands/help.py:1255:9: error[invalid-method-override] Invalid override of method `get_destination`: Definition is incompatible with `HelpCommand.get_destination`
|
||||
discord/ext/commands/help.py:1264:15: error[invalid-method-override] Invalid override of method `prepare_help_command`: Definition is incompatible with `HelpCommand.prepare_help_command`
|
||||
discord/ext/commands/help.py:1520:9: error[invalid-method-override] Invalid override of method `get_destination`: Definition is incompatible with `HelpCommand.get_destination`
|
||||
discord/ext/commands/help.py:1529:15: error[invalid-method-override] Invalid override of method `prepare_help_command`: Definition is incompatible with `HelpCommand.prepare_help_command`
|
||||
discord/ext/commands/hybrid.py:176:49: error[unresolved-attribute] Object of type `(str, /) -> Any` has no attribute `__name__`
|
||||
discord/ext/commands/hybrid.py:232:13: error[unresolved-attribute] Unresolved attribute `__hybrid_command_flag__` on type `(...) -> Any`.
|
||||
discord/ext/commands/hybrid.py:328:9: error[unresolved-attribute] Unresolved attribute `__signature__` on type `(...) -> @Todo`.
|
||||
discord/ext/commands/hybrid.py:338:17: error[unresolved-attribute] Object of type `(...) -> @Todo` has no attribute `__signature__`
|
||||
discord/ext/commands/hybrid.py:563:9: error[invalid-method-override] Invalid override of method `_ensure_assignment_on_copy`: Definition is incompatible with `Command._ensure_assignment_on_copy`
|
||||
discord/ext/commands/hybrid.py:731:9: error[invalid-method-override] Invalid override of method `_ensure_assignment_on_copy`: Definition is incompatible with `Command._ensure_assignment_on_copy`
|
||||
discord/ext/commands/hybrid.py:790:9: error[invalid-method-override] Invalid override of method `add_command`: Definition is incompatible with `GroupMixin.add_command`
|
||||
discord/ext/commands/parameters.py:98:9: error[invalid-parameter-default] Default value of type `<class '_empty'>` is not assignable to annotated parameter type `str`
|
||||
discord/ext/commands/parameters.py:99:9: error[invalid-parameter-default] Default value of type `<class '_empty'>` is not assignable to annotated parameter type `str`
|
||||
discord/ext/commands/parameters.py:100:9: error[invalid-parameter-default] Default value of type `<class '_empty'>` is not assignable to annotated parameter type `str`
|
||||
discord/ext/commands/parameters.py:151:16: error[invalid-return-type] Return type does not match returned value: expected `Self@replace`, found `Parameter`
|
||||
discord/ext/commands/parameters.py:115:9: error[invalid-method-override] Invalid override of method `replace`: Definition is incompatible with `inspect.Parameter.replace`
|
||||
discord/ext/commands/parameters.py:219:5: error[invalid-parameter-default] Default value of type `<class '_empty'>` is not assignable to annotated parameter type `str`
|
||||
discord/ext/commands/parameters.py:220:5: error[invalid-parameter-default] Default value of type `<class '_empty'>` is not assignable to annotated parameter type `str`
|
||||
discord/ext/commands/parameters.py:221:5: error[invalid-parameter-default] Default value of type `<class '_empty'>` is not assignable to annotated parameter type `str`
|
||||
|
|
@ -172,14 +168,11 @@ discord/ext/commands/parameters.py:279:9: error[invalid-parameter-default] Defau
|
|||
discord/ext/commands/parameters.py:280:9: error[invalid-parameter-default] Default value of type `<class '_empty'>` is not assignable to annotated parameter type `str`
|
||||
discord/ext/commands/view.py:151:53: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `str`, found `Unknown | str | None`
|
||||
discord/ext/commands/view.py:162:57: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `str`, found `Unknown | str | None`
|
||||
discord/ext/tasks/__init__.py:174:49: error[unresolved-attribute] Object of type `LF@Loop` has no attribute `__qualname__`
|
||||
discord/ext/tasks/__init__.py:237:29: error[unresolved-attribute] Object of type `LF@Loop` has no attribute `__qualname__`
|
||||
discord/ext/tasks/__init__.py:256:25: error[unresolved-attribute] Object of type `LF@Loop` has no attribute `__qualname__`
|
||||
discord/ext/tasks/__init__.py:304:9: error[invalid-assignment] Implicit shadowing of function `_error`
|
||||
discord/ext/tasks/__init__.py:305:22: error[unresolved-attribute] Object of type `LF@Loop` has no attribute `__name__`
|
||||
discord/ext/tasks/__init__.py:552:75: error[unresolved-attribute] Object of type `LF@Loop` has no attribute `__name__`
|
||||
discord/file.py:106:9: error[invalid-assignment] Implicit shadowing of function `close`
|
||||
discord/file.py:160:9: error[invalid-assignment] Implicit shadowing of function `close`
|
||||
discord/flags.py:1784:9: error[invalid-method-override] Invalid override of method `_from_value`: Definition is incompatible with `BaseFlags._from_value`
|
||||
discord/flags.py:1881:9: error[invalid-method-override] Invalid override of method `to_array`: Definition is incompatible with `ArrayFlags.to_array`
|
||||
discord/gateway.py:137:48: error[parameter-already-assigned] Multiple values provided for parameter `name` of bound method `__init__`
|
||||
discord/gateway.py:466:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `int`
|
||||
discord/gateway.py:470:13: error[invalid-assignment] Cannot assign to a subscript on an object of type `int`
|
||||
|
|
@ -210,12 +203,15 @@ discord/http.py:566:53: error[invalid-argument-type] Argument to bound method `w
|
|||
discord/http.py:566:53: error[invalid-argument-type] Argument to bound method `ws_connect` is incorrect: Expected `int`, found `Unknown | BasicAuth | None | ... omitted 4 union elements`
|
||||
discord/http.py:566:53: error[invalid-argument-type] Argument to bound method `ws_connect` is incorrect: Expected `int`, found `Unknown | BasicAuth | None | ... omitted 4 union elements`
|
||||
discord/http.py:640:20: error[invalid-context-manager] Object of type `Ratelimit` cannot be used with `async with` because it does not correctly implement `__aexit__`
|
||||
discord/integrations.py:200:9: error[invalid-method-override] Invalid override of method `_from_data`: Definition is incompatible with `Integration._from_data`
|
||||
discord/integrations.py:359:9: error[invalid-method-override] Invalid override of method `_from_data`: Definition is incompatible with `Integration._from_data`
|
||||
discord/interactions.py:229:58: error[invalid-argument-type] Argument to bound method `_from_value` is incorrect: Expected `Sequence[Literal[0, 1, 2]]`, found `list[Unknown | int]`
|
||||
discord/interactions.py:250:13: error[invalid-assignment] Object of type `(Guild & ~AlwaysTruthy) | VoiceChannel | StageChannel | ... omitted 5 union elements` is not assignable to attribute `channel` of type `VoiceChannel | StageChannel | TextChannel | ... omitted 6 union elements`
|
||||
discord/interactions.py:256:92: error[invalid-argument-type] Argument to bound method `format_map` is incorrect: Expected `_FormatMapMapping`, found `TextChannel | NewsChannel | VoiceChannel | ... omitted 7 union elements`
|
||||
discord/interactions.py:307:16: error[invalid-return-type] Return type does not match returned value: expected `Guild | None`, found `(ConnectionState[ClientT@Interaction] & ~AlwaysTruthy & ~AlwaysFalsy) | (Guild & ~AlwaysFalsy) | Any | None`
|
||||
discord/interactions.py:744:21: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client]`, found `_InteractionMessageState`
|
||||
discord/interactions.py:1401:16: error[missing-argument] No argument provided for required parameter `data` of function `store_user`
|
||||
discord/interactions.py:1453:15: error[invalid-method-override] Invalid override of method `edit`: Definition is incompatible with `Message.edit`
|
||||
discord/member.py:319:28: error[missing-argument] No argument provided for required parameter `data` of function `store_user`
|
||||
discord/member.py:319:45: error[invalid-argument-type] Argument to function `store_user` is incorrect: Argument type `User` does not satisfy upper bound `ConnectionState[ClientT@ConnectionState]` of type variable `Self`
|
||||
discord/member.py:980:91: warning[deprecated] The function `utcnow` is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)
|
||||
|
|
@ -232,13 +228,13 @@ discord/message.py:2481:30: error[missing-argument] No argument provided for req
|
|||
discord/message.py:2481:47: error[invalid-argument-type] Argument to function `store_user` is incorrect: Argument type `UserWithMember` does not satisfy upper bound `ConnectionState[ClientT@ConnectionState]` of type variable `Self`
|
||||
discord/opus.py:141:48: error[unresolved-attribute] Object of type `(...) -> Unknown` has no attribute `__name__`
|
||||
discord/opus.py:149:48: error[unresolved-attribute] Object of type `(...) -> Unknown` has no attribute `__name__`
|
||||
discord/poll.py:592:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `Poll`
|
||||
discord/presences.py:60:16: error[invalid-assignment] Object of type `(ClientStatus & ~AlwaysFalsy) | dict[Unknown, Unknown]` is not assignable to `ClientStatus`
|
||||
discord/role.py:450:45: error[invalid-assignment] Object of type `list[dict[Unknown | str, Unknown] | Unknown]` is not assignable to `list[RolePositionUpdate]`
|
||||
discord/role.py:700:45: error[invalid-assignment] Object of type `list[dict[Unknown | str, Unknown | int] | Unknown]` is not assignable to `list[RolePositionUpdate]`
|
||||
discord/scheduled_event.py:150:40: error[missing-argument] No argument provided for required parameter `data` of function `store_user`
|
||||
discord/scheduled_event.py:150:63: error[invalid-argument-type] Argument to function `store_user` is incorrect: Argument type `User & ~AlwaysFalsy` does not satisfy upper bound `ConnectionState[ClientT@ConnectionState]` of type variable `Self`
|
||||
discord/scheduled_event.py:663:22: error[missing-argument] No argument provided for required parameter `data` of function `store_user`
|
||||
discord/soundboard.py:208:9: error[invalid-method-override] Invalid override of method `_update`: Definition is incompatible with `BaseSoundboardSound._update`
|
||||
discord/soundboard.py:232:20: warning[possibly-missing-attribute] Attribute `get_user` may be missing on object of type `Any | None | ConnectionState[Client]`
|
||||
discord/soundboard.py:233:21: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client]`, found `Any | None | ConnectionState[Client]`
|
||||
discord/soundboard.py:301:22: warning[possibly-missing-attribute] Attribute `http` may be missing on object of type `Any | None | ConnectionState[Client]`
|
||||
|
|
@ -270,8 +266,10 @@ discord/state.py:1388:20: error[missing-argument] No argument provided for requi
|
|||
discord/state.py:1388:36: error[invalid-argument-type] Argument to function `store_user` is incorrect: Argument type `User` does not satisfy upper bound `ConnectionState[ClientT@ConnectionState]` of type variable `Self`
|
||||
discord/sticker.py:230:38: warning[possibly-missing-attribute] Attribute `http` may be missing on object of type `Any | None | ConnectionState[Client]`
|
||||
discord/sticker.py:232:20: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client]`, found `Any | None | ConnectionState[Client]`
|
||||
discord/sticker.py:335:9: error[invalid-method-override] Invalid override of method `_from_data`: Definition is incompatible with `Sticker._from_data`
|
||||
discord/sticker.py:369:22: warning[possibly-missing-attribute] Attribute `http` may be missing on object of type `Any | None | ConnectionState[Client]`
|
||||
discord/sticker.py:370:28: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client]`, found `Any | None | ConnectionState[Client]`
|
||||
discord/sticker.py:415:9: error[invalid-method-override] Invalid override of method `_from_data`: Definition is incompatible with `Sticker._from_data`
|
||||
discord/sticker.py:420:37: error[missing-argument] No argument provided for required parameter `data` of function `store_user`
|
||||
discord/sticker.py:420:37: warning[possibly-missing-attribute] Attribute `store_user` may be missing on object of type `Any | None | ConnectionState[Client]`
|
||||
discord/sticker.py:420:60: error[invalid-argument-type] Argument to function `store_user` is incorrect: Argument type `User & ~AlwaysFalsy` does not satisfy upper bound `ConnectionState[ClientT@ConnectionState]` of type variable `Self`
|
||||
|
|
@ -279,10 +277,55 @@ discord/sticker.py:434:16: warning[possibly-missing-attribute] Attribute `_get_g
|
|||
discord/sticker.py:489:43: warning[possibly-missing-attribute] Attribute `http` may be missing on object of type `Any | None | ConnectionState[Client]`
|
||||
discord/sticker.py:490:29: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ConnectionState[Client]`, found `Any | None | ConnectionState[Client]`
|
||||
discord/sticker.py:511:15: warning[possibly-missing-attribute] Attribute `http` may be missing on object of type `Any | None | ConnectionState[Client]`
|
||||
discord/ui/modal.py:109:50: error[invalid-argument-type] Argument to class `Item` is incorrect: Expected `BaseView`, found `typing.Self`
|
||||
discord/ui/action_row.py:415:9: error[invalid-parameter-default] Default value of type `<class 'Select[Any]'>` is not assignable to annotated parameter type `type[SelectT@select]`
|
||||
discord/ui/action_row.py:430:9: error[invalid-parameter-default] Default value of type `<class 'UserSelect[Any]'>` is not assignable to annotated parameter type `type[UserSelectT@select]`
|
||||
discord/ui/action_row.py:446:9: error[invalid-parameter-default] Default value of type `<class 'RoleSelect[Any]'>` is not assignable to annotated parameter type `type[RoleSelectT@select]`
|
||||
discord/ui/action_row.py:462:9: error[invalid-parameter-default] Default value of type `<class 'ChannelSelect[Any]'>` is not assignable to annotated parameter type `type[ChannelSelectT@select]`
|
||||
discord/ui/action_row.py:478:9: error[invalid-parameter-default] Default value of type `<class 'MentionableSelect[Any]'>` is not assignable to annotated parameter type `type[MentionableSelectT@select]`
|
||||
discord/ui/action_row.py:493:9: error[invalid-parameter-default] Default value of type `<class 'Select[Any]'>` is not assignable to annotated parameter type `type[BaseSelectT@select]`
|
||||
discord/ui/action_row.py:597:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/button.py:259:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/button.py:276:9: error[invalid-method-override] Invalid override of method `to_component_dict`: Definition is incompatible with `Item.to_component_dict`
|
||||
discord/ui/button.py:287:9: error[invalid-method-override] Invalid override of method `_refresh_component`: Definition is incompatible with `Item._refresh_component`
|
||||
discord/ui/container.py:179:9: error[invalid-method-override] Invalid override of method `_update_view`: Definition is incompatible with `Item._update_view`
|
||||
discord/ui/container.py:260:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/file.py:162:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/file_upload.py:172:9: error[invalid-method-override] Invalid override of method `to_component_dict`: Definition is incompatible with `Item.to_component_dict`
|
||||
discord/ui/file_upload.py:175:9: error[invalid-method-override] Invalid override of method `_refresh_component`: Definition is incompatible with `Item._refresh_component`
|
||||
discord/ui/file_upload.py:178:9: error[invalid-method-override] Invalid override of method `_handle_submit`: Definition is incompatible with `Item._handle_submit`
|
||||
discord/ui/file_upload.py:184:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/label.py:112:9: error[invalid-method-override] Invalid override of method `to_component_dict`: Definition is incompatible with `Item.to_component_dict`
|
||||
discord/ui/label.py:125:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/media_gallery.py:259:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/modal.py:109:55: error[invalid-type-arguments] Type `typing.Self` is not assignable to upper bound `BaseView` of type variable `V@Item`
|
||||
discord/ui/modal.py:159:15: error[invalid-method-override] Invalid override of method `on_error`: Definition is incompatible with `BaseView.on_error`
|
||||
discord/ui/modal.py:176:9: error[invalid-method-override] Invalid override of method `_refresh`: Definition is incompatible with `BaseView._refresh`
|
||||
discord/ui/modal.py:202:15: error[invalid-method-override] Invalid override of method `_scheduled_task`: Definition is incompatible with `BaseView._scheduled_task`
|
||||
discord/ui/modal.py:273:16: error[invalid-return-type] Return type does not match returned value: expected `Self@add_item`, found `Modal`
|
||||
discord/ui/section.py:192:31: error[invalid-argument-type] Argument to bound method `append` is incorrect: Expected `Item[V@Section]`, found `(str & Item[object]) | Item[Any]`
|
||||
discord/ui/section.py:251:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/select.py:363:9: error[invalid-method-override] Invalid override of method `to_component_dict`: Definition is incompatible with `Item.to_component_dict`
|
||||
discord/ui/select.py:366:9: error[invalid-method-override] Invalid override of method `_refresh_component`: Definition is incompatible with `Item._refresh_component`
|
||||
discord/ui/select.py:369:9: error[invalid-method-override] Invalid override of method `_handle_submit`: Definition is incompatible with `Item._handle_submit`
|
||||
discord/ui/select.py:382:9: error[invalid-method-override] Invalid override of method `_refresh_state`: Definition is incompatible with `Item._refresh_state`
|
||||
discord/ui/select.py:405:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/select.py:1030:5: error[invalid-parameter-default] Default value of type `<class 'Select[Any]'>` is not assignable to annotated parameter type `type[SelectT@select]`
|
||||
discord/ui/select.py:1046:5: error[invalid-parameter-default] Default value of type `<class 'UserSelect[Any]'>` is not assignable to annotated parameter type `type[UserSelectT@select]`
|
||||
discord/ui/select.py:1063:5: error[invalid-parameter-default] Default value of type `<class 'RoleSelect[Any]'>` is not assignable to annotated parameter type `type[RoleSelectT@select]`
|
||||
discord/ui/select.py:1080:5: error[invalid-parameter-default] Default value of type `<class 'ChannelSelect[Any]'>` is not assignable to annotated parameter type `type[ChannelSelectT@select]`
|
||||
discord/ui/select.py:1097:5: error[invalid-parameter-default] Default value of type `<class 'MentionableSelect[Any]'>` is not assignable to annotated parameter type `type[MentionableSelectT@select]`
|
||||
discord/ui/select.py:1113:5: error[invalid-parameter-default] Default value of type `<class 'Select[Any]'>` is not assignable to annotated parameter type `type[BaseSelectT@select]`
|
||||
discord/ui/separator.py:129:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/text_display.py:87:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/text_input.py:249:9: error[invalid-method-override] Invalid override of method `to_component_dict`: Definition is incompatible with `Item.to_component_dict`
|
||||
discord/ui/text_input.py:252:9: error[invalid-method-override] Invalid override of method `_refresh_component`: Definition is incompatible with `Item._refresh_component`
|
||||
discord/ui/text_input.py:255:9: error[invalid-method-override] Invalid override of method `_refresh_state`: Definition is incompatible with `Item._refresh_state`
|
||||
discord/ui/text_input.py:259:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/thumbnail.py:138:9: error[invalid-method-override] Invalid override of method `from_component`: Definition is incompatible with `Item.from_component`
|
||||
discord/ui/view.py:324:16: error[invalid-return-type] Return type does not match returned value: expected `list[Item[Self@children]]`, found `list[Item[Self@__init__]]`
|
||||
discord/user.py:428:9: error[invalid-method-override] Invalid override of method `_update`: Definition is incompatible with `BaseUser._update`
|
||||
discord/utils.py:257:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `Sequence.__getitem__`
|
||||
discord/utils.py:263:9: error[invalid-method-override] Invalid override of method `__contains__`: Definition is incompatible with `Sequence.__contains__`
|
||||
discord/utils.py:328:5: error[invalid-parameter-default] Default value of type `_MissingSentinel` is not assignable to annotated parameter type `Permissions`
|
||||
discord/utils.py:329:5: error[invalid-parameter-default] Default value of type `_MissingSentinel` is not assignable to annotated parameter type `Snowflake`
|
||||
discord/utils.py:330:5: error[invalid-parameter-default] Default value of type `_MissingSentinel` is not assignable to annotated parameter type `str`
|
||||
|
|
@ -297,10 +340,14 @@ discord/utils.py:1349:5: error[invalid-parameter-default] Default value of type
|
|||
discord/utils.py:1350:5: error[invalid-parameter-default] Default value of type `_MissingSentinel` is not assignable to annotated parameter type `int`
|
||||
discord/webhook/async_.py:751:20: error[missing-argument] No argument provided for required parameter `data` of function `store_user`
|
||||
discord/webhook/async_.py:751:44: error[invalid-argument-type] Argument to function `store_user` is incorrect: Argument type `User | PartialUser` does not satisfy upper bound `ConnectionState[ClientT@ConnectionState]` of type variable `Self`
|
||||
discord/webhook/async_.py:805:15: error[invalid-method-override] Invalid override of method `edit`: Definition is incompatible with `Message.edit`
|
||||
discord/webhook/async_.py:1042:16: error[invalid-return-type] Return type does not match returned value: expected `Guild | None`, found `(ConnectionState[Client] & ~AlwaysTruthy) | (_WebhookState & ~AlwaysTruthy) | Guild | None`
|
||||
discord/webhook/sync.py:81:14: error[unresolved-import] Cannot resolve imported module `requests`
|
||||
discord/webhook/sync.py:410:9: error[invalid-method-override] Invalid override of method `edit`: Definition is incompatible with `Message.edit`
|
||||
discord/webhook/sync.py:474:9: error[invalid-method-override] Invalid override of method `add_files`: Definition is incompatible with `Message.add_files`
|
||||
discord/webhook/sync.py:498:9: error[invalid-method-override] Invalid override of method `remove_attachments`: Definition is incompatible with `Message.remove_attachments`
|
||||
discord/webhook/sync.py:522:9: error[invalid-method-override] Invalid override of method `delete`: Definition is incompatible with `PartialMessage.delete`
|
||||
discord/webhook/sync.py:652:16: error[unresolved-import] Cannot resolve imported module `requests`
|
||||
discord/webhook/sync.py:695:16: error[unresolved-import] Cannot resolve imported module `requests`
|
||||
discord/welcome_screen.py:104:33: warning[possibly-missing-attribute] Attribute `name` may be missing on object of type `(Unknown & _EmojiTag) | PartialEmoji | Emoji | (str & _EmojiTag)`
|
||||
discord/welcome_screen.py:217:16: error[invalid-return-type] Return type does not match returned value: expected `Self@edit`, found `WelcomeScreen`
|
||||
Found 305 diagnostics
|
||||
Found 352 diagnostics
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -4,7 +4,7 @@ isort/core.py:126:40: error[invalid-argument-type] Argument to function `__new__
|
|||
isort/output.py:534:25: error[invalid-argument-type] Argument to function `import_statement` is incorrect: Expected `Sequence[str]`, found `@Todo | None | list[Unknown]`
|
||||
isort/output.py:544:25: error[invalid-argument-type] Argument to function `import_statement` is incorrect: Expected `Sequence[str]`, found `@Todo | None | list[Unknown]`
|
||||
isort/output.py:552:29: error[invalid-argument-type] Argument to function `import_statement` is incorrect: Expected `Sequence[str]`, found `@Todo | None | list[Unknown]`
|
||||
isort/place.py:104:31: error[unresolved-attribute] Module `importlib` has no member `machinery`
|
||||
isort/place.py:104:31: warning[possibly-missing-attribute] Submodule `machinery` may not be available as an attribute on module `importlib`
|
||||
isort/settings.py:641:9: error[invalid-assignment] Property `_known_patterns` defined in `Self@known_patterns` is read-only
|
||||
isort/settings.py:665:9: error[invalid-assignment] Property `_section_comments` defined in `Self@section_comments` is read-only
|
||||
isort/settings.py:673:9: error[invalid-assignment] Property `_section_comments_end` defined in `Self@section_comments_end` is read-only
|
||||
|
|
|
|||
|
|
@ -18,7 +18,5 @@ src/jinja2/runtime.py:144:2: error[unresolved-attribute] Class `Mapping` has no
|
|||
src/jinja2/runtime.py:690:38: error[invalid-assignment] Object of type `(Unknown & ~(() -> object)) | bool | (((str | None, /) -> bool) & ~(() -> object))` is not assignable to `bool | None`
|
||||
src/jinja2/runtime.py:770:40: error[invalid-argument-type] Argument to bound method `_invoke` is incorrect: Expected `bool`, found `@Todo | bool | None`
|
||||
src/jinja2/runtime.py:948:14: error[invalid-return-type] Function always implicitly returns `None`, which is not assignable to return type `Never`
|
||||
src/jinja2/utils.py:100:23: error[unresolved-attribute] Object of type `F@internalcode` has no attribute `__code__`
|
||||
src/jinja2/utils.py:431:2: error[unresolved-attribute] Class `MutableMapping` has no attribute `register`
|
||||
src/jinja2/utils.py:472:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `LRUCache`
|
||||
Found 23 diagnostics
|
||||
Found 21 diagnostics
|
||||
|
|
|
|||
|
|
@ -1,9 +1,49 @@
|
|||
pandas-stubs/_typing.pyi:861:25: error[invalid-argument-type] Argument to class `ndarray` is incorrect: Expected `tuple[int, ...]`, found `typing.TypeVar`
|
||||
pandas-stubs/_typing.pyi:861:44: error[invalid-argument-type] Argument to class `dtype` is incorrect: Expected `generic[Any]`, found `typing.TypeVar`
|
||||
pandas-stubs/_typing.pyi:865:48: error[invalid-argument-type] Argument to class `dtype` is incorrect: Expected `generic[Any]`, found `typing.TypeVar`
|
||||
pandas-stubs/_typing.pyi:877:53: error[invalid-argument-type] Argument to class `dtype` is incorrect: Expected `generic[Any]`, found `typing.TypeVar`
|
||||
pandas-stubs/core/series.pyi:338:57: error[invalid-argument-type] Argument to class `IndexOpsMixin` is incorrect: Expected `str | bytes | int | ... omitted 12 union elements`, found `typing.TypeVar`
|
||||
pandas-stubs/_libs/missing.pyi:120:9: error[invalid-method-override] Invalid override of method `__eq__`: Definition is incompatible with `object.__eq__`
|
||||
pandas-stubs/_libs/missing.pyi:130:9: error[invalid-method-override] Invalid override of method `__ne__`: Definition is incompatible with `object.__ne__`
|
||||
pandas-stubs/_typing.pyi:861:36: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `tuple[int, ...]` of type variable `_ShapeT_co@ndarray`
|
||||
pandas-stubs/_typing.pyi:861:53: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `generic[Any]` of type variable `_SCT_co@dtype`
|
||||
pandas-stubs/_typing.pyi:865:57: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `generic[Any]` of type variable `_SCT_co@dtype`
|
||||
pandas-stubs/_typing.pyi:877:62: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `generic[Any]` of type variable `_SCT_co@dtype`
|
||||
pandas-stubs/core/arrays/categorical.pyi:114:9: error[invalid-method-override] Invalid override of method `__contains__`: Definition is incompatible with `ExtensionArray.__contains__`
|
||||
pandas-stubs/core/arrays/categorical.pyi:118:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__`
|
||||
pandas-stubs/core/arrays/datetimelike.pyi:76:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__`
|
||||
pandas-stubs/core/arrays/interval.pyi:66:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__`
|
||||
pandas-stubs/core/arrays/sparse/array.pyi:66:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__`
|
||||
pandas-stubs/core/frame.pyi:193:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `_LocationIndexer.__getitem__`
|
||||
pandas-stubs/core/frame.pyi:204:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `_NDFrameIndexer.__setitem__`
|
||||
pandas-stubs/core/frame.pyi:280:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `_LocationIndexer.__getitem__`
|
||||
pandas-stubs/core/frame.pyi:303:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `_NDFrameIndexer.__setitem__`
|
||||
pandas-stubs/core/frame.pyi:320:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `_ScalarAccessIndexer.__getitem__`
|
||||
pandas-stubs/core/frame.pyi:321:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `_ScalarAccessIndexer.__setitem__`
|
||||
pandas-stubs/core/frame.pyi:328:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `_ScalarAccessIndexer.__getitem__`
|
||||
pandas-stubs/core/frame.pyi:339:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `_ScalarAccessIndexer.__setitem__`
|
||||
pandas-stubs/core/groupby/generic.pyi:247:9: error[invalid-method-override] Invalid override of method `apply`: Definition is incompatible with `GroupBy.apply`
|
||||
pandas-stubs/core/groupby/generic.pyi:300:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `BaseGroupBy.__getitem__`
|
||||
pandas-stubs/core/groupby/generic.pyi:452:9: error[invalid-method-override] Invalid override of method `__getattr__`: Definition is incompatible with `GroupBy.__getattr__`
|
||||
pandas-stubs/core/groupby/groupby.pyi:74:35: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `NDFrame` of type variable `NDFrameT@DatetimeIndexResamplerGroupby`
|
||||
pandas-stubs/core/groupby/groupby.pyi:75:35: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `NDFrame` of type variable `NDFrameT@PeriodIndexResamplerGroupby`
|
||||
pandas-stubs/core/groupby/groupby.pyi:76:38: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `NDFrame` of type variable `NDFrameT@TimedeltaIndexResamplerGroupby`
|
||||
pandas-stubs/core/indexes/datetimes.pyi:76:9: error[invalid-method-override] Invalid override of method `__sub__`: Definition is incompatible with `Index.__sub__`
|
||||
pandas-stubs/core/indexes/interval.pyi:242:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `Index.__getitem__`
|
||||
pandas-stubs/core/indexes/interval.pyi:250:9: error[invalid-method-override] Invalid override of method `__gt__`: Definition is incompatible with `Index.__gt__`
|
||||
pandas-stubs/core/indexes/interval.pyi:258:9: error[invalid-method-override] Invalid override of method `__ge__`: Definition is incompatible with `Index.__ge__`
|
||||
pandas-stubs/core/indexes/interval.pyi:266:9: error[invalid-method-override] Invalid override of method `__le__`: Definition is incompatible with `Index.__le__`
|
||||
pandas-stubs/core/indexes/interval.pyi:274:9: error[invalid-method-override] Invalid override of method `__lt__`: Definition is incompatible with `Index.__lt__`
|
||||
pandas-stubs/core/indexes/interval.pyi:282:9: error[invalid-method-override] Invalid override of method `__eq__`: Definition is incompatible with `OpsMixin.__eq__`
|
||||
pandas-stubs/core/indexes/interval.pyi:290:9: error[invalid-method-override] Invalid override of method `__ne__`: Definition is incompatible with `OpsMixin.__ne__`
|
||||
pandas-stubs/core/indexes/period.pyi:57:9: error[invalid-method-override] Invalid override of method `__sub__`: Definition is incompatible with `Index.__sub__`
|
||||
pandas-stubs/core/indexes/period.pyi:66:9: error[invalid-method-override] Invalid override of method `__rsub__`: Definition is incompatible with `Index.__rsub__`
|
||||
pandas-stubs/core/indexes/range.pyi:84:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `Index.__getitem__`
|
||||
pandas-stubs/core/indexes/timedeltas.pyi:77:9: error[invalid-method-override] Invalid override of method `__add__`: Definition is incompatible with `Index.__add__`
|
||||
pandas-stubs/core/indexes/timedeltas.pyi:86:9: error[invalid-method-override] Invalid override of method `__radd__`: Definition is incompatible with `Index.__radd__`
|
||||
pandas-stubs/core/indexes/timedeltas.pyi:98:9: error[invalid-method-override] Invalid override of method `__rsub__`: Definition is incompatible with `Index.__rsub__`
|
||||
pandas-stubs/core/series.pyi:274:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `_LocationIndexer.__getitem__`
|
||||
pandas-stubs/core/series.pyi:283:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `_NDFrameIndexer.__setitem__`
|
||||
pandas-stubs/core/series.pyi:300:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `_LocationIndexer.__getitem__`
|
||||
pandas-stubs/core/series.pyi:330:9: error[invalid-method-override] Invalid override of method `__setitem__`: Definition is incompatible with `_NDFrameIndexer.__setitem__`
|
||||
pandas-stubs/core/series.pyi:338:71: error[invalid-type-arguments] Type `typing.TypeVar` is not assignable to upper bound `str | bytes | int | ... omitted 12 union elements` of type variable `S1@IndexOpsMixin`
|
||||
pandas-stubs/core/series.pyi:4630:9: error[invalid-method-override] Invalid override of method `xs`: Definition is incompatible with `NDFrame.xs`
|
||||
pandas-stubs/io/excel/_base.pyi:16:6: error[unresolved-import] Cannot resolve imported module `openpyxl.workbook.workbook`
|
||||
pandas-stubs/io/excel/_base.pyi:20:6: error[unresolved-import] Cannot resolve imported module `xlrd.book`
|
||||
Found 7 diagnostics
|
||||
Found 47 diagnostics
|
||||
WARN Ignoring the `tool.ty` section in `<CWD>/pyproject.toml` because `<CWD>/ty.toml` takes precedence.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
pandas/__init__.py:178:10: error[unresolved-import] Cannot resolve imported module `pandas._version_meson`
|
||||
pandas/_testing/__init__.py:507:25: error[unresolved-attribute] Module `pandas.core` has no member `arrays`
|
||||
pandas/_testing/__init__.py:509:25: error[unresolved-attribute] Module `pandas.core` has no member `arrays`
|
||||
pandas/_libs/sparse.pyi:43:9: error[invalid-method-override] Invalid override of method `intersect`: Definition is incompatible with `SparseIndex.intersect`
|
||||
pandas/_libs/sparse.pyi:44:9: error[invalid-method-override] Invalid override of method `make_union`: Definition is incompatible with `SparseIndex.make_union`
|
||||
pandas/_libs/tslibs/timestamps.pyi:159:9: error[invalid-method-override] Invalid override of method `__sub__`: Definition is incompatible with `date.__sub__`
|
||||
pandas/_testing/__init__.py:507:25: warning[possibly-missing-attribute] Submodule `arrays` may not be available as an attribute on module `pandas.core`
|
||||
pandas/_testing/__init__.py:509:25: warning[possibly-missing-attribute] Submodule `arrays` may not be available as an attribute on module `pandas.core`
|
||||
pandas/_version.py:44:5: error[unresolved-attribute] Unresolved attribute `VCS` on type `VersioneerConfig`.
|
||||
pandas/_version.py:45:5: error[unresolved-attribute] Unresolved attribute `style` on type `VersioneerConfig`.
|
||||
pandas/_version.py:46:5: error[unresolved-attribute] Unresolved attribute `tag_prefix` on type `VersioneerConfig`.
|
||||
|
|
@ -9,8 +12,6 @@ pandas/_version.py:48:5: error[unresolved-attribute] Unresolved attribute `versi
|
|||
pandas/_version.py:49:5: error[unresolved-attribute] Unresolved attribute `verbose` on type `VersioneerConfig`.
|
||||
pandas/_version.py:101:16: error[unresolved-attribute] Object of type `BaseException | None` has no attribute `errno`
|
||||
pandas/_version.py:111:14: error[unresolved-attribute] Object of type `str` has no attribute `decode`
|
||||
pandas/compat/__init__.py:50:5: error[unresolved-attribute] Unresolved attribute `__name__` on type `F@set_function_name`.
|
||||
pandas/compat/__init__.py:51:5: error[unresolved-attribute] Unresolved attribute `__qualname__` on type `F@set_function_name`.
|
||||
pandas/core/_numba/executor.py:48:22: error[not-iterable] Object of type `prange` is not iterable
|
||||
pandas/core/_numba/executor.py:52:22: error[not-iterable] Object of type `prange` is not iterable
|
||||
pandas/core/_numba/executor.py:78:22: error[not-iterable] Object of type `prange` is not iterable
|
||||
|
|
@ -24,9 +25,7 @@ pandas/core/_numba/extensions.py:32:5: error[unresolved-import] Module `numba.co
|
|||
pandas/core/_numba/extensions.py:61:9: error[unresolved-attribute] Unresolved attribute `_numba_data` on type `Index`.
|
||||
pandas/core/_numba/extensions.py:64:13: error[unresolved-attribute] Object of type `Index` has no attribute `_numba_data`
|
||||
pandas/core/_numba/extensions.py:74:48: error[invalid-type-form] Variable of type `def any(iterable: Iterable[object], /) -> bool` is not allowed in a type expression
|
||||
pandas/core/_numba/extensions.py:94:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `IndexType`
|
||||
pandas/core/_numba/extensions.py:124:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `SeriesType`
|
||||
pandas/core/_numba/extensions.py:299:67: error[unresolved-attribute] Module `numba` has no member `typed`
|
||||
pandas/core/_numba/extensions.py:299:67: warning[possibly-missing-attribute] Submodule `typed` may not be available as an attribute on module `numba`
|
||||
pandas/core/_numba/extensions.py:574:16: error[missing-argument] No argument provided for required parameter `obj` of bound method `__init__`
|
||||
pandas/core/_numba/kernels/mean_.py:135:21: error[unresolved-reference] Name `num_consecutive_same_value` used when not defined
|
||||
pandas/core/_numba/kernels/mean_.py:136:21: error[unresolved-reference] Name `prev_value` used when not defined
|
||||
|
|
@ -126,6 +125,7 @@ pandas/core/arrays/_arrow_string_mixins.py:361:21: error[unresolved-attribute] M
|
|||
pandas/core/arrays/_arrow_string_mixins.py:362:29: error[unresolved-attribute] Module `pyarrow.compute` has no member `add`
|
||||
pandas/core/arrays/_arrow_string_mixins.py:363:22: error[unresolved-attribute] Module `pyarrow.compute` has no member `if_else`
|
||||
pandas/core/arrays/_mixins.py:135:20: error[invalid-return-type] Return type does not match returned value: expected `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[Any, ...], type]`
|
||||
pandas/core/arrays/_mixins.py:283:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__`
|
||||
pandas/core/arrays/arrow/accessors.py:115:25: error[unresolved-attribute] Module `pyarrow.compute` has no member `list_value_length`
|
||||
pandas/core/arrays/arrow/accessors.py:163:23: error[unresolved-attribute] Module `pyarrow.compute` has no member `list_element`
|
||||
pandas/core/arrays/arrow/accessors.py:181:22: error[unresolved-attribute] Module `pyarrow.compute` has no member `list_slice`
|
||||
|
|
@ -191,6 +191,7 @@ pandas/core/arrays/arrow/array.py:1003:22: error[unresolved-attribute] Module `p
|
|||
pandas/core/arrays/arrow/array.py:1007:17: error[unresolved-attribute] Module `pyarrow.compute` has no member `is_null`
|
||||
pandas/core/arrays/arrow/array.py:1073:20: error[unresolved-attribute] Module `pyarrow.compute` has no member `is_nan`
|
||||
pandas/core/arrays/arrow/array.py:1074:19: error[unresolved-attribute] Module `pyarrow.compute` has no member `replace_with_mask`
|
||||
pandas/core/arrays/arrow/array.py:1109:9: error[invalid-method-override] Invalid override of method `__contains__`: Definition is incompatible with `ExtensionArray.__contains__`
|
||||
pandas/core/arrays/arrow/array.py:1116:24: error[unresolved-attribute] Module `pyarrow.compute` has no member `any`
|
||||
pandas/core/arrays/arrow/array.py:1116:31: error[unresolved-attribute] Module `pyarrow.compute` has no member `is_nan`
|
||||
pandas/core/arrays/arrow/array.py:1284:18: error[unresolved-attribute] Module `pyarrow.compute` has no member `array_sort_indices`
|
||||
|
|
@ -259,7 +260,6 @@ pandas/core/arrays/arrow/array.py:2804:44: error[unresolved-attribute] Module `p
|
|||
pandas/core/arrays/arrow/array.py:2806:44: error[unresolved-attribute] Module `pyarrow.compute` has no member `split_pattern`
|
||||
pandas/core/arrays/arrow/array.py:2814:17: error[unresolved-attribute] Module `pyarrow.compute` has no member `utf8_split_whitespace`
|
||||
pandas/core/arrays/arrow/array.py:2817:13: error[unresolved-attribute] Module `pyarrow.compute` has no member `split_pattern`
|
||||
pandas/core/arrays/arrow/array.py:2837:16: error[invalid-return-type] Return type does not match returned value: expected `Self@_str_zfill`, found `ArrowExtensionArray`
|
||||
pandas/core/arrays/arrow/array.py:2929:18: error[unresolved-attribute] Module `pyarrow.compute` has no member `year`
|
||||
pandas/core/arrays/arrow/array.py:2934:18: error[unresolved-attribute] Module `pyarrow.compute` has no member `day`
|
||||
pandas/core/arrays/arrow/array.py:2939:18: error[unresolved-attribute] Module `pyarrow.compute` has no member `day_of_week`
|
||||
|
|
@ -311,15 +311,25 @@ pandas/core/arrays/arrow/array.py:3199:22: error[unresolved-attribute] Module `p
|
|||
pandas/core/arrays/arrow/extension_types.py:171:5: error[unresolved-attribute] Unresolved attribute `_hotfix_installed` on type `<module 'pyarrow'>`.
|
||||
pandas/core/arrays/boolean.py:259:24: warning[possibly-missing-attribute] Attribute `shape` may be missing on object of type `@Todo | None`
|
||||
pandas/core/arrays/boolean.py:262:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[ndarray[tuple[Any, ...], dtype[Any]], ndarray[tuple[Any, ...], dtype[Any]]]`, found `tuple[@Todo, @Todo | None]`
|
||||
pandas/core/arrays/boolean.py:385:9: error[invalid-method-override] Invalid override of method `_coerce_to_array`: Definition is incompatible with `BaseMaskedArray._coerce_to_array`
|
||||
pandas/core/arrays/categorical.py:494:25: warning[possibly-missing-attribute] Attribute `_codes` may be missing on object of type `Unknown | RangeIndex | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]`
|
||||
pandas/core/arrays/categorical.py:1397:21: error[no-matching-overload] No overload of function `find_common_type` matches arguments
|
||||
pandas/core/arrays/categorical.py:1655:9: error[invalid-method-override] Invalid override of method `_validate_scalar`: Definition is incompatible with `NDArrayBackedExtensionArray._validate_scalar`
|
||||
pandas/core/arrays/categorical.py:2229:9: error[invalid-method-override] Invalid override of method `_box_func`: Definition is incompatible with `NDArrayBackedExtensionArray._box_func`
|
||||
pandas/core/arrays/categorical.py:2252:9: error[invalid-method-override] Invalid override of method `__contains__`: Definition is incompatible with `ExtensionArray.__contains__`
|
||||
pandas/core/arrays/categorical.py:2567:16: error[invalid-return-type] Return type does not match returned value: expected `Self@unique`, found `Categorical`
|
||||
pandas/core/arrays/categorical.py:2611:9: error[invalid-method-override] Invalid override of method `_concat_same_type`: Definition is incompatible with `NDArrayBacked._concat_same_type`
|
||||
pandas/core/arrays/categorical.py:2989:9: error[invalid-method-override] Invalid override of method `_delegate_property_get`: Definition is incompatible with `PandasDelegate._delegate_property_get`
|
||||
pandas/core/arrays/categorical.py:2992:9: error[invalid-method-override] Invalid override of method `_delegate_property_set`: Definition is incompatible with `PandasDelegate._delegate_property_set`
|
||||
pandas/core/arrays/datetimelike.py:387:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__`
|
||||
pandas/core/arrays/datetimelike.py:565:18: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `(Unknown & ~str) | Period | Timestamp | Timedelta | NaTType`
|
||||
pandas/core/arrays/datetimelike.py:1315:20: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[int, ...], dtype[Any] | str]`
|
||||
pandas/core/arrays/datetimelike.py:1582:16: error[invalid-return-type] Return type does not match returned value: expected `Self@_quantile`, found `DatetimeLikeArrayMixin`
|
||||
pandas/core/arrays/datetimelike.py:2375:9: error[invalid-method-override] Invalid override of method `_concat_same_type`: Definition is incompatible with `NDArrayBacked._concat_same_type`
|
||||
pandas/core/arrays/datetimelike.py:2399:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `TimelikeOps`
|
||||
pandas/core/arrays/datetimelike.py:2458:16: error[invalid-return-type] Return type does not match returned value: expected `Self@take`, found `TimelikeOps`
|
||||
pandas/core/arrays/datetimelike.py:2476:36: error[invalid-argument-type] Argument to function `py_get_unit_from_dtype` is incorrect: Expected `dtype[Any]`, found `ExtensionDtype`
|
||||
pandas/core/arrays/datetimes.py:410:9: error[invalid-method-override] Invalid override of method `_generate_range`: Definition is incompatible with `TimelikeOps._generate_range`
|
||||
pandas/core/arrays/datetimes.py:483:62: warning[possibly-missing-attribute] Attribute `tz` may be missing on object of type `Timestamp | None`
|
||||
pandas/core/arrays/datetimes.py:501:51: error[invalid-argument-type] Argument to bound method `tz_localize` is incorrect: Expected `bool | Literal["NaT", "raise"]`, found `Literal["NaT", "infer", "raise"] | @Todo`
|
||||
pandas/core/arrays/datetimes.py:503:47: error[invalid-argument-type] Argument to bound method `tz_localize` is incorrect: Expected `bool | Literal["NaT", "raise"]`, found `Literal["NaT", "infer", "raise"] | @Todo`
|
||||
|
|
@ -341,23 +351,24 @@ pandas/core/arrays/interval.py:396:37: warning[possibly-missing-attribute] Attri
|
|||
pandas/core/arrays/interval.py:399:50: warning[possibly-missing-attribute] Attribute `unit` may be missing on object of type `(Index & ~PeriodIndex) | (Unknown & ~PeriodIndex)`
|
||||
pandas/core/arrays/interval.py:399:63: warning[possibly-missing-attribute] Attribute `unit` may be missing on object of type `Index | Unknown`
|
||||
pandas/core/arrays/interval.py:401:35: warning[possibly-missing-attribute] Attribute `_ensure_matching_resos` may be missing on object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Unknown`
|
||||
pandas/core/arrays/interval.py:831:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__`
|
||||
pandas/core/arrays/interval.py:840:35: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Argument type `Unknown | ndarray[tuple[Any, ...], dtype[Any]]` does not satisfy constraints (`int`, `int | float`, `Timestamp`, `Timedelta`) of type variable `_OrderableT`
|
||||
pandas/core/arrays/interval.py:840:35: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `int`, found `Unknown | ndarray[tuple[Any, ...], dtype[Any]]`
|
||||
pandas/core/arrays/interval.py:1001:16: error[invalid-return-type] Return type does not match returned value: expected `Interval[Unknown] | int | float`, found `Self@min`
|
||||
pandas/core/arrays/interval.py:1018:16: error[invalid-return-type] Return type does not match returned value: expected `Interval[Unknown] | int | float`, found `Self@max`
|
||||
pandas/core/arrays/interval.py:1127:9: error[invalid-method-override] Invalid override of method `_concat_same_type`: Definition is incompatible with `ExtensionArray._concat_same_type`
|
||||
pandas/core/arrays/interval.py:1801:50: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Argument type `Period | Timestamp | Timedelta | NaTType | ndarray[tuple[Any, ...], dtype[Any]]` does not satisfy constraints (`int`, `int | float`, `Timestamp`, `Timedelta`) of type variable `_OrderableT`
|
||||
pandas/core/arrays/interval.py:1801:50: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `int`, found `Period | Timestamp | Timedelta | NaTType | ndarray[tuple[Any, ...], dtype[Any]]`
|
||||
pandas/core/arrays/masked.py:185:30: error[invalid-assignment] Object of type `ndarray[tuple[int, ...], type]` is not assignable to `ndarray[tuple[Any, ...], dtype[Any]]`
|
||||
pandas/core/arrays/masked.py:441:16: error[invalid-return-type] Return type does not match returned value: expected `Self@ravel`, found `BaseMaskedArray`
|
||||
pandas/core/arrays/masked.py:452:16: error[invalid-return-type] Return type does not match returned value: expected `Self@shift`, found `BaseMaskedArray`
|
||||
pandas/core/arrays/masked.py:1424:16: error[invalid-return-type] Return type does not match returned value: expected `Self@_mode`, found `BaseMaskedArray`
|
||||
pandas/core/arrays/numpy_.py:386:20: error[invalid-return-type] Return type does not match returned value: expected `Self@take`, found `NumpyExtensionArray`
|
||||
pandas/core/arrays/masked.py:185:30: error[invalid-assignment] Object of type `ndarray[tuple[int, ...], dtype[Any] | type]` is not assignable to `ndarray[tuple[Any, ...], dtype[Any]]`
|
||||
pandas/core/arrays/masked.py:385:9: error[invalid-method-override] Invalid override of method `__contains__`: Definition is incompatible with `ExtensionArray.__contains__`
|
||||
pandas/core/arrays/masked.py:1036:9: error[invalid-method-override] Invalid override of method `_concat_same_type`: Definition is incompatible with `ExtensionArray._concat_same_type`
|
||||
pandas/core/arrays/masked.py:1054:9: error[invalid-method-override] Invalid override of method `take`: Definition is incompatible with `ExtensionArray.take`
|
||||
pandas/core/arrays/numeric.py:295:9: error[invalid-method-override] Invalid override of method `_coerce_to_array`: Definition is incompatible with `BaseMaskedArray._coerce_to_array`
|
||||
pandas/core/arrays/numpy_.py:285:9: error[invalid-method-override] Invalid override of method `_validate_scalar`: Definition is incompatible with `NDArrayBackedExtensionArray._validate_scalar`
|
||||
pandas/core/arrays/numpy_.py:388:16: error[invalid-return-type] Return type does not match returned value: expected `Self@take`, found `NumpyExtensionArray`
|
||||
pandas/core/arrays/period.py:829:20: error[unresolved-attribute] Object of type `BaseOffset` has no attribute `_period_dtype_code`
|
||||
pandas/core/arrays/period.py:917:17: error[unresolved-attribute] Object of type `BaseOffset` has no attribute `_period_dtype_code`
|
||||
pandas/core/arrays/period.py:933:16: error[invalid-return-type] Return type does not match returned value: expected `Self@asfreq`, found `PeriodArray`
|
||||
pandas/core/arrays/period.py:1031:16: error[invalid-return-type] Return type does not match returned value: expected `Self@_addsub_int_array_or_scalar`, found `PeriodArray`
|
||||
pandas/core/arrays/period.py:1102:16: error[invalid-return-type] Return type does not match returned value: expected `Self@_add_timedelta_arraylike`, found `PeriodArray`
|
||||
pandas/core/arrays/period.py:1033:9: error[invalid-method-override] Invalid override of method `_add_offset`: Definition is incompatible with `DatetimeLikeArrayMixin._add_offset`
|
||||
pandas/core/arrays/period.py:1370:12: error[unresolved-attribute] Object of type `BaseOffset` has no attribute `_period_dtype_code`
|
||||
pandas/core/arrays/period.py:1464:45: error[invalid-argument-type] Argument to function `freq_to_dtype_code` is incorrect: Expected `BaseOffset`, found `None`
|
||||
pandas/core/arrays/period.py:1469:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[ndarray[tuple[Any, ...], dtype[Any]], BaseOffset]`, found `tuple[@Todo, BaseOffset | Unknown | None]`
|
||||
|
|
@ -375,13 +386,15 @@ pandas/core/arrays/sparse/accessor.py:435:40: warning[possibly-missing-attribute
|
|||
pandas/core/arrays/sparse/accessor.py:446:67: warning[possibly-missing-attribute] Attribute `shape` may be missing on object of type `Unknown | None`
|
||||
pandas/core/arrays/sparse/accessor.py:464:62: warning[possibly-missing-attribute] Attribute `items` may be missing on object of type `Unknown | None`
|
||||
pandas/core/arrays/sparse/accessor.py:465:16: error[invalid-return-type] Return type does not match returned value: expected `int | float`, found `floating[Any]`
|
||||
pandas/core/arrays/sparse/array.py:790:16: error[invalid-return-type] Return type does not match returned value: expected `Self@isna`, found `SparseArray`
|
||||
pandas/core/arrays/sparse/array.py:948:16: warning[possibly-missing-attribute] Attribute `any` may be missing on object of type `Unknown | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]`
|
||||
pandas/core/arrays/sparse/array.py:978:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `ExtensionArray.__getitem__`
|
||||
pandas/core/arrays/sparse/array.py:1078:42: error[invalid-argument-type] Argument to function `maybe_box_datetimelike` is incorrect: Expected `str | bytes | date | ... omitted 10 union elements`, found `ndarray[tuple[Any, ...], dtype[Any]]`
|
||||
pandas/core/arrays/sparse/array.py:1095:16: error[invalid-return-type] Return type does not match returned value: expected `Self@take`, found `SparseArray`
|
||||
pandas/core/arrays/sparse/array.py:1393:16: error[invalid-return-type] Return type does not match returned value: expected `Self@map`, found `SparseArray`
|
||||
pandas/core/arrays/sparse/array.py:1188:9: error[invalid-method-override] Invalid override of method `searchsorted`: Definition is incompatible with `ExtensionArray.searchsorted`
|
||||
pandas/core/arrays/sparse/array.py:1205:9: error[invalid-method-override] Invalid override of method `_concat_same_type`: Definition is incompatible with `ExtensionArray._concat_same_type`
|
||||
pandas/core/arrays/string_.py:225:23: error[invalid-type-form] Invalid subscript of object of type `property` in type expression
|
||||
pandas/core/arrays/string_.py:548:16: error[invalid-return-type] Return type does not match returned value: expected `Self@view`, found `BaseStringArray`
|
||||
pandas/core/arrays/string_.py:689:9: error[invalid-method-override] Invalid override of method `_validate_scalar`: Definition is incompatible with `NumpyExtensionArray._validate_scalar`
|
||||
pandas/core/arrays/string_arrow.py:245:9: error[invalid-method-override] Invalid override of method `_convert_bool_result`: Definition is incompatible with `ArrowExtensionArray._convert_bool_result`
|
||||
pandas/core/arrays/string_arrow.py:291:18: error[unresolved-attribute] Module `pyarrow.compute` has no member `is_in`
|
||||
pandas/core/arrays/string_arrow.py:446:18: error[unresolved-attribute] Module `pyarrow.compute` has no member `count_substring_regex`
|
||||
pandas/core/arrays/string_arrow.py:493:23: error[unresolved-attribute] Module `pyarrow.compute` has no member `is_null`
|
||||
|
|
@ -390,8 +403,11 @@ pandas/core/arrays/string_arrow.py:494:41: error[unresolved-attribute] Module `p
|
|||
pandas/core/arrays/string_arrow.py:496:23: error[unresolved-attribute] Module `pyarrow.compute` has no member `not_equal`
|
||||
pandas/core/arrays/timedeltas.py:157:28: error[no-matching-overload] No overload of function `__new__` matches arguments
|
||||
pandas/core/arrays/timedeltas.py:188:47: error[invalid-argument-type] Argument to bound method `_from_value_and_reso` is incorrect: Expected `signedinteger[_64Bit]`, found `timedelta64[timedelta | int | None]`
|
||||
pandas/core/arrays/timedeltas.py:243:9: error[invalid-method-override] Invalid override of method `_from_sequence`: Definition is incompatible with `ExtensionArray._from_sequence`
|
||||
pandas/core/arrays/timedeltas.py:250:46: error[invalid-argument-type] Argument to function `astype_overflowsafe` is incorrect: Expected `dtype[Any]`, found `(Unknown & ~AlwaysTruthy & ~None) | dtype[Any] | ExtensionDtype`
|
||||
pandas/core/arrays/timedeltas.py:276:46: error[invalid-argument-type] Argument to function `astype_overflowsafe` is incorrect: Expected `dtype[Any]`, found `(Unknown & ~AlwaysTruthy & ~None) | dtype[Any] | ExtensionDtype`
|
||||
pandas/core/arrays/timedeltas.py:284:9: error[invalid-method-override] Invalid override of method `_generate_range`: Definition is incompatible with `TimelikeOps._generate_range`
|
||||
pandas/core/arrays/timedeltas.py:470:9: error[invalid-method-override] Invalid override of method `_add_offset`: Definition is incompatible with `DatetimeLikeArrayMixin._add_offset`
|
||||
pandas/core/arrays/timedeltas.py:1147:20: error[unresolved-attribute] Object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` has no attribute `_mask`
|
||||
pandas/core/arrays/timedeltas.py:1148:20: error[unresolved-attribute] Object of type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` has no attribute `_data`
|
||||
pandas/core/arrays/timedeltas.py:1152:42: error[invalid-argument-type] Argument to function `cast_from_unit_vectorized` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Unknown`
|
||||
|
|
@ -448,8 +464,10 @@ pandas/core/frame.py:2541:20: error[unsupported-operator] Operator `in` is not s
|
|||
pandas/core/frame.py:2542:37: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method
|
||||
pandas/core/frame.py:2543:22: error[unsupported-operator] Operator `in` is not supported for types `int` and `None`, in comparing `int` with `Unknown | None`
|
||||
pandas/core/frame.py:2544:37: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method
|
||||
pandas/core/frame.py:4106:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `NDFrame.__getitem__`
|
||||
pandas/core/frame.py:5232:32: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `Iterable[Unknown]`, found `Unknown | None | tuple[Unknown & ~None] | tuple[()]`
|
||||
pandas/core/frame.py:5232:52: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `Iterable[Unknown]`, found `Unknown | None | tuple[Unknown & ~None] | tuple[()]`
|
||||
pandas/core/frame.py:7272:9: error[invalid-method-override] Invalid override of method `sort_values`: Definition is incompatible with `NDFrame.sort_values`
|
||||
pandas/core/frame.py:10299:23: error[invalid-assignment] Object of type `Top[list[Unknown]] & ~AlwaysFalsy` is not assignable to `list[Hashable]`
|
||||
pandas/core/frame.py:10614:43: error[unresolved-attribute] Object of type `int` has no attribute `is_integer`
|
||||
pandas/core/frame.py:10732:32: error[invalid-argument-type] Argument to function `frame_apply` is incorrect: Expected `((...) -> Unknown) | str | list[((...) -> Unknown) | str] | MutableMapping[Hashable, ((...) -> Unknown) | str | list[((...) -> Unknown) | str]]`, found `Unknown | None`
|
||||
|
|
@ -491,6 +509,8 @@ pandas/core/groupby/numba_.py:116:18: error[not-iterable] Object of type `prange
|
|||
pandas/core/groupby/numba_.py:118:22: error[not-iterable] Object of type `prange` is not iterable
|
||||
pandas/core/groupby/numba_.py:176:18: error[not-iterable] Object of type `prange` is not iterable
|
||||
pandas/core/groupby/numba_.py:178:22: error[not-iterable] Object of type `prange` is not iterable
|
||||
pandas/core/indexes/accessors.py:91:9: error[invalid-method-override] Invalid override of method `_delegate_property_get`: Definition is incompatible with `PandasDelegate._delegate_property_get`
|
||||
pandas/core/indexes/accessors.py:175:9: error[invalid-method-override] Invalid override of method `_delegate_property_get`: Definition is incompatible with `PandasDelegate._delegate_property_get`
|
||||
pandas/core/indexes/base.py:428:11: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression
|
||||
pandas/core/indexes/base.py:440:24: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression
|
||||
pandas/core/indexes/base.py:441:23: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression
|
||||
|
|
@ -513,17 +533,18 @@ pandas/core/indexes/base.py:5310:18: error[no-matching-overload] No overload of
|
|||
pandas/core/indexes/base.py:6135:64: error[invalid-argument-type] Argument to bound method `get_indexer_non_unique` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `Unknown | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]`
|
||||
pandas/core/indexes/base.py:6135:64: error[invalid-argument-type] Argument to bound method `get_indexer_non_unique` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `Unknown | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]`
|
||||
pandas/core/indexes/base.py:6464:16: error[no-matching-overload] No overload of bound method `__init__` matches arguments
|
||||
pandas/core/indexes/category.py:429:9: error[invalid-method-override] Invalid override of method `_maybe_cast_listlike_indexer`: Definition is incompatible with `Index._maybe_cast_listlike_indexer`
|
||||
pandas/core/indexes/datetimelike.py:139:10: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property`
|
||||
pandas/core/indexes/datetimelike.py:156:10: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property`
|
||||
pandas/core/indexes/datetimelike.py:200:42: warning[possibly-missing-attribute] Attribute `asi8` may be missing on object of type `(Any & Index) | CategoricalIndex | DatetimeIndexOpsMixin`
|
||||
pandas/core/indexes/datetimelike.py:200:42: warning[possibly-missing-attribute] Attribute `asi8` may be missing on object of type `(Any & Index) | CategoricalIndex | Self@equals`
|
||||
pandas/core/indexes/datetimelike.py:527:10: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property`
|
||||
pandas/core/indexes/datetimelike.py:756:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[Self@_wrap_join_result, @Todo | None, @Todo | None]`, found `tuple[DatetimeTimedeltaMixin | Unknown, @Todo | None, @Todo | None]`
|
||||
pandas/core/indexes/datetimelike.py:815:45: error[invalid-argument-type] Argument to bound method `is_on_offset` is incorrect: Expected `datetime`, found `Timestamp | NaTType | Timedelta`
|
||||
pandas/core/indexes/datetimelike.py:823:16: error[invalid-return-type] Return type does not match returned value: expected `Self@delete`, found `DatetimeTimedeltaMixin`
|
||||
pandas/core/indexes/datetimelike.py:855:13: error[invalid-assignment] Object of type `BaseOffset | None` is not assignable to attribute `_freq` on type `DatetimeArray | TimedeltaArray`
|
||||
pandas/core/indexes/datetimes.py:609:29: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `integer[Any] | int | float | ... omitted 3 union elements`, found `Unknown | NaTType`
|
||||
pandas/core/indexes/frozen.py:82:16: error[invalid-return-type] Return type does not match returned value: expected `Self@__radd__`, found `FrozenList`
|
||||
pandas/core/indexes/frozen.py:92:16: error[invalid-return-type] Return type does not match returned value: expected `Self@__mul__`, found `FrozenList`
|
||||
pandas/core/indexes/frozen.py:72:15: error[invalid-method-override] Invalid override of method `__iadd__`: Definition is incompatible with `MutableSequence.__iadd__`
|
||||
pandas/core/indexes/frozen.py:74:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `MutableSequence.__getitem__`
|
||||
pandas/core/indexes/interval.py:670:43: warning[possibly-missing-attribute] Attribute `left` may be missing on object of type `Unknown | Index`
|
||||
pandas/core/indexes/interval.py:671:44: warning[possibly-missing-attribute] Attribute `right` may be missing on object of type `Unknown | Index`
|
||||
pandas/core/indexes/interval.py:686:50: warning[possibly-missing-attribute] Attribute `asi8` may be missing on object of type `(Unknown & ~Top[Interval[Unknown]]) | (Index & ~Top[Interval[Unknown]])`
|
||||
|
|
@ -533,14 +554,16 @@ pandas/core/indexes/interval.py:1397:20: error[no-matching-overload] No overload
|
|||
pandas/core/indexes/interval.py:1427:25: error[invalid-assignment] Object of type `object` is not assignable to `dtype[Any]`
|
||||
pandas/core/indexes/interval.py:1435:46: error[unsupported-operator] Operator `*` is unsupported between objects of type `Unknown | None | Literal[1, "D"]` and `float`
|
||||
pandas/core/indexes/interval.py:1440:32: error[unsupported-operator] Operator `-` is unsupported between objects of type `str | bytes | date | ... omitted 10 union elements` and `str | bytes | date | ... omitted 10 union elements`
|
||||
pandas/core/indexes/multi.py:1393:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `MultiIndex`
|
||||
pandas/core/indexes/multi.py:1589:9: error[invalid-method-override] Invalid override of method `_set_names`: Definition is incompatible with `Index._set_names`
|
||||
pandas/core/indexes/multi.py:2256:40: error[unsupported-operator] Operator `>` is not supported for types `object` and `int`, in comparing `~None` with `Literal[0]`
|
||||
pandas/core/indexes/multi.py:4158:9: error[invalid-method-override] Invalid override of method `_validate_fill_value`: Definition is incompatible with `Index._validate_fill_value`
|
||||
pandas/core/indexes/multi.py:4484:9: error[no-matching-overload] No overload of function `tile` matches arguments
|
||||
pandas/core/indexes/period.py:243:29: error[invalid-argument-type] Argument to function `period_array` is incorrect: Expected `Sequence[Period | str | None] | ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | Index | Series`, found `Unknown | None`
|
||||
pandas/core/indexes/range.py:808:9: error[invalid-method-override] Invalid override of method `sort_values`: Definition is incompatible with `Index.sort_values`
|
||||
pandas/core/indexes/range.py:817:20: error[invalid-return-type] Return type does not match returned value: expected `Self@sort_values | tuple[Self@sort_values, ndarray[tuple[Any, ...], dtype[Any]] | RangeIndex]`, found `RangeIndex | tuple[RangeIndex, ndarray[tuple[Any, ...], dtype[Any]]]`
|
||||
pandas/core/indexes/range.py:1184:9: error[invalid-method-override] Invalid override of method `_concat`: Definition is incompatible with `Index._concat`
|
||||
pandas/core/indexes/range.py:1289:27: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc`, found `~EllipsisType & ~slice[object, object, object]`
|
||||
pandas/core/indexes/range.py:1305:23: error[unresolved-attribute] Object of type `~EllipsisType & ~slice[object, object, object]` has no attribute `to_numpy`
|
||||
pandas/core/indexing.py:772:16: error[invalid-return-type] Return type does not match returned value: expected `Self@__call__`, found `_LocationIndexer`
|
||||
pandas/core/indexing.py:1242:6: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property`
|
||||
pandas/core/indexing.py:1430:24: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Iterable[Unknown]`, found `object`
|
||||
pandas/core/indexing.py:1447:45: error[unsupported-operator] Operator `>` is not supported for types `object` and `int`, in comparing `object` with `Literal[1]`
|
||||
|
|
@ -554,26 +577,16 @@ pandas/core/indexing.py:2384:49: error[index-out-of-bounds] Index 1 is out of bo
|
|||
pandas/core/indexing.py:2557:6: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property`
|
||||
pandas/core/indexing.py:2607:6: error[invalid-argument-type] Argument to function `doc` is incorrect: Expected `None | str | ((...) -> Unknown)`, found `property`
|
||||
pandas/core/internals/api.py:113:57: error[invalid-argument-type] Argument to function `extract_pandas_array` is incorrect: Expected `int`, found `Unknown | None`
|
||||
pandas/core/internals/blocks.py:260:16: error[invalid-return-type] Return type does not match returned value: expected `Self@make_block_same_class`, found `Block`
|
||||
pandas/core/internals/blocks.py:287:16: error[invalid-return-type] Return type does not match returned value: expected `Self@slice_block_columns`, found `Block`
|
||||
pandas/core/internals/blocks.py:302:16: error[invalid-return-type] Return type does not match returned value: expected `Self@take_block_columns`, found `Block`
|
||||
pandas/core/internals/blocks.py:315:16: error[invalid-return-type] Return type does not match returned value: expected `Self@getitem_block_columns`, found `Block`
|
||||
pandas/core/internals/blocks.py:649:16: error[invalid-return-type] Return type does not match returned value: expected `Self@copy`, found `Block`
|
||||
pandas/core/internals/blocks.py:2089:16: error[invalid-return-type] Return type does not match returned value: expected `Self@slice_block_rows`, found `ExtensionBlock`
|
||||
pandas/core/internals/construction.py:286:39: error[invalid-argument-type] Argument to function `_check_values_indices_shape_match` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `Unknown | ndarray[tuple[Any, ...], dtype[Any]] | ExtensionArray`
|
||||
pandas/core/internals/construction.py:1021:46: error[invalid-argument-type] Argument to function `maybe_cast_to_datetime` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]] | list[Unknown]`, found `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]`
|
||||
pandas/core/internals/managers.py:235:13: error[unresolved-attribute] Object of type `Self@blknos` has no attribute `_rebuild_blknos_and_blklocs`
|
||||
pandas/core/internals/managers.py:246:13: error[unresolved-attribute] Object of type `Self@blklocs` has no attribute `_rebuild_blknos_and_blklocs`
|
||||
pandas/core/internals/managers.py:762:16: error[invalid-return-type] Return type does not match returned value: expected `Self@consolidate`, found `BaseBlockManager`
|
||||
pandas/core/internals/managers.py:1225:17: error[invalid-assignment] Invalid subscript assignment with key of type `Unknown | BlockPlacement` and value of type `ndarray[tuple[Any, ...], dtype[Any]]` on object of type `list[Unknown | None]`
|
||||
pandas/core/internals/managers.py:1695:16: error[invalid-return-type] Return type does not match returned value: expected `Self@quantile`, found `BlockManager`
|
||||
pandas/core/internals/managers.py:2108:20: error[invalid-return-type] Return type does not match returned value: expected `Self@get_rows_with_mask`, found `SingleBlockManager`
|
||||
pandas/core/internals/managers.py:2122:16: error[invalid-return-type] Return type does not match returned value: expected `Self@get_rows_with_mask`, found `SingleBlockManager`
|
||||
pandas/core/internals/managers.py:1656:9: error[invalid-method-override] Invalid override of method `_equal_values`: Definition is incompatible with `BaseBlockManager._equal_values`
|
||||
pandas/core/internals/managers.py:2231:9: error[invalid-method-override] Invalid override of method `_equal_values`: Definition is incompatible with `BaseBlockManager._equal_values`
|
||||
pandas/core/missing.py:608:19: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Literal["linear", "nearest", "nearest-up", "slinear", "zero", ... omitted 4 literals] | int`, found `Unknown | None | (str & ~Literal["polynomial"])`
|
||||
pandas/core/missing.py:613:28: error[unsupported-operator] Operator `<=` is not supported for types `None` and `int`, in comparing `Unknown | None` with `Literal[0]`
|
||||
pandas/core/missing.py:617:51: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `Literal[1, 2, 3, 4, 5]`, found `Unknown | None`
|
||||
pandas/core/nanops.py:82:26: error[unresolved-attribute] Object of type `F@__call__` has no attribute `__name__`
|
||||
pandas/core/nanops.py:106:32: error[unresolved-attribute] Object of type `F@__call__` has no attribute `__name__`
|
||||
pandas/core/nanops.py:657:20: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[Any]] | datetime64[date | int | None] | timedelta64[timedelta | int | None] | NaTType`, found `signedinteger[_64Bit]`
|
||||
pandas/core/nanops.py:908:12: error[invalid-return-type] Return type does not match returned value: expected `tuple[int | float | ndarray[tuple[Any, ...], dtype[Any]], int | float | ndarray[tuple[Any, ...], dtype[Any]]]`, found `tuple[floating[Any] | @Todo | int | float | ndarray[tuple[Any, ...], dtype[Any]], Unknown | int | float]`
|
||||
pandas/core/nanops.py:1525:12: warning[possibly-missing-attribute] Attribute `astype` may be missing on object of type `@Todo | int`
|
||||
|
|
@ -583,6 +596,8 @@ pandas/core/nanops.py:1563:30: error[no-matching-overload] No overload of bound
|
|||
pandas/core/nanops.py:1563:30: error[no-matching-overload] No overload of bound method `astype` matches arguments
|
||||
pandas/core/ops/array_ops.py:340:44: error[invalid-argument-type] Argument to function `invalid_comparison` is incorrect: Expected `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]] | list[Unknown] | ... omitted 13 union elements`, found `~Top[list[Unknown]] | @Todo`
|
||||
pandas/core/resample.py:442:45: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `((...) -> Unknown) | str | list[((...) -> Unknown) | str] | MutableMapping[Hashable, ((...) -> Unknown) | str | list[((...) -> Unknown) | str]]`, found `Unknown | None`
|
||||
pandas/core/resample.py:2110:9: error[invalid-method-override] Invalid override of method `_upsample`: Definition is incompatible with `Resampler._upsample`
|
||||
pandas/core/resample.py:2242:9: error[invalid-method-override] Invalid override of method `_upsample`: Definition is incompatible with `Resampler._upsample`
|
||||
pandas/core/resample.py:2574:26: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | BaseOffset | _NoDefault`, found `Unknown | None`
|
||||
pandas/core/resample.py:2574:26: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | BaseOffset | _NoDefault`, found `Unknown | None`
|
||||
pandas/core/resample.py:2581:13: error[invalid-argument-type] Argument to function `_get_timestamp_range_edges` is incorrect: Expected `BaseOffset`, found `Unknown | None`
|
||||
|
|
@ -605,8 +620,8 @@ pandas/core/reshape/merge.py:1649:25: warning[redundant-cast] Value is already o
|
|||
pandas/core/reshape/merge.py:1671:25: warning[redundant-cast] Value is already of type `Hashable`
|
||||
pandas/core/reshape/merge.py:1954:16: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `Unknown | (Hashable & ~None)`
|
||||
pandas/core/reshape/merge.py:1954:33: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `Unknown | (Hashable & ~None)`
|
||||
pandas/core/reshape/merge.py:2434:41: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `Unknown | None | list[Divergent]`
|
||||
pandas/core/reshape/merge.py:2438:24: error[unsupported-operator] Operator `+` is unsupported between objects of type `Unknown | None | list[Divergent]` and `list[Unknown]`
|
||||
pandas/core/reshape/merge.py:2434:41: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `Unknown | None | list[Divergent] | list[Unknown | None | list[Divergent]]`
|
||||
pandas/core/reshape/merge.py:2438:24: error[unsupported-operator] Operator `+` is unsupported between objects of type `Unknown | None | list[Divergent] | list[Unknown | None | list[Divergent]]` and `list[Unknown]`
|
||||
pandas/core/reshape/merge.py:2920:32: error[invalid-argument-type] Argument to bound method `factorize` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[Any, ...], dtype[Any]] | Unknown | ExtensionArray`
|
||||
pandas/core/reshape/merge.py:2922:48: error[invalid-argument-type] Argument to bound method `hash_inner_join` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[Any, ...], dtype[Any]] | Unknown | (ExtensionArray & ~BaseMaskedArray & ~ArrowExtensionArray)`
|
||||
pandas/core/reshape/merge.py:2925:36: error[invalid-argument-type] Argument to bound method `factorize` is incorrect: Expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[Any, ...], dtype[Any]] | Unknown | (ExtensionArray & ~BaseMaskedArray & ~ArrowExtensionArray)`
|
||||
|
|
@ -618,6 +633,7 @@ pandas/core/reshape/tile.py:542:18: error[no-matching-overload] No overload of f
|
|||
pandas/core/series.py:341:16: error[invalid-type-form] Invalid subscript of object of type `Accessor` in type expression
|
||||
pandas/core/series.py:341:21: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression
|
||||
pandas/core/series.py:908:23: error[invalid-type-form] Invalid subscript of object of type `Accessor` in type expression
|
||||
pandas/core/series.py:939:9: error[invalid-method-override] Invalid override of method `__getitem__`: Definition is incompatible with `NDFrame.__getitem__`
|
||||
pandas/core/series.py:1432:27: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression
|
||||
pandas/core/series.py:1444:17: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression
|
||||
pandas/core/series.py:1445:23: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression
|
||||
|
|
@ -643,6 +659,7 @@ pandas/core/series.py:1608:10: error[invalid-type-form] Variable of type `Access
|
|||
pandas/core/series.py:2835:43: error[unresolved-attribute] Object of type `int` has no attribute `is_integer`
|
||||
pandas/core/series.py:4642:32: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `((...) -> Unknown) | str | list[((...) -> Unknown) | str] | MutableMapping[Hashable, ((...) -> Unknown) | str | list[((...) -> Unknown) | str]]`, found `(Unknown & ~None) | dict[str, Unknown]`
|
||||
pandas/core/series.py:5073:20: error[no-matching-overload] No overload of bound method `_rename` matches arguments
|
||||
pandas/core/series.py:5391:9: error[invalid-method-override] Invalid override of method `rename_axis`: Definition is incompatible with `NDFrame.rename_axis`
|
||||
pandas/core/series.py:5461:16: error[invalid-return-type] Return type does not match returned value: expected `Self@rename_axis | None`, found `Series | None`
|
||||
pandas/core/series.py:5650:17: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression
|
||||
pandas/core/series.py:5652:30: error[invalid-type-form] Variable of type `Accessor` is not allowed in a type expression
|
||||
|
|
@ -651,12 +668,11 @@ pandas/core/series.py:6471:15: error[invalid-type-form] Variable of type `Access
|
|||
pandas/core/series.py:6535:19: error[invalid-type-form] Invalid subscript of object of type `Accessor` in type expression
|
||||
pandas/core/sorting.py:429:13: error[unknown-argument] Argument `ascending` does not match any known parameter of bound method `argsort`
|
||||
pandas/core/sorting.py:431:13: error[unknown-argument] Argument `na_position` does not match any known parameter of bound method `argsort`
|
||||
pandas/core/strings/accessor.py:134:21: error[unresolved-attribute] Object of type `F@forbid_nonstring_types` has no attribute `__name__`
|
||||
pandas/core/strings/accessor.py:310:33: error[unresolved-attribute] Module `pyarrow` has no member `compute`
|
||||
pandas/core/strings/accessor.py:311:27: error[unresolved-attribute] Module `pyarrow` has no member `compute`
|
||||
pandas/core/strings/accessor.py:312:27: error[unresolved-attribute] Module `pyarrow` has no member `compute`
|
||||
pandas/core/strings/accessor.py:321:25: error[unresolved-attribute] Module `pyarrow` has no member `compute`
|
||||
pandas/core/strings/accessor.py:331:21: error[unresolved-attribute] Module `pyarrow` has no member `compute`
|
||||
pandas/core/strings/accessor.py:310:33: warning[possibly-missing-attribute] Submodule `compute` may not be available as an attribute on module `pyarrow`
|
||||
pandas/core/strings/accessor.py:311:27: warning[possibly-missing-attribute] Submodule `compute` may not be available as an attribute on module `pyarrow`
|
||||
pandas/core/strings/accessor.py:312:27: warning[possibly-missing-attribute] Submodule `compute` may not be available as an attribute on module `pyarrow`
|
||||
pandas/core/strings/accessor.py:321:25: warning[possibly-missing-attribute] Submodule `compute` may not be available as an attribute on module `pyarrow`
|
||||
pandas/core/strings/accessor.py:331:21: warning[possibly-missing-attribute] Submodule `compute` may not be available as an attribute on module `pyarrow`
|
||||
pandas/core/strings/accessor.py:396:30: warning[possibly-missing-attribute] Attribute `dtype` may be missing on object of type `(Unknown & <Protocol with members 'ndim'> & <Protocol with members 'dtype'>) | dict[Unknown, ArrowExtensionArray | Unknown] | list[Unknown]`
|
||||
pandas/core/strings/accessor.py:1411:20: warning[possibly-missing-attribute] Attribute `flags` may be missing on object of type `str | Pattern[Unknown]`
|
||||
pandas/core/strings/accessor.py:1426:33: warning[possibly-missing-attribute] Attribute `flags` may be missing on object of type `str | Pattern[Unknown] | Pattern[str]`
|
||||
|
|
@ -664,9 +680,9 @@ pandas/core/strings/accessor.py:1431:38: warning[possibly-missing-attribute] Att
|
|||
pandas/core/tools/datetimes.py:393:35: error[invalid-argument-type] Argument to function `is_supported_dtype` is incorrect: Expected `dtype[Any]`, found `(Any & ~DatetimeTZDtype) | None`
|
||||
pandas/core/tools/datetimes.py:1062:22: error[invalid-assignment] Object of type `bool` is not assignable to `Timestamp | NaTType | Series | Index`
|
||||
pandas/core/util/hashing.py:314:16: error[no-matching-overload] No overload of bound method `astype` matches arguments
|
||||
pandas/core/util/numba_.py:79:8: error[unresolved-attribute] Module `numba` has no member `extending`
|
||||
pandas/core/util/numba_.py:79:8: warning[possibly-missing-attribute] Submodule `extending` may not be available as an attribute on module `numba`
|
||||
pandas/core/util/numba_.py:82:22: error[unresolved-attribute] Object of type `(...) -> Unknown` has no attribute `__name__`
|
||||
pandas/core/util/numba_.py:89:22: error[unresolved-attribute] Module `numba` has no member `extending`
|
||||
pandas/core/util/numba_.py:89:22: warning[possibly-missing-attribute] Submodule `extending` may not be available as an attribute on module `numba`
|
||||
pandas/core/window/ewm.py:913:38: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `BaseGrouper`, found `Unknown | None`
|
||||
pandas/core/window/numba_.py:67:18: error[not-iterable] Object of type `prange` is not iterable
|
||||
pandas/core/window/numba_.py:131:18: error[not-iterable] Object of type `prange` is not iterable
|
||||
|
|
@ -743,7 +759,12 @@ pandas/io/excel/_base.py:852:17: error[invalid-assignment] Invalid subscript ass
|
|||
pandas/io/excel/_base.py:852:57: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> Unknown, (s: slice[Any, Any, Any], /) -> list[Unknown]]` cannot be called with key of type `object` on object of type `list[Unknown]`
|
||||
pandas/io/excel/_base.py:855:54: error[invalid-argument-type] Method `__getitem__` of type `Overload[(i: SupportsIndex, /) -> Unknown, (s: slice[Any, Any, Any], /) -> list[Unknown]]` cannot be called with key of type `object` on object of type `list[Unknown]`
|
||||
pandas/io/excel/_base.py:1366:16: error[invalid-return-type] Return type does not match returned value: expected `tuple[int | float | str | date, str | None]`, found `tuple[Unknown | int | float | Decimal | str, None | Unknown | str]`
|
||||
pandas/io/excel/_calamine.py:100:9: error[invalid-method-override] Invalid override of method `get_sheet_data`: Definition is incompatible with `BaseExcelReader.get_sheet_data`
|
||||
pandas/io/excel/_odfreader.py:102:9: error[invalid-method-override] Invalid override of method `get_sheet_data`: Definition is incompatible with `BaseExcelReader.get_sheet_data`
|
||||
pandas/io/excel/_odswriter.py:68:23: error[invalid-type-form] Variable of type `def OpenDocumentSpreadsheet() -> Unknown` is not allowed in a type expression
|
||||
pandas/io/excel/_openpyxl.py:614:9: error[invalid-method-override] Invalid override of method `get_sheet_data`: Definition is incompatible with `BaseExcelReader.get_sheet_data`
|
||||
pandas/io/excel/_pyxlsb.py:97:9: error[invalid-method-override] Invalid override of method `get_sheet_data`: Definition is incompatible with `BaseExcelReader.get_sheet_data`
|
||||
pandas/io/excel/_xlrd.py:79:9: error[invalid-method-override] Invalid override of method `get_sheet_data`: Definition is incompatible with `BaseExcelReader.get_sheet_data`
|
||||
pandas/io/formats/excel.py:252:21: error[invalid-argument-type] Argument to function `remove_none` is incorrect: Expected `dict[str, str | None]`, found `dict[Unknown | str, Unknown | dict[str, bool | str | None] | dict[str, dict[str, str | None]] | dict[str, int | float | str | None] | dict[str, str | None]]`
|
||||
pandas/io/formats/excel.py:253:16: error[invalid-return-type] Return type does not match returned value: expected `dict[str, dict[str, str]]`, found `dict[Unknown | str, Unknown | dict[str, bool | str | None] | dict[str, dict[str, str | None]] | dict[str, int | float | str | None] | dict[str, str | None]]`
|
||||
pandas/io/formats/format.py:572:22: error[invalid-assignment] Object of type `(Sequence[str | int] & Top[Mapping[Unknown, object]] & ~int & ~str) | (Mapping[Hashable, str | int] & ~int & ~str)` is not assignable to `Mapping[Hashable, str | int]`
|
||||
|
|
@ -774,7 +795,7 @@ pandas/io/formats/style.py:2732:13: warning[possibly-missing-attribute] Attribut
|
|||
pandas/io/formats/style.py:2732:38: error[invalid-argument-type] Argument to bound method `extend` is incorrect: Expected `Iterable[CSSDict]`, found `dict[Any, list[CSSDict]] | list[CSSDict] | None`
|
||||
pandas/io/formats/style.py:4022:41: error[invalid-argument-type] Argument to function `_validate_apply_axis_arg` is incorrect: Expected `NDFrame | Sequence[Unknown] | ndarray[tuple[Any, ...], dtype[Any]]`, found `bytes | (date & Iterable[object]) | (timedelta & Iterable[object]) | ... omitted 12 union elements`
|
||||
pandas/io/formats/style.py:4025:42: error[invalid-argument-type] Argument to function `_validate_apply_axis_arg` is incorrect: Expected `NDFrame | Sequence[Unknown] | ndarray[tuple[Any, ...], dtype[Any]]`, found `bytes | (date & Iterable[object]) | (timedelta & Iterable[object]) | ... omitted 12 union elements`
|
||||
pandas/io/formats/style.py:4234:20: error[invalid-assignment] Object of type `tuple[floating[Any], Literal["zero"]]` is not assignable to `int | float`
|
||||
pandas/io/formats/style.py:4234:20: error[invalid-assignment] Object of type `floating[Any]` is not assignable to `int | float`
|
||||
pandas/io/formats/style_render.py:1222:17: error[invalid-argument-type] Argument to function `_maybe_wrap_formatter` is incorrect: Expected `str | ((...) -> Unknown) | None`, found `object`
|
||||
pandas/io/formats/style_render.py:1402:25: error[invalid-assignment] Object of type `dict[int | Unknown, object]` is not assignable to `str | ((...) -> Unknown) | dict[Any, str | ((...) -> Unknown) | None] | None`
|
||||
pandas/io/formats/style_render.py:1409:17: warning[possibly-missing-attribute] Attribute `get` may be missing on object of type `dict[Any, str | ((...) -> Unknown) | None] | str | ((...) -> Unknown) | None`
|
||||
|
|
@ -786,6 +807,9 @@ pandas/io/formats/style_render.py:1878:12: error[invalid-return-type] Return typ
|
|||
pandas/io/formats/xml.py:449:14: error[unresolved-import] Cannot resolve imported module `lxml.etree`
|
||||
pandas/io/formats/xml.py:511:14: error[unresolved-import] Cannot resolve imported module `lxml.etree`
|
||||
pandas/io/formats/xml.py:523:14: error[unresolved-import] Cannot resolve imported module `lxml.etree`
|
||||
pandas/io/html.py:639:9: error[invalid-method-override] Invalid override of method `_parse_td`: Definition is incompatible with `_HtmlFrameParser._parse_td`
|
||||
pandas/io/html.py:731:9: error[invalid-method-override] Invalid override of method `_parse_td`: Definition is incompatible with `_HtmlFrameParser._parse_td`
|
||||
pandas/io/html.py:736:9: error[invalid-method-override] Invalid override of method `_parse_tables`: Definition is incompatible with `_HtmlFrameParser._parse_tables`
|
||||
pandas/io/html.py:784:14: error[unresolved-import] Cannot resolve imported module `lxml.etree`
|
||||
pandas/io/json/_json.py:792:19: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `JsonReader[FrameSeriesStrT@JsonReader]`, found `JsonReader[str]`
|
||||
pandas/io/json/_json.py:1025:38: error[invalid-argument-type] Argument to bound method `__init__` is incorrect: Expected `ExtensionDtype | str | dtype[Any] | ... omitted 3 union elements`, found `Unknown | bool | None | str | _NoDefault`
|
||||
|
|
@ -883,48 +907,47 @@ pandas/io/xml.py:46:22: error[unresolved-import] Module `lxml` has no member `et
|
|||
pandas/io/xml.py:545:14: error[unresolved-import] Cannot resolve imported module `lxml.etree`
|
||||
pandas/io/xml.py:617:14: error[unresolved-import] Cannot resolve imported module `lxml.etree`
|
||||
pandas/io/xml.py:655:14: error[unresolved-import] Cannot resolve imported module `lxml.etree`
|
||||
pandas/plotting/_matplotlib/boxplot.py:278:9: error[unresolved-attribute] Module `matplotlib` has no member `artist`
|
||||
pandas/plotting/_matplotlib/boxplot.py:280:9: error[unresolved-attribute] Module `matplotlib` has no member `artist`
|
||||
pandas/plotting/_matplotlib/boxplot.py:282:9: error[unresolved-attribute] Module `matplotlib` has no member `artist`
|
||||
pandas/plotting/_matplotlib/boxplot.py:284:9: error[unresolved-attribute] Module `matplotlib` has no member `artist`
|
||||
pandas/plotting/_matplotlib/boxplot.py:278:9: warning[possibly-missing-attribute] Submodule `artist` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/boxplot.py:280:9: warning[possibly-missing-attribute] Submodule `artist` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/boxplot.py:282:9: warning[possibly-missing-attribute] Submodule `artist` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/boxplot.py:284:9: warning[possibly-missing-attribute] Submodule `artist` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/boxplot.py:338:14: error[non-subscriptable] Cannot subscript object of type `None` with no `__getitem__` method
|
||||
pandas/plotting/_matplotlib/boxplot.py:338:27: error[invalid-argument-type] Argument to function `len` is incorrect: Expected `Sized`, found `Unknown | None | list[Unknown | None]`
|
||||
pandas/plotting/_matplotlib/converter.py:78:12: error[invalid-return-type] Return type does not match returned value: expected `list[tuple[type, type[DateConverter]]]`, found `list[Unknown | tuple[<class 'Timestamp'>, <class 'DatetimeConverter'>] | tuple[<class 'Period'>, <class 'PeriodConverter'>] | ... omitted 4 union elements]`
|
||||
pandas/plotting/_matplotlib/converter.py:172:18: error[unresolved-attribute] Module `matplotlib` has no member `ticker`
|
||||
pandas/plotting/_matplotlib/converter.py:182:21: error[unresolved-attribute] Module `matplotlib` has no member `ticker`
|
||||
pandas/plotting/_matplotlib/converter.py:157:9: error[invalid-method-override] Invalid override of method `convert`: Definition is incompatible with `ConversionInterface.convert`
|
||||
pandas/plotting/_matplotlib/converter.py:172:18: warning[possibly-missing-attribute] Submodule `ticker` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/converter.py:182:21: warning[possibly-missing-attribute] Submodule `ticker` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/converter.py:227:9: error[invalid-method-override] Invalid override of method `convert`: Definition is incompatible with `DateConverter.convert`
|
||||
pandas/plotting/_matplotlib/converter.py:236:16: error[no-matching-overload] No overload of function `to_offset` matches arguments
|
||||
pandas/plotting/_matplotlib/converter.py:291:9: error[invalid-method-override] Invalid override of method `convert`: Definition is incompatible with `DateConverter.convert`
|
||||
pandas/plotting/_matplotlib/converter.py:841:12: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[int], list[Unknown | tuple[str, <class 'int'>] | tuple[str, <class 'bool'>] | tuple[str, str]]]`
|
||||
pandas/plotting/_matplotlib/converter.py:889:12: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[int], list[Unknown | tuple[str, <class 'int'>] | tuple[str, <class 'bool'>] | tuple[str, str]]]`
|
||||
pandas/plotting/_matplotlib/converter.py:912:12: error[invalid-return-type] Return type does not match returned value: expected `ndarray[tuple[Any, ...], dtype[Any]]`, found `ndarray[tuple[int], list[Unknown | tuple[str, <class 'int'>] | tuple[str, <class 'bool'>] | tuple[str, str]]]`
|
||||
pandas/plotting/_matplotlib/converter.py:932:30: error[unresolved-attribute] Module `matplotlib` has no member `ticker`
|
||||
pandas/plotting/_matplotlib/converter.py:1013:16: error[unresolved-attribute] Module `matplotlib` has no member `transforms`
|
||||
pandas/plotting/_matplotlib/converter.py:1021:32: error[unresolved-attribute] Module `matplotlib` has no member `ticker`
|
||||
pandas/plotting/_matplotlib/converter.py:1097:37: error[unresolved-attribute] Module `matplotlib` has no member `ticker`
|
||||
pandas/plotting/_matplotlib/core.py:111:20: error[unresolved-attribute] Module `matplotlib` has no member `colors`
|
||||
pandas/plotting/_matplotlib/converter.py:932:30: warning[possibly-missing-attribute] Submodule `ticker` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/converter.py:1013:16: warning[possibly-missing-attribute] Submodule `transforms` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/converter.py:1021:32: warning[possibly-missing-attribute] Submodule `ticker` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/converter.py:1097:37: warning[possibly-missing-attribute] Submodule `ticker` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/core.py:541:20: error[invalid-return-type] Return type does not match returned value: expected `Axes`, found `object`
|
||||
pandas/plotting/_matplotlib/core.py:745:21: error[unresolved-attribute] Object of type `object` has no attribute `yaxis`
|
||||
pandas/plotting/_matplotlib/core.py:756:21: error[unresolved-attribute] Object of type `object` has no attribute `yaxis`
|
||||
pandas/plotting/_matplotlib/core.py:1063:35: error[invalid-return-type] Function can implicitly return `None`, which is not assignable to return type `bool`
|
||||
pandas/plotting/_matplotlib/core.py:1240:32: error[unresolved-attribute] Module `matplotlib` has no member `axes`
|
||||
pandas/plotting/_matplotlib/core.py:1383:21: error[unresolved-attribute] Module `matplotlib` has no member `patches`
|
||||
pandas/plotting/_matplotlib/core.py:1445:17: error[unresolved-attribute] Module `matplotlib` has no member `colors`
|
||||
pandas/plotting/_matplotlib/core.py:1240:32: warning[possibly-missing-attribute] Submodule `axes` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/core.py:1383:21: warning[possibly-missing-attribute] Submodule `patches` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/core.py:1457:39: error[invalid-argument-type] Argument to bound method `get_cmap` is incorrect: Expected `str | Colormap`, found `Unknown | None`
|
||||
pandas/plotting/_matplotlib/core.py:1477:20: error[unresolved-attribute] Module `matplotlib` has no member `colors`
|
||||
pandas/plotting/_matplotlib/core.py:1479:20: error[unresolved-attribute] Module `matplotlib` has no member `colors`
|
||||
pandas/plotting/_matplotlib/misc.py:131:22: error[unresolved-attribute] Module `matplotlib` has no member `lines`
|
||||
pandas/plotting/_matplotlib/misc.py:192:18: error[unresolved-attribute] Module `matplotlib` has no member `patches`
|
||||
pandas/plotting/_matplotlib/misc.py:195:22: error[unresolved-attribute] Module `matplotlib` has no member `patches`
|
||||
pandas/plotting/_matplotlib/misc.py:131:22: warning[possibly-missing-attribute] Submodule `lines` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/misc.py:192:18: warning[possibly-missing-attribute] Submodule `patches` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/misc.py:195:22: warning[possibly-missing-attribute] Submodule `patches` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/misc.py:416:27: error[invalid-argument-type] Argument to bound method `axvline` is incorrect: Expected `int | float`, found `Unknown | int | str`
|
||||
pandas/plotting/_matplotlib/misc.py:416:27: error[invalid-argument-type] Argument to bound method `axvline` is incorrect: Expected `int | float`, found `Unknown | int | str`
|
||||
pandas/plotting/_matplotlib/style.py:99:16: error[invalid-return-type] Return type does not match returned value: expected `dict[str, str | Sequence[int | float]] | list[str | Sequence[int | float]]`, found `dict[str, str | Sequence[int | float]] | (Sequence[str | Sequence[int | float]] & Top[dict[Unknown, Unknown]]) | (Sequence[int | float] & Top[dict[Unknown, Unknown]])`
|
||||
pandas/plotting/_matplotlib/timeseries.py:120:38: error[invalid-argument-type] Argument to function `_replot_ax` is incorrect: Expected `Axes`, found `~None`
|
||||
pandas/plotting/_matplotlib/timeseries.py:360:23: error[invalid-argument-type] Argument to function `decorate_axes` is incorrect: Expected `Axes`, found `object`
|
||||
pandas/plotting/_matplotlib/timeseries.py:362:23: error[invalid-argument-type] Argument to function `decorate_axes` is incorrect: Expected `Axes`, found `object`
|
||||
pandas/plotting/_matplotlib/tools.py:82:12: error[unresolved-attribute] Module `matplotlib` has no member `table`
|
||||
pandas/plotting/_matplotlib/tools.py:332:45: error[unresolved-attribute] Module `matplotlib` has no member `ticker`
|
||||
pandas/plotting/_matplotlib/tools.py:333:32: error[unresolved-attribute] Module `matplotlib` has no member `ticker`
|
||||
pandas/plotting/_matplotlib/tools.py:334:47: error[unresolved-attribute] Module `matplotlib` has no member `ticker`
|
||||
pandas/plotting/_matplotlib/tools.py:335:34: error[unresolved-attribute] Module `matplotlib` has no member `ticker`
|
||||
pandas/plotting/_matplotlib/tools.py:82:12: warning[possibly-missing-attribute] Submodule `table` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/tools.py:332:45: warning[possibly-missing-attribute] Submodule `ticker` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/tools.py:333:32: warning[possibly-missing-attribute] Submodule `ticker` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/tools.py:334:47: warning[possibly-missing-attribute] Submodule `ticker` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/tools.py:335:34: warning[possibly-missing-attribute] Submodule `ticker` may not be available as an attribute on module `matplotlib`
|
||||
pandas/plotting/_matplotlib/tools.py:477:18: error[unresolved-attribute] Object of type `object` has no attribute `get_lines`
|
||||
pandas/plotting/_matplotlib/tools.py:480:18: error[unresolved-attribute] Object of type `object` has no attribute `get_lines`
|
||||
pandas/tseries/holiday.py:325:48: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `SupportsIndex`, found `Unknown | None`
|
||||
|
|
@ -940,7 +963,5 @@ pandas/util/_decorators.py:377:21: error[invalid-argument-type] Argument to boun
|
|||
pandas/util/_exceptions.py:45:15: error[no-matching-overload] No overload of function `dirname` matches arguments
|
||||
pandas/util/_print_versions.py:29:14: error[unresolved-import] Cannot resolve imported module `pandas._version_meson`
|
||||
pandas/util/_validators.py:388:33: error[invalid-argument-type] Argument to function `validate_bool_kwarg` is incorrect: Argument type `object` does not satisfy constraints (`bool`, `int`, `None`) of type variable `BoolishNoneT`
|
||||
typings/numba.pyi:20:7: error[unresolved-attribute] Module `numba.core.types` has no member `abstract`
|
||||
typings/numba.pyi:21:12: error[unresolved-attribute] Module `numba.core.types` has no member `abstract`
|
||||
typings/numba.pyi:24:21: error[unresolved-attribute] Module `numba` has no member `compiler`
|
||||
Found 945 diagnostics
|
||||
Found 966 diagnostics
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ src/prefect/events/utilities.py:96:27: error[invalid-argument-type] Argument is
|
|||
src/prefect/events/utilities.py:96:27: error[invalid-argument-type] Argument is incorrect: Expected `dict[str, Any]`, found `Any | dict[str, Any] | None`
|
||||
src/prefect/events/utilities.py:96:27: error[invalid-argument-type] Argument is incorrect: Expected `UUID`, found `Any | dict[str, Any] | None`
|
||||
src/prefect/events/utilities.py:96:27: error[invalid-argument-type] Argument is incorrect: Expected `UUID | None`, found `Any | dict[str, Any] | None`
|
||||
src/prefect/events/worker.py:74:9: error[invalid-method-override] Invalid override of method `_prepare_item`: Definition is incompatible with `QueueService._prepare_item`
|
||||
src/prefect/events/worker.py:78:15: error[invalid-method-override] Invalid override of method `_handle`: Definition is incompatible with `QueueService._handle`
|
||||
src/prefect/events/worker.py:100:9: error[invalid-method-override] Invalid override of method `instance`: Definition is incompatible with `_QueueServiceBase.instance`
|
||||
src/prefect/input/actions.py:46:49: warning[deprecated] The function `json` is deprecated: The `json` method is deprecated; use `model_dump_json` instead.
|
||||
src/prefect/server/models/artifacts.py:449:12: error[unresolved-attribute] Object of type `Result[Unknown]` has no attribute `rowcount`
|
||||
src/prefect/server/models/artifacts.py:449:39: error[unresolved-attribute] Object of type `Result[Unknown]` has no attribute `rowcount`
|
||||
|
|
@ -87,34 +90,34 @@ src/prefect/server/models/variables.py:154:12: error[unresolved-attribute] Objec
|
|||
src/prefect/server/models/variables.py:168:12: error[unresolved-attribute] Object of type `Result[Any]` has no attribute `rowcount`
|
||||
src/prefect/server/models/work_queues.py:282:15: error[unresolved-attribute] Object of type `Result[Unknown]` has no attribute `rowcount`
|
||||
src/prefect/server/models/work_queues.py:311:12: error[unresolved-attribute] Object of type `Result[Any]` has no attribute `rowcount`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `Operator`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterId | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterName | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterTags | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterDeploymentId | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterWorkQueueName | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterFlowVersion | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterStartTime | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterEndTime | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterExpectedStartTime | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterNextScheduledStartTime | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterParentFlowRunId | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterParentTaskRunId | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterIdempotencyKey | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `Operator`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterId | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterName | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterTags | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterDeploymentId | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterWorkQueueName | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterFlowVersion | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterStartTime | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterEndTime | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterExpectedStartTime | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterNextScheduledStartTime | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterParentFlowRunId | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterParentTaskRunId | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:403:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterIdempotencyKey | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:404:17: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterState | None`, found `dict[str, dict[str, list[Unknown | StateType]]]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `Operator`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterId | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterName | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterTags | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterDeploymentId | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterWorkQueueName | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterFlowVersion | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterStartTime | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterEndTime | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterExpectedStartTime | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterParentFlowRunId | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterParentTaskRunId | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterIdempotencyKey | None`, found `dict[str, Unknown] | dict[str, Unknown | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `Operator`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterId | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterName | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterTags | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterDeploymentId | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterWorkQueueName | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterFlowVersion | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterStartTime | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterEndTime | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterExpectedStartTime | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterParentFlowRunId | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterParentTaskRunId | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:421:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterIdempotencyKey | None`, found `dict[str, list[str] | None] | dict[str, list[UUID] | None | bool]`
|
||||
src/prefect/server/models/work_queues.py:422:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterState | None`, found `dict[str, dict[str, list[Unknown | StateType]]]`
|
||||
src/prefect/server/models/work_queues.py:423:13: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterNextScheduledStartTime | None`, found `dict[str, datetime | None]`
|
||||
src/prefect/server/models/work_queues.py:491:54: error[invalid-argument-type] Argument is incorrect: Expected `FlowRunFilterStateName | None`, found `dict[Unknown | str, Unknown | list[Unknown | str]]`
|
||||
|
|
@ -124,8 +127,8 @@ src/prefect/server/models/work_queues.py:628:13: error[invalid-argument-type] Ar
|
|||
src/prefect/server/models/workers.py:253:15: error[unresolved-attribute] Object of type `Result[Unknown]` has no attribute `rowcount`
|
||||
src/prefect/server/models/workers.py:289:12: error[unresolved-attribute] Object of type `Result[Any]` has no attribute `rowcount`
|
||||
src/prefect/server/models/workers.py:626:15: error[unresolved-attribute] Object of type `Result[Unknown]` has no attribute `rowcount`
|
||||
src/prefect/server/models/workers.py:672:12: error[unresolved-attribute] Module `sqlalchemy` has no member `exc`
|
||||
src/prefect/server/models/workers.py:672:12: warning[possibly-missing-attribute] Submodule `exc` may not be available as an attribute on module `sqlalchemy`
|
||||
src/prefect/server/models/workers.py:755:9: error[invalid-assignment] Invalid subscript assignment with key of type `Literal["heartbeat_interval_seconds"]` and value of type `int` on object of type `dict[str, datetime | WorkerStatus]`
|
||||
src/prefect/server/models/workers.py:770:12: error[unresolved-attribute] Object of type `Result[Unknown]` has no attribute `rowcount`
|
||||
src/prefect/server/models/workers.py:799:12: error[unresolved-attribute] Object of type `Result[Any]` has no attribute `rowcount`
|
||||
Found 130 diagnostics
|
||||
Found 133 diagnostics
|
||||
|
|
|
|||
|
|
@ -987,6 +987,8 @@ ERROR torch/_dynamo/utils.py:2484:5-16: No attribute `iinfo` in module `torch` [
|
|||
ERROR torch/_dynamo/utils.py:2490:12-18: Could not find import of `triton` [missing-import]
|
||||
ERROR torch/_dynamo/utils.py:2510:13-23: No attribute `Size` in module `torch` [missing-attribute]
|
||||
ERROR torch/_dynamo/utils.py:2532:21-54: Module `torch.nested._internal.nested_int` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import]
|
||||
ERROR torch/_dynamo/utils.py:2646:39-53: `type[Iterator]` is not assignable to `type[Iterator[Any]]` [bad-assignment]
|
||||
ERROR torch/_dynamo/utils.py:2647:39-59: `type[Iterator]` is not assignable to `type[Iterator[Any]]` [bad-assignment]
|
||||
ERROR torch/_dynamo/utils.py:2981:12-22: No attribute `sqrt` in module `torch` [missing-attribute]
|
||||
ERROR torch/_dynamo/utils.py:2981:23-33: No attribute `mean` in module `torch` [missing-attribute]
|
||||
ERROR torch/_dynamo/utils.py:2981:34-46: No attribute `square` in module `torch` [missing-attribute]
|
||||
|
|
@ -1275,6 +1277,7 @@ ERROR torch/_dynamo/variables/functions.py:628:18-44: Module `torch._dynamo.side
|
|||
ERROR torch/_dynamo/variables/functions.py:645:22-48: Module `torch._dynamo.side_effects` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import]
|
||||
ERROR torch/_dynamo/variables/functions.py:1839:34-47: Module `torch._guards` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import]
|
||||
WARN torch/_dynamo/variables/functions.py:1981:13-38: `torch.distributed.distributed_c10d._reduce_scatter_base` is deprecated [deprecated]
|
||||
ERROR torch/_dynamo/variables/functions.py:2193:33-45: `(...) -> object` is not assignable to attribute `traceable_fn` with type `_F` [bad-assignment]
|
||||
ERROR torch/_dynamo/variables/functions.py:2446:9-17: Class member `DynamoTritonHOPifier.call_HOP` overrides parent class `TritonHOPifier` in an inconsistent manner [bad-param-name-override]
|
||||
ERROR torch/_dynamo/variables/higher_order_ops.py:98:24-57: Argument `list[bool] | None` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
|
||||
ERROR torch/_dynamo/variables/higher_order_ops.py:98:66-83: Argument `list[Any] | None` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
|
||||
|
|
@ -4349,6 +4352,7 @@ ERROR torch/_inductor/codegen/simd_kernel_features.py:357:46-52: Argument `list[
|
|||
ERROR torch/_inductor/codegen/subgraph.py:97:44-56: Object of class `Expr` has no attribute `name` [missing-attribute]
|
||||
ERROR torch/_inductor/codegen/subgraph.py:98:56-68: Object of class `Expr` has no attribute `name` [missing-attribute]
|
||||
ERROR torch/_inductor/codegen/subgraph.py:373:31-42: No attribute `empty` in module `torch` [missing-attribute]
|
||||
ERROR torch/_inductor/codegen/triton_combo_kernel.py:619:26-44: Class `NoneType` has no class attribute `grid_expr` [missing-attribute]
|
||||
ERROR torch/_inductor/codegen/triton_split_scan.py:92:16-37: Could not find import of `triton.language` [missing-import]
|
||||
ERROR torch/_inductor/codegen/triton_split_scan.py:130:55-61: Argument `int` is not assignable to parameter `index` with type `Expr` in function `torch._inductor.codegen.simd.SIMDKernel.index_to_str` [bad-argument-type]
|
||||
ERROR torch/_inductor/codegen/triton_utils.py:39:25-44: No attribute `float8_e4m3fn` in module `torch` [missing-attribute]
|
||||
|
|
@ -12393,11 +12397,7 @@ ERROR torch/_weights_only_unpickler.py:217:9-47: No attribute `per_channel_affin
|
|||
ERROR torch/accelerator/__init__.py:96:59-71: No attribute `device` in module `torch` [missing-attribute]
|
||||
ERROR torch/accelerator/__init__.py:122:16-52: No attribute `_accelerator_getAccelerator` in module `torch._C` [missing-attribute]
|
||||
ERROR torch/accelerator/__init__.py:134:12-48: No attribute `_accelerator_getDeviceIndex` in module `torch._C` [missing-attribute]
|
||||
WARN torch/accelerator/__init__.py:137:22-140:24: `current_device_index` is deprecated [deprecated]
|
||||
WARN torch/accelerator/__init__.py:142:1-19: `current_device_index` is deprecated [deprecated]
|
||||
ERROR torch/accelerator/__init__.py:165:5-41: No attribute `_accelerator_setDeviceIndex` in module `torch._C` [missing-attribute]
|
||||
WARN torch/accelerator/__init__.py:168:18-171:20: `set_device_index` is deprecated [deprecated]
|
||||
WARN torch/accelerator/__init__.py:173:1-15: `set_device_index` is deprecated [deprecated]
|
||||
ERROR torch/accelerator/__init__.py:187:52-64: No attribute `Stream` in module `torch` [missing-attribute]
|
||||
ERROR torch/accelerator/__init__.py:199:12-43: No attribute `_accelerator_getStream` in module `torch._C` [missing-attribute]
|
||||
ERROR torch/accelerator/__init__.py:202:24-36: No attribute `Stream` in module `torch` [missing-attribute]
|
||||
|
|
@ -13115,6 +13115,12 @@ ERROR torch/ao/pruning/sparsifier/weight_norm_sparsifier.py:197:25-35: No attrib
|
|||
ERROR torch/ao/pruning/sparsifier/weight_norm_sparsifier.py:231:25-40: No attribute `ones_like` in module `torch` [missing-attribute]
|
||||
ERROR torch/ao/pruning/sparsifier/weight_norm_sparsifier.py:233:25-41: No attribute `zeros_like` in module `torch` [missing-attribute]
|
||||
ERROR torch/ao/pruning/sparsifier/weight_norm_sparsifier.py:249:31-47: No attribute `logical_or` in module `torch` [missing-attribute]
|
||||
WARN torch/ao/quantization/__init__.py:33:23-24: `prepare` is deprecated [deprecated]
|
||||
WARN torch/ao/quantization/__init__.py:33:23-24: `quantize` is deprecated [deprecated]
|
||||
WARN torch/ao/quantization/__init__.py:33:23-24: `quantize_dynamic` is deprecated [deprecated]
|
||||
WARN torch/ao/quantization/__init__.py:33:23-24: `prepare_qat` is deprecated [deprecated]
|
||||
WARN torch/ao/quantization/__init__.py:33:23-24: `quantize_qat` is deprecated [deprecated]
|
||||
WARN torch/ao/quantization/__init__.py:33:23-24: `convert` is deprecated [deprecated]
|
||||
ERROR torch/ao/quantization/__init__.py:217:16-27: No attribute `dtype` in module `torch` [missing-attribute]
|
||||
ERROR torch/ao/quantization/__init__.py:224:18-31: No attribute `qscheme` in module `torch` [missing-attribute]
|
||||
ERROR torch/ao/quantization/_correct_bias.py:147:30-40: No attribute `mean` in module `torch` [missing-attribute]
|
||||
|
|
@ -13811,6 +13817,7 @@ ERROR torch/ao/quantization/fx/convert.py:768:19-31: No attribute `device` in mo
|
|||
ERROR torch/ao/quantization/fx/convert.py:1284:54-60: Cannot index into `Module` [bad-index]
|
||||
ERROR torch/ao/quantization/fx/graph_module.py:136:39-60: No attribute `ScriptObject` in module `torch._C` [missing-attribute]
|
||||
ERROR torch/ao/quantization/fx/graph_module.py:179:40-61: No attribute `ScriptObject` in module `torch._C` [missing-attribute]
|
||||
WARN torch/ao/quantization/fx/lstm_utils.py:15:72-82: `prepare_fx` is deprecated [deprecated]
|
||||
WARN torch/ao/quantization/fx/lstm_utils.py:114:16-26: `torch.ao.quantization.quantize_fx.prepare_fx` is deprecated [deprecated]
|
||||
ERROR torch/ao/quantization/fx/lstm_utils.py:122:18-27: No attribute `add` in module `torch` [missing-attribute]
|
||||
ERROR torch/ao/quantization/fx/lstm_utils.py:123:18-27: No attribute `mul` in module `torch` [missing-attribute]
|
||||
|
|
@ -13830,6 +13837,7 @@ ERROR torch/ao/quantization/fx/lstm_utils.py:144:29-38: No attribute `add` in mo
|
|||
ERROR torch/ao/quantization/fx/lstm_utils.py:146:33-42: No attribute `mul` in module `torch` [missing-attribute]
|
||||
ERROR torch/ao/quantization/fx/lstm_utils.py:147:29-38: No attribute `mul` in module `torch` [missing-attribute]
|
||||
ERROR torch/ao/quantization/fx/lstm_utils.py:211:31-56: No attribute `quantize_per_tensor` in module `torch` [missing-attribute]
|
||||
WARN torch/ao/quantization/fx/prepare.py:30:44-51: `convert` is deprecated [deprecated]
|
||||
ERROR torch/ao/quantization/fx/prepare.py:90:39-49: No attribute `bool` in module `torch` [missing-attribute]
|
||||
ERROR torch/ao/quantization/fx/prepare.py:92:5-17: No attribute `quint8` in module `torch` [missing-attribute]
|
||||
ERROR torch/ao/quantization/fx/prepare.py:93:5-16: No attribute `qint8` in module `torch` [missing-attribute]
|
||||
|
|
@ -16187,7 +16195,6 @@ ERROR torch/distributed/fsdp/sharded_grad_scaler.py:254:21-31: No attribute `ful
|
|||
ERROR torch/distributed/fsdp/sharded_grad_scaler.py:255:30-43: No attribute `float32` in module `torch` [missing-attribute]
|
||||
ERROR torch/distributed/fsdp/sharded_grad_scaler.py:286:13-33: No attribute `_foreach_copy_` in module `torch` [missing-attribute]
|
||||
ERROR torch/distributed/fsdp/sharded_grad_scaler.py:367:17-41: No attribute `_amp_update_scale_` in module `torch` [missing-attribute]
|
||||
WARN torch/distributed/launch.py:207:5-9: `main` is deprecated [deprecated]
|
||||
ERROR torch/distributed/nn/__init__.py:6:4-25: Module `torch.distributed.rpc` exists, but was not imported explicitly. You are relying on other modules to load it. [implicit-import]
|
||||
ERROR torch/distributed/nn/api/remote_module.py:13:19-25: Could not import `device` from `torch` [missing-module-attribute]
|
||||
ERROR torch/distributed/nn/api/remote_module.py:13:27-32: Could not import `dtype` from `torch` [missing-module-attribute]
|
||||
|
|
@ -20540,6 +20547,15 @@ ERROR torch/quantization/_quantized_conversions.py:115:23-32: No attribute `int`
|
|||
ERROR torch/quantization/_quantized_conversions.py:120:20-34: No attribute `quint4x2` in module `torch` [missing-attribute]
|
||||
ERROR torch/quantization/_quantized_conversions.py:130:18-32: No attribute `quint4x2` in module `torch` [missing-attribute]
|
||||
ERROR torch/quantization/_quantized_conversions.py:134:41-52: No attribute `uint8` in module `torch` [missing-attribute]
|
||||
WARN torch/quantization/quantize.py:22:5-12: `convert` is deprecated [deprecated]
|
||||
WARN torch/quantization/quantize.py:23:5-12: `prepare` is deprecated [deprecated]
|
||||
WARN torch/quantization/quantize.py:24:5-16: `prepare_qat` is deprecated [deprecated]
|
||||
WARN torch/quantization/quantize.py:26:5-13: `quantize` is deprecated [deprecated]
|
||||
WARN torch/quantization/quantize.py:27:5-21: `quantize_dynamic` is deprecated [deprecated]
|
||||
WARN torch/quantization/quantize.py:28:5-17: `quantize_qat` is deprecated [deprecated]
|
||||
WARN torch/quantization/quantize_fx.py:19:5-15: `convert_fx` is deprecated [deprecated]
|
||||
WARN torch/quantization/quantize_fx.py:21:5-15: `prepare_fx` is deprecated [deprecated]
|
||||
WARN torch/quantization/quantize_fx.py:22:5-19: `prepare_qat_fx` is deprecated [deprecated]
|
||||
ERROR torch/quasirandom.py:62:15-27: No attribute `device` in module `torch` [missing-attribute]
|
||||
ERROR torch/quasirandom.py:64:27-38: No attribute `zeros` in module `torch` [missing-attribute]
|
||||
ERROR torch/quasirandom.py:65:55-65: No attribute `long` in module `torch` [missing-attribute]
|
||||
|
|
@ -21391,8 +21407,8 @@ ERROR torch/utils/_sympy/printers.py:487:53-68: Object of class `Expr` has no at
|
|||
ERROR torch/utils/_sympy/printers.py:573:12-29: Object of class `Basic` has no attribute `is_integer` [missing-attribute]
|
||||
ERROR torch/utils/_sympy/printers.py:575:16-28: `>=` is not supported between `Basic` and `Literal[0]` [unsupported-operation]
|
||||
ERROR torch/utils/_sympy/printers.py:581:86-94: Unary `-` is not supported on `Basic` [unsupported-operation]
|
||||
ERROR torch/utils/_sympy/reference.py:106:28-39: Argument `type[floor]` is not assignable to parameter `f` with type `(**tuple[*@_]) -> @_` in function `torch.utils._sympy.functions._keep_float` [bad-argument-type]
|
||||
ERROR torch/utils/_sympy/reference.py:110:28-41: Argument `type[ceiling]` is not assignable to parameter `f` with type `(**tuple[*@_]) -> @_` in function `torch.utils._sympy.functions._keep_float` [bad-argument-type]
|
||||
ERROR torch/utils/_sympy/reference.py:106:40-43: Unpacked argument `tuple[Unknown]` is not assignable to varargs type `tuple[()]` [bad-argument-type]
|
||||
ERROR torch/utils/_sympy/reference.py:110:42-45: Unpacked argument `tuple[Unknown]` is not assignable to varargs type `tuple[()]` [bad-argument-type]
|
||||
ERROR torch/utils/_sympy/reference.py:114:21-34: No attribute `float64` in module `torch` [missing-attribute]
|
||||
ERROR torch/utils/_sympy/reference.py:222:21-32: No attribute `int64` in module `torch` [missing-attribute]
|
||||
ERROR torch/utils/_sympy/reference.py:224:23-35: No attribute `double` in module `torch` [missing-attribute]
|
||||
|
|
@ -21597,6 +21613,7 @@ ERROR torch/utils/data/dataloader.py:650:26-41: No attribute `Generator` in modu
|
|||
ERROR torch/utils/data/dataloader.py:706:13-24: No attribute `empty` in module `torch` [missing-attribute]
|
||||
ERROR torch/utils/data/dataloader.py:706:35-46: No attribute `int64` in module `torch` [missing-attribute]
|
||||
ERROR torch/utils/data/dataloader.py:723:26-41: No attribute `Generator` in module `torch` [missing-attribute]
|
||||
ERROR torch/utils/data/datapipes/datapipe.py:422:16-41: Returned type `_T_co` is not assignable to declared return type `_T_co` [bad-return]
|
||||
ERROR torch/utils/data/datapipes/datapipe.py:426:9-20: Class member `_MapDataPipeSerializationWrapper.__getitem__` overrides parent class `MapDataPipe` in an inconsistent manner [bad-param-name-override]
|
||||
WARN torch/utils/data/datapipes/gen_pyi.py:64:30-47: `materialize_lines` is deprecated [deprecated]
|
||||
ERROR torch/utils/data/datapipes/iter/callable.py:79:9-37: No attribute `_log_api_usage_once` in module `torch._C` [missing-attribute]
|
||||
|
|
@ -21800,4 +21817,4 @@ ERROR torch/xpu/streams.py:103:13-35: No attribute `_XpuEventBase` in module `to
|
|||
ERROR torch/xpu/streams.py:167:32-47: Object of class `Event` has no attribute `sycl_event` [missing-attribute]
|
||||
ERROR torch/xpu/streams.py:170:12-27: Object of class `Event` has no attribute `sycl_event` [missing-attribute]
|
||||
INFO Checking project configured at `<CWD>/pyrefly.toml`
|
||||
INFO 21,677 errors (6,455 suppressed)
|
||||
INFO 21,682 errors (6,437 suppressed)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,173 @@
|
|||
"""Simple LSP client for benchmarking diagnostic response times."""
|
||||
|
||||
import asyncio
|
||||
import logging
|
||||
from asyncio import Future
|
||||
from pathlib import Path
|
||||
from typing import Any, NamedTuple, cast, override
|
||||
|
||||
from lsprotocol import types as lsp
|
||||
from pygls.lsp.client import LanguageClient
|
||||
|
||||
|
||||
def _register_notebook_structure_hooks(converter):
|
||||
"""Register structure hooks for notebook document types to work around cattrs deserialization issues."""
|
||||
|
||||
# Define a union type that cattrs struggles with.
|
||||
notebook_filter_union = (
|
||||
str
|
||||
| lsp.NotebookDocumentFilterNotebookType
|
||||
| lsp.NotebookDocumentFilterScheme
|
||||
| lsp.NotebookDocumentFilterPattern
|
||||
| None
|
||||
)
|
||||
|
||||
def structure_notebook_filter(obj: Any, _type):
|
||||
"""Structure a notebook filter field from various possible types."""
|
||||
if obj is None:
|
||||
return None
|
||||
if isinstance(obj, str):
|
||||
return obj
|
||||
if isinstance(obj, dict):
|
||||
# Try to structure it as one of the known types.
|
||||
if "notebookType" in obj:
|
||||
return converter.structure(obj, lsp.NotebookDocumentFilterNotebookType)
|
||||
elif "scheme" in obj:
|
||||
return converter.structure(obj, lsp.NotebookDocumentFilterScheme)
|
||||
elif "pattern" in obj:
|
||||
return converter.structure(obj, lsp.NotebookDocumentFilterPattern)
|
||||
return obj
|
||||
|
||||
converter.register_structure_hook(notebook_filter_union, structure_notebook_filter)
|
||||
|
||||
|
||||
class LSPClient(LanguageClient):
|
||||
"""A minimal LSP client for benchmarking purposes."""
|
||||
|
||||
server_capabilities: lsp.ServerCapabilities
|
||||
diagnostics: dict[str, Future[lsp.PublishDiagnosticsParams]]
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
):
|
||||
super().__init__(
|
||||
"ty_benchmark",
|
||||
"v1",
|
||||
)
|
||||
|
||||
# Register custom structure hooks to work around lsprotocol/cattrs issues.
|
||||
_register_notebook_structure_hooks(self.protocol._converter)
|
||||
|
||||
self.diagnostics = {}
|
||||
|
||||
@self.feature(lsp.TEXT_DOCUMENT_PUBLISH_DIAGNOSTICS)
|
||||
def publish_diagnostics(
|
||||
client: LSPClient, params: lsp.PublishDiagnosticsParams
|
||||
):
|
||||
logging.info(
|
||||
f"Received publish_diagnostics for {params.uri} with version={params.version}, diagnostics count={len(params.diagnostics)}"
|
||||
)
|
||||
future = self.diagnostics.get(params.uri, None)
|
||||
|
||||
if future is None or future.done():
|
||||
future = asyncio.Future()
|
||||
self.diagnostics[params.uri] = future
|
||||
|
||||
future.set_result(params)
|
||||
|
||||
@self.feature(lsp.WINDOW_LOG_MESSAGE)
|
||||
def log_message(client: LSPClient, params: lsp.LogMessageParams):
|
||||
if params.type == lsp.MessageType.Error:
|
||||
logging.error(f"server error: {params.message}")
|
||||
elif params.type == lsp.MessageType.Warning:
|
||||
logging.warning(f"server warning: {params.message}")
|
||||
else:
|
||||
logging.info(f"server info: {params.message}")
|
||||
|
||||
@override
|
||||
async def initialize_async(
|
||||
self, params: lsp.InitializeParams
|
||||
) -> lsp.InitializeResult:
|
||||
result = await super().initialize_async(params)
|
||||
|
||||
self.server_capabilities = result.capabilities
|
||||
|
||||
logging.info(
|
||||
f"Pull diagnostic support: {self.server_supports_pull_diagnostics}"
|
||||
)
|
||||
|
||||
return result
|
||||
|
||||
def clear_pending_publish_diagnostics(self):
|
||||
self.diagnostics.clear()
|
||||
|
||||
@property
|
||||
def server_supports_pull_diagnostics(self) -> bool:
|
||||
diagnostic_provider = self.server_capabilities.diagnostic_provider
|
||||
|
||||
return diagnostic_provider is not None
|
||||
|
||||
async def text_document_diagnostics_async(self, path: Path) -> list[lsp.Diagnostic]:
|
||||
"""
|
||||
Returns the diagnostics for `path`
|
||||
|
||||
Uses pull diagnostics if the server supports it or waits for a publish diagnostics
|
||||
notification if not.
|
||||
"""
|
||||
if self.server_supports_pull_diagnostics:
|
||||
pull_diagnostics = await self.text_document_diagnostic_async(
|
||||
lsp.DocumentDiagnosticParams(
|
||||
text_document=lsp.TextDocumentIdentifier(uri=path.as_uri())
|
||||
)
|
||||
)
|
||||
|
||||
assert isinstance(
|
||||
pull_diagnostics, lsp.RelatedFullDocumentDiagnosticReport
|
||||
), "Expected a full diagnostic report"
|
||||
|
||||
return list(pull_diagnostics.items)
|
||||
|
||||
# Use publish diagnostics otherwise.
|
||||
# Pyrefly doesn't support pull diagnostics as of today (27th of November 2025)
|
||||
publish_diagnostics = await self.wait_for_push_diagnostics_async(path)
|
||||
return list(publish_diagnostics.diagnostics)
|
||||
|
||||
async def text_documents_diagnostics_async(
|
||||
self, files: list[Path]
|
||||
) -> list[FileDiagnostics]:
|
||||
responses = await asyncio.gather(
|
||||
*[self.text_document_diagnostics_async(f) for f in files]
|
||||
)
|
||||
|
||||
responses = cast(
|
||||
list[lsp.Diagnostic],
|
||||
responses,
|
||||
)
|
||||
|
||||
return [
|
||||
FileDiagnostics(file, diagnostics=list(response))
|
||||
for file, response in zip(files, responses)
|
||||
]
|
||||
|
||||
async def wait_for_push_diagnostics_async(
|
||||
self, path: Path, timeout: float = 60
|
||||
) -> lsp.PublishDiagnosticsParams:
|
||||
future = self.diagnostics.get(path.as_uri(), None)
|
||||
|
||||
if future is None:
|
||||
future = asyncio.Future()
|
||||
self.diagnostics[path.as_uri()] = future
|
||||
|
||||
try:
|
||||
logging.info(f"Waiting for push diagnostics for {path}")
|
||||
result = await asyncio.wait_for(future, timeout)
|
||||
logging.info(f"Awaited push diagnostics for {path}")
|
||||
finally:
|
||||
self.diagnostics.pop(path.as_uri())
|
||||
|
||||
return result
|
||||
|
||||
|
||||
class FileDiagnostics(NamedTuple):
|
||||
file: Path
|
||||
diagnostics: list[lsp.Diagnostic]
|
||||
|
|
@ -32,6 +32,8 @@ class Project(NamedTuple):
|
|||
exclude: list[str] = []
|
||||
"""The directories and files to exclude from checks."""
|
||||
|
||||
edit: IncrementalEdit | None = None
|
||||
|
||||
def clone(self, checkout_dir: Path) -> None:
|
||||
# Skip cloning if the project has already been cloned (the script doesn't yet support updating)
|
||||
if (checkout_dir / ".git").exists():
|
||||
|
|
@ -95,6 +97,33 @@ class Project(NamedTuple):
|
|||
logging.info(f"Cloned {self.name} to {checkout_dir}.")
|
||||
|
||||
|
||||
class IncrementalEdit(NamedTuple):
|
||||
"""Description of an edit to measure incremental performance"""
|
||||
|
||||
edited_file: str
|
||||
"""The file to which to apply the edit."""
|
||||
|
||||
affected_files: list[str]
|
||||
"""Files other than the main file that's affected by the edit."""
|
||||
|
||||
replace_text: str
|
||||
"""The original code snippet to find and replace in the main file."""
|
||||
|
||||
replacement: str
|
||||
"""The new code snippet to insert in place of `replace_text`"""
|
||||
|
||||
def apply_to(self, text: str) -> str | None:
|
||||
"""Applies the edit to the given text.
|
||||
|
||||
Returns:
|
||||
The modified text or None if the edit couldn't be applied"""
|
||||
|
||||
if self.replace_text not in text:
|
||||
return None
|
||||
|
||||
return text.replace(self.replace_text, self.replacement, 1)
|
||||
|
||||
|
||||
# Selection of projects taken from
|
||||
# [mypy-primer](https://github.com/hauntsaninja/mypy_primer/blob/0ea6cc614b3e91084059b9a3acc58f94c066a211/mypy_primer/projects.py#L71).
|
||||
# May require frequent updating, especially the dependencies list
|
||||
|
|
@ -116,6 +145,12 @@ ALL: Final = [
|
|||
"--extra",
|
||||
"d",
|
||||
],
|
||||
edit=IncrementalEdit(
|
||||
edited_file="src/black/nodes.py",
|
||||
replace_text="LN = Union[Leaf, Node]",
|
||||
replacement="LN = Union[Leaf, Node, int]",
|
||||
affected_files=["src/black/linegen.py"],
|
||||
),
|
||||
),
|
||||
Project(
|
||||
name="discord.py",
|
||||
|
|
@ -128,6 +163,12 @@ ALL: Final = [
|
|||
"pyproject.toml",
|
||||
"typing_extensions>=4.3,<5",
|
||||
],
|
||||
edit=IncrementalEdit(
|
||||
edited_file="discord/abc.py",
|
||||
replace_text="id: int",
|
||||
replacement="id: str",
|
||||
affected_files=["discord/channel.py"],
|
||||
),
|
||||
),
|
||||
# Fairly chunky project, requires the pydantic mypy plugin.
|
||||
#
|
||||
|
|
@ -146,6 +187,12 @@ ALL: Final = [
|
|||
"-r",
|
||||
"requirements.txt",
|
||||
],
|
||||
edit=IncrementalEdit(
|
||||
edited_file="homeassistant/core.py",
|
||||
affected_files=["homeassistant/helpers/event.py"],
|
||||
replace_text="type CALLBACK_TYPE = Callable[[], None]",
|
||||
replacement="type CALLBACK_TYPE = Callable[[str], None]",
|
||||
),
|
||||
),
|
||||
Project(
|
||||
name="isort",
|
||||
|
|
@ -154,6 +201,12 @@ ALL: Final = [
|
|||
python_version="3.11",
|
||||
include=["isort"],
|
||||
install_arguments=["types-colorama", "colorama"],
|
||||
edit=IncrementalEdit(
|
||||
edited_file="isort/settings.py",
|
||||
replace_text="def is_skipped(self, file_path: Path) -> bool:",
|
||||
replacement="def is_skipped(self, file_path: str) -> bool:",
|
||||
affected_files=["isort/files.py"],
|
||||
),
|
||||
),
|
||||
Project(
|
||||
name="jinja",
|
||||
|
|
@ -162,6 +215,24 @@ ALL: Final = [
|
|||
python_version="3.10",
|
||||
include=["src"],
|
||||
install_arguments=["-r", "pyproject.toml"],
|
||||
edit=IncrementalEdit(
|
||||
edited_file="src/jinja2/nodes.py",
|
||||
replace_text="""def iter_child_nodes(
|
||||
self,
|
||||
exclude: t.Container[str] | None = None,
|
||||
only: t.Container[str] | None = None,
|
||||
) -> t.Iterator["Node"]""",
|
||||
replacement="""def iter_child_nodes(
|
||||
self,
|
||||
exclude: t.Container[str] | None = None,
|
||||
only: t.Container[str] | None = None,
|
||||
) -> t.Iterator[str]""",
|
||||
affected_files=[
|
||||
"src/jinja2/compiler.py",
|
||||
"src/jinja2/idtracking.py",
|
||||
"src/jinja2/visitor.py",
|
||||
],
|
||||
),
|
||||
),
|
||||
Project(
|
||||
name="pandas",
|
||||
|
|
@ -174,6 +245,12 @@ ALL: Final = [
|
|||
"-r",
|
||||
"requirements-dev.txt",
|
||||
],
|
||||
edit=IncrementalEdit(
|
||||
edited_file="pandas/_typing.py",
|
||||
replace_text='Axis: TypeAlias = AxisInt | Literal["index", "columns", "rows"]',
|
||||
replacement='Axis: TypeAlias = Literal["index", "columns", "rows"]',
|
||||
affected_files=["pandas/core/frame.py"],
|
||||
),
|
||||
),
|
||||
Project(
|
||||
name="pandas-stubs",
|
||||
|
|
@ -196,6 +273,7 @@ ALL: Final = [
|
|||
"scipy >=1.9.1",
|
||||
"scipy-stubs >=1.15.3.0",
|
||||
],
|
||||
edit=None, # Tricky in a stubs only project as there are no actual method calls.
|
||||
),
|
||||
Project(
|
||||
name="prefect",
|
||||
|
|
@ -215,6 +293,22 @@ ALL: Final = [
|
|||
"--group",
|
||||
"dev",
|
||||
],
|
||||
edit=IncrementalEdit(
|
||||
edited_file="src/prefect/server/models/events.py",
|
||||
replace_text="""async def deployment_status_event(
|
||||
session: AsyncSession,
|
||||
deployment_id: UUID,
|
||||
status: DeploymentStatus,
|
||||
occurred: DateTime,
|
||||
) -> Event:""",
|
||||
replacement="""async def deployment_status_event(
|
||||
session: AsyncSession,
|
||||
deployment_id: UUID,
|
||||
status: DeploymentStatus,
|
||||
occurred: DateTime,
|
||||
) -> int:""",
|
||||
affected_files=["src/prefect/server/models/deployments.py"],
|
||||
),
|
||||
),
|
||||
Project(
|
||||
name="pytorch",
|
||||
|
|
@ -283,5 +377,22 @@ ALL: Final = [
|
|||
"mypy==1.16.0", # pytorch pins mypy,
|
||||
],
|
||||
python_version="3.11",
|
||||
edit=IncrementalEdit(
|
||||
edited_file="torch/nn/__init__.py",
|
||||
replace_text="""from torch.nn.parameter import ( # usort: skip
|
||||
Buffer as Buffer,
|
||||
Parameter as Parameter,
|
||||
UninitializedBuffer as UninitializedBuffer,
|
||||
UninitializedParameter as UninitializedParameter,
|
||||
)""",
|
||||
replacement="""from torch.nn.parameter import ( # usort: skip
|
||||
Buffer as Buffer,
|
||||
UninitializedBuffer as UninitializedBuffer,
|
||||
UninitializedParameter as UninitializedParameter,
|
||||
)""",
|
||||
affected_files=[
|
||||
"torch/distributed/pipelining/_backward.py",
|
||||
],
|
||||
),
|
||||
),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,486 @@
|
|||
"""
|
||||
Benchmarks for LSP servers
|
||||
|
||||
When debugging test failures, run pytest with `-s -v --log-cli-level=DEBUG`
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import tempfile
|
||||
from abc import ABC, abstractmethod
|
||||
from collections import Counter
|
||||
from collections.abc import Callable, Generator
|
||||
from pathlib import Path
|
||||
from typing import Any, Final, override
|
||||
|
||||
import pytest
|
||||
from lsprotocol import types as lsp
|
||||
|
||||
from benchmark.lsp_client import FileDiagnostics, LSPClient
|
||||
from benchmark.projects import ALL as ALL_PROJECTS
|
||||
from benchmark.projects import IncrementalEdit, Project
|
||||
from benchmark.tool import Pyrefly, Pyright, Tool, Ty
|
||||
from benchmark.venv import Venv
|
||||
|
||||
# Tools to benchmark (only those with LSP support).
|
||||
TOOLS_TO_BENCHMARK: Final = [
|
||||
Ty(),
|
||||
Pyright(),
|
||||
Pyrefly(),
|
||||
]
|
||||
|
||||
SEVERITY_LABELS: Final = {1: "Error", 2: "Warning", 3: "Info", 4: "Hint"}
|
||||
|
||||
|
||||
@pytest.fixture(scope="module", params=ALL_PROJECTS, ids=lambda p: p.name)
|
||||
def project_setup(
|
||||
request,
|
||||
) -> Generator[tuple[Project, Venv], None, None]:
|
||||
"""Set up a project and its venv once per module (shared across all tests for this project)."""
|
||||
project: Project = request.param
|
||||
|
||||
with tempfile.TemporaryDirectory() as tempdir:
|
||||
cwd = Path(tempdir)
|
||||
project.clone(cwd)
|
||||
|
||||
venv = Venv.create(cwd, project.python_version)
|
||||
venv.install(project.install_arguments)
|
||||
|
||||
yield project, venv
|
||||
|
||||
|
||||
@pytest.fixture(
|
||||
scope="function",
|
||||
params=TOOLS_TO_BENCHMARK,
|
||||
ids=lambda t: t.name(),
|
||||
)
|
||||
def tool(request) -> Tool:
|
||||
"""Provide each tool to test."""
|
||||
return request.param
|
||||
|
||||
|
||||
def test_fetch_diagnostics(
|
||||
request, benchmark, project_setup: tuple[Project, Venv], tool: Tool
|
||||
):
|
||||
"""Benchmark the time to receive initial diagnostics after starting the server."""
|
||||
|
||||
project, venv = project_setup
|
||||
|
||||
run_benchmark(
|
||||
request,
|
||||
benchmark,
|
||||
project,
|
||||
tool,
|
||||
venv,
|
||||
FetchDiagnostics,
|
||||
)
|
||||
|
||||
|
||||
def test_incremental_edit(
|
||||
request, benchmark, project_setup: tuple[Project, Venv], tool: Tool
|
||||
):
|
||||
"""Benchmark the time to receive diagnostics after making an edit to a file."""
|
||||
|
||||
project, venv = project_setup
|
||||
|
||||
run_benchmark(request, benchmark, project, tool, venv, IncrementalEditTest)
|
||||
|
||||
|
||||
def run_benchmark(
|
||||
request: Any,
|
||||
benchmark: Any,
|
||||
project: Project,
|
||||
tool: Tool,
|
||||
venv: Venv,
|
||||
init_test: Callable[[Project, Tool, Venv], LspTest],
|
||||
):
|
||||
# Set benchmark group to project name for better readability.
|
||||
benchmark.group = project.name
|
||||
verbose = request.config.getoption("verbose") > 0
|
||||
|
||||
edited_file_backup: Path | None = None
|
||||
|
||||
# some make changes to the main file. Create a backup and restore it before each test
|
||||
# and once the entire suite is done.
|
||||
if project.edit:
|
||||
edited_file_path = venv.project_path / project.edit.edited_file
|
||||
edited_file_backup = edited_file_path.with_name(edited_file_path.name + ".bak")
|
||||
edited_file_path.copy(edited_file_backup)
|
||||
|
||||
try:
|
||||
tool.write_config(project, venv)
|
||||
|
||||
# Use asyncio.Runner to keep the same event loop alive across setup and measure.
|
||||
with asyncio.Runner() as runner:
|
||||
|
||||
def setup():
|
||||
if edited_file_backup:
|
||||
edited_file_backup.copy(edited_file_backup.with_suffix(""))
|
||||
|
||||
test = init_test(project, tool, venv)
|
||||
|
||||
runner.run(test.setup())
|
||||
return (test,), {}
|
||||
|
||||
def run(test: LspTest) -> None:
|
||||
runner.run(test.run())
|
||||
|
||||
def teardown(test: LspTest) -> None:
|
||||
nonlocal verbose
|
||||
|
||||
test.assert_output(verbose=verbose)
|
||||
runner.run(test.teardown())
|
||||
|
||||
# Only do verbose output on the first (warm-up) run to avoid
|
||||
# that the printing changes the benchmark result.
|
||||
verbose = False
|
||||
|
||||
# Run the benchmark using pedantic mode.
|
||||
benchmark.pedantic(
|
||||
run,
|
||||
setup=setup,
|
||||
teardown=teardown,
|
||||
# total executions = rounds * iterations
|
||||
warmup_rounds=2,
|
||||
rounds=10,
|
||||
iterations=1,
|
||||
)
|
||||
finally:
|
||||
if edited_file_backup:
|
||||
edited_file_backup.copy(edited_file_backup.with_suffix(""))
|
||||
|
||||
|
||||
class LspTest(ABC):
|
||||
client: LSPClient
|
||||
venv: Venv
|
||||
project: Project
|
||||
tool: Tool
|
||||
edit: IncrementalEdit
|
||||
|
||||
def __init__(self, project: Project, tool: Tool, venv: Venv):
|
||||
edit = project.edit
|
||||
if not edit:
|
||||
pytest.skip(f"{project.name} does not have an incremental edit")
|
||||
return
|
||||
|
||||
self.project = project
|
||||
self.venv = venv
|
||||
self.tool = tool
|
||||
self.client = LSPClient()
|
||||
self.edit = edit
|
||||
|
||||
@property
|
||||
def cwd(self) -> Path:
|
||||
return self.venv.project_path
|
||||
|
||||
@property
|
||||
def edited_file_path(self) -> Path:
|
||||
return self.absolute_file_path(self.edit.edited_file)
|
||||
|
||||
def absolute_file_path(self, file_path: str) -> Path:
|
||||
return self.cwd / file_path
|
||||
|
||||
def files_to_check(self) -> Generator[Path, None, None]:
|
||||
yield self.edited_file_path
|
||||
|
||||
for file in self.edit.affected_files:
|
||||
yield self.absolute_file_path(file)
|
||||
|
||||
def open_all_files(self):
|
||||
for file_path in self.files_to_check():
|
||||
self.open_file(file_path)
|
||||
|
||||
def open_file(self, path: Path):
|
||||
self.client.text_document_did_open(
|
||||
lsp.DidOpenTextDocumentParams(
|
||||
text_document=lsp.TextDocumentItem(
|
||||
uri=path.as_uri(),
|
||||
language_id="python",
|
||||
version=1,
|
||||
text=path.read_text(),
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
async def initialize(self):
|
||||
lsp_cmd = self.tool.lsp_command(self.project, self.venv)
|
||||
if lsp_cmd is None:
|
||||
pytest.skip(f"{self.tool.name()} doesn't support LSP")
|
||||
return
|
||||
|
||||
await self.client.start_io(*lsp_cmd, cwd=self.cwd)
|
||||
|
||||
await self.client.initialize_async(
|
||||
lsp.InitializeParams(
|
||||
root_uri=self.cwd.as_uri(),
|
||||
workspace_folders=[
|
||||
lsp.WorkspaceFolder(uri=self.cwd.as_uri(), name=self.cwd.name)
|
||||
],
|
||||
capabilities=lsp.ClientCapabilities(
|
||||
text_document=lsp.TextDocumentClientCapabilities(
|
||||
diagnostic=lsp.DiagnosticClientCapabilities(
|
||||
data_support=True, dynamic_registration=False
|
||||
),
|
||||
synchronization=lsp.TextDocumentSyncClientCapabilities(
|
||||
did_save=True,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
self.client.initialized(lsp.InitializedParams())
|
||||
|
||||
@abstractmethod
|
||||
async def setup(self): ...
|
||||
|
||||
@abstractmethod
|
||||
async def run(self): ...
|
||||
|
||||
@abstractmethod
|
||||
def assert_output(self, verbose=False): ...
|
||||
|
||||
async def teardown(self):
|
||||
await self.client.shutdown_async(None)
|
||||
self.client.exit(None)
|
||||
await self.client.stop()
|
||||
|
||||
|
||||
class FetchDiagnostics(LspTest):
|
||||
diagnostics: list[FileDiagnostics] | None = None
|
||||
|
||||
@override
|
||||
async def setup(self):
|
||||
await self.initialize()
|
||||
self.open_all_files()
|
||||
|
||||
@override
|
||||
async def run(self):
|
||||
self.diagnostics = await self.client.text_documents_diagnostics_async(
|
||||
list(self.files_to_check())
|
||||
)
|
||||
|
||||
@override
|
||||
def assert_output(self, verbose=False):
|
||||
if self.diagnostics is None:
|
||||
pytest.fail("No diagnostics were fetched")
|
||||
return
|
||||
|
||||
if verbose:
|
||||
for file, diagnostics in self.diagnostics:
|
||||
if diagnostics:
|
||||
print_diagnostics(file, diagnostics, self.venv.project_path)
|
||||
|
||||
|
||||
class IncrementalEditTest(LspTest):
|
||||
before_edit_diagnostics: list[FileDiagnostics] | None = None
|
||||
after_edit_diagnostics: list[FileDiagnostics] | None = None
|
||||
new_content: str
|
||||
|
||||
def __init__(self, project: Project, tool: Tool, venv: Venv):
|
||||
super().__init__(project, tool, venv)
|
||||
new_content = self.edit.apply_to(self.edited_file_path.read_text())
|
||||
|
||||
if new_content is None:
|
||||
pytest.fail(
|
||||
f"Could not find expected text in {self.edited_file_path}:\n"
|
||||
f"Expected to find: {self.edit.replace_text}\n"
|
||||
f"This may indicate the project has been updated or the configuration is incorrect."
|
||||
)
|
||||
return
|
||||
|
||||
self.new_content = new_content
|
||||
|
||||
@override
|
||||
async def setup(self):
|
||||
await self.initialize()
|
||||
|
||||
self.open_all_files()
|
||||
|
||||
self.before_edit_diagnostics = (
|
||||
await self.client.text_documents_diagnostics_async(
|
||||
list(self.files_to_check())
|
||||
)
|
||||
)
|
||||
|
||||
if not self.client.server_supports_pull_diagnostics:
|
||||
# Pyrefly sometimes sends more than one publish diagnostic per file,
|
||||
# and it doesn't support versioned publish diagnostics, making it impossible
|
||||
# for the client to tell if we already received the newest publish diagnostic
|
||||
# notification or not. Because of that, sleep, clear all publish diagnostic
|
||||
# notifications before sending the change notification.
|
||||
await asyncio.sleep(1)
|
||||
self.client.clear_pending_publish_diagnostics()
|
||||
|
||||
@override
|
||||
async def run(self):
|
||||
self.client.text_document_did_change(
|
||||
lsp.DidChangeTextDocumentParams(
|
||||
text_document=lsp.VersionedTextDocumentIdentifier(
|
||||
uri=self.edited_file_path.as_uri(),
|
||||
version=2,
|
||||
),
|
||||
content_changes=[
|
||||
lsp.TextDocumentContentChangeWholeDocument(text=self.new_content)
|
||||
],
|
||||
),
|
||||
)
|
||||
|
||||
all_files = list(self.files_to_check())
|
||||
|
||||
# wait for the didChange publish notifications or pull the new diagnostics
|
||||
self.after_edit_diagnostics = (
|
||||
await self.client.text_documents_diagnostics_async(all_files)
|
||||
)
|
||||
|
||||
after_did_change_sum = sum(
|
||||
len(diagnostics) for f, diagnostics in self.after_edit_diagnostics
|
||||
)
|
||||
|
||||
# IMPORTANT: Write the file back to disk!
|
||||
# Pyrefly, as of Nov 27, requires that the content on disk
|
||||
# is updated to show cross-file diagnostics.
|
||||
self.edited_file_path.write_text(self.new_content)
|
||||
|
||||
self.client.text_document_did_save(
|
||||
lsp.DidSaveTextDocumentParams(
|
||||
text_document=lsp.TextDocumentIdentifier(
|
||||
uri=self.edited_file_path.as_uri(),
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
# Pyrefly only publishes cross-file diagnostics after did_save.
|
||||
if isinstance(self.tool, Pyrefly):
|
||||
after_did_save_sum = after_did_change_sum
|
||||
|
||||
# Pyrefly sometimes publishes multiple publish diagnostics after a `didSave`.
|
||||
# Especially if checking takes long, as it, e.g., is the case for homeassistant.
|
||||
# We need to wait until pyrefly sends us the cross-file diagnostics.
|
||||
# For now, we use a very simple heuristics where we simply check if the diagnostic
|
||||
# count between the `didChange` (not cross-file) and `didSave` (cross-file) is different.
|
||||
while after_did_save_sum == after_did_change_sum:
|
||||
self.after_edit_diagnostics = (
|
||||
await self.client.text_documents_diagnostics_async(all_files)
|
||||
)
|
||||
|
||||
after_did_save_sum = sum(
|
||||
len(diagnostics) for f, diagnostics in self.after_edit_diagnostics
|
||||
)
|
||||
|
||||
@override
|
||||
def assert_output(self, verbose=False):
|
||||
assert self.before_edit_diagnostics is not None, (
|
||||
"The before edit diagnostics should be initialized. Did you forget to call `setup`?"
|
||||
)
|
||||
assert self.after_edit_diagnostics is not None, (
|
||||
"The after edit diagnostics should be initialized if the test ran at least once. Did you forget to call `run`?"
|
||||
)
|
||||
|
||||
before_edit_count = sum(
|
||||
len(diagnostics) for _, diagnostics in self.before_edit_diagnostics
|
||||
)
|
||||
|
||||
after_edit_count = sum(
|
||||
len(diagnostics) for _, diagnostics in self.after_edit_diagnostics
|
||||
)
|
||||
|
||||
assert after_edit_count > before_edit_count, (
|
||||
f"Expected more diagnostics after the change. "
|
||||
f"Initial: {before_edit_count}, After change: {after_edit_count}"
|
||||
)
|
||||
|
||||
if verbose:
|
||||
print_diagnostic_diff(
|
||||
self.before_edit_diagnostics,
|
||||
self.after_edit_diagnostics,
|
||||
self.project.name,
|
||||
self.tool.name(),
|
||||
self.venv.project_path,
|
||||
)
|
||||
|
||||
|
||||
def print_diagnostics(
|
||||
file: Path, diagnostics: list[lsp.Diagnostic], cwd: Path, label: str | None = None
|
||||
):
|
||||
file = file.relative_to(cwd)
|
||||
|
||||
if label:
|
||||
print(f"\n{file}: {len(diagnostics)} {label}")
|
||||
else:
|
||||
print(f"\n{file}: {len(diagnostics)} diagnostics")
|
||||
|
||||
for diag in diagnostics:
|
||||
severity = SEVERITY_LABELS.get(diag.severity, f"Unknown({diag.severity})")
|
||||
print(
|
||||
f"{file}:{diag.range.start.line + 1}:{diag.range.start.character + 1} [{severity}] {diag.message}"
|
||||
)
|
||||
|
||||
|
||||
type DiagnosticSignature = tuple[Path, str | int | None, str]
|
||||
|
||||
|
||||
def diagnostic_signature(file: Path, diagnostic: lsp.Diagnostic) -> DiagnosticSignature:
|
||||
"""Create a signature for a diagnostic based on file, code, and message (ignoring position)."""
|
||||
return (file, diagnostic.code, diagnostic.message)
|
||||
|
||||
|
||||
def count_diagnostic_signatures(
|
||||
diagnostics_list: list[FileDiagnostics],
|
||||
) -> Counter[DiagnosticSignature]:
|
||||
"""Count occurrences of each diagnostic signature."""
|
||||
return Counter(
|
||||
diagnostic_signature(file, diagnostic)
|
||||
for file, diagnostics in diagnostics_list
|
||||
for diagnostic in diagnostics
|
||||
)
|
||||
|
||||
|
||||
def diff_diagnostics(
|
||||
old: list[FileDiagnostics],
|
||||
new: list[FileDiagnostics],
|
||||
) -> list[FileDiagnostics]:
|
||||
"""Return diagnostics in `new` that aren't in `old`."""
|
||||
diff_counts = count_diagnostic_signatures(new) - count_diagnostic_signatures(old)
|
||||
|
||||
result: list[FileDiagnostics] = []
|
||||
for file, diagnostics in new:
|
||||
new_for_file = []
|
||||
for d in diagnostics:
|
||||
sig = diagnostic_signature(file, d)
|
||||
if diff_counts[sig] > 0:
|
||||
diff_counts[sig] -= 1
|
||||
new_for_file.append(d)
|
||||
if new_for_file:
|
||||
result.append(FileDiagnostics(file, new_for_file))
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def print_diagnostic_diff(
|
||||
before_diagnostics: list[FileDiagnostics],
|
||||
after_diagnostics: list[FileDiagnostics],
|
||||
project_name: str,
|
||||
tool_name: str,
|
||||
cwd: Path,
|
||||
) -> None:
|
||||
"""Print the difference in diagnostics before and after a change."""
|
||||
|
||||
added = diff_diagnostics(before_diagnostics, after_diagnostics)
|
||||
removed = diff_diagnostics(after_diagnostics, before_diagnostics)
|
||||
|
||||
total_added = sum(len(diagnostics) for _, diagnostics in added)
|
||||
total_removed = sum(len(diagnostics) for _, diagnostics in removed)
|
||||
|
||||
print(f"\n{'=' * 80}")
|
||||
print(f"Diagnostic Diff: {project_name} - {tool_name}")
|
||||
print(f"{'=' * 80}")
|
||||
print(f"Added: {total_added} diagnostic(s)")
|
||||
print(f"Removed: {total_removed} diagnostic(s)")
|
||||
|
||||
for file, diagnostics in added:
|
||||
print_diagnostics(file, diagnostics, cwd, "added")
|
||||
|
||||
for file, diagnostics in removed:
|
||||
print_diagnostics(file, diagnostics, cwd, "removed")
|
||||
|
||||
print(f"{'=' * 80}")
|
||||
|
|
@ -27,6 +27,9 @@ def which_tool(name: str, path: Path | None = None) -> Path:
|
|||
|
||||
|
||||
class Tool(abc.ABC):
|
||||
@abc.abstractmethod
|
||||
def name(self) -> str: ...
|
||||
|
||||
def write_config(self, project: Project, venv: Venv) -> None:
|
||||
"""Write the tool's configuration file."""
|
||||
|
||||
|
|
@ -48,13 +51,17 @@ class Tool(abc.ABC):
|
|||
def command(self, project: Project, venv: Venv, single_threaded: bool) -> Command:
|
||||
"""Generate a command to benchmark a given tool."""
|
||||
|
||||
@abc.abstractmethod
|
||||
def lsp_command(self, project: Project, venv: Venv) -> list[str] | None:
|
||||
"""Generate command to start LSP server, or None if not supported."""
|
||||
|
||||
|
||||
class Ty(Tool):
|
||||
path: Path
|
||||
name: str
|
||||
_name: str
|
||||
|
||||
def __init__(self, *, path: Path | None = None):
|
||||
self.name = str(path) if path else "ty"
|
||||
self._name = str(path) if path else "ty"
|
||||
executable = "ty.exe" if sys.platform == "win32" else "ty"
|
||||
self.path = (
|
||||
path or (Path(__file__) / "../../../../../target/release" / executable)
|
||||
|
|
@ -64,6 +71,10 @@ class Ty(Tool):
|
|||
f"ty not found at '{self.path}'. Run `cargo build --release --bin ty`."
|
||||
)
|
||||
|
||||
@override
|
||||
def name(self) -> str:
|
||||
return self._name
|
||||
|
||||
@override
|
||||
def config(self, project: Project, venv: Venv):
|
||||
return (
|
||||
|
|
@ -91,7 +102,11 @@ class Ty(Tool):
|
|||
for exclude in project.exclude:
|
||||
command.extend(["--exclude", exclude])
|
||||
|
||||
return Command(name=self.name, command=command)
|
||||
return Command(name=self._name, command=command)
|
||||
|
||||
@override
|
||||
def lsp_command(self, project: Project, venv: Venv) -> list[str] | None:
|
||||
return [str(self.path), "server"]
|
||||
|
||||
|
||||
class Mypy(Tool):
|
||||
|
|
@ -102,6 +117,10 @@ class Mypy(Tool):
|
|||
self.path = path
|
||||
self.warm = warm
|
||||
|
||||
@override
|
||||
def name(self) -> str:
|
||||
return "mypy"
|
||||
|
||||
@override
|
||||
def command(self, project: Project, venv: Venv, single_threaded: bool) -> Command:
|
||||
path = self.path or which_tool("mypy", venv.bin)
|
||||
|
|
@ -142,24 +161,37 @@ class Mypy(Tool):
|
|||
command=command,
|
||||
)
|
||||
|
||||
@override
|
||||
def lsp_command(self, project: Project, venv: Venv) -> list[str] | None:
|
||||
# Mypy doesn't have official LSP support.
|
||||
return None
|
||||
|
||||
|
||||
class Pyright(Tool):
|
||||
path: Path
|
||||
lsp_path: Path
|
||||
|
||||
def __init__(self, *, path: Path | None = None):
|
||||
if path:
|
||||
self.path = path
|
||||
else:
|
||||
# Assume langserver is in the same directory.
|
||||
if sys.platform == "win32":
|
||||
self.path = Path("./node_modules/.bin/pyright.cmd").resolve()
|
||||
self.lsp_path = path.with_name("pyright-langserver.cmd")
|
||||
else:
|
||||
self.path = Path("./node_modules/.bin/pyright").resolve()
|
||||
self.lsp_path = path.with_name("pyright-langserver")
|
||||
else:
|
||||
self.path = npm_bin_path("pyright")
|
||||
self.lsp_path = npm_bin_path("pyright-langserver")
|
||||
|
||||
if not self.path.exists():
|
||||
print(
|
||||
"Pyright executable not found. Did you ran `npm install` in the `ty_benchmark` directory?"
|
||||
)
|
||||
|
||||
@override
|
||||
def name(self) -> str:
|
||||
return "pyright"
|
||||
|
||||
@override
|
||||
def config(self, project: Project, venv: Venv):
|
||||
return (
|
||||
|
|
@ -197,6 +229,11 @@ class Pyright(Tool):
|
|||
command=command,
|
||||
)
|
||||
|
||||
@override
|
||||
def lsp_command(self, project: Project, venv: Venv) -> list[str] | None:
|
||||
# Pyright LSP server is a separate executable.
|
||||
return [str(self.lsp_path), "--stdio"]
|
||||
|
||||
|
||||
class Pyrefly(Tool):
|
||||
path: Path
|
||||
|
|
@ -204,6 +241,10 @@ class Pyrefly(Tool):
|
|||
def __init__(self, *, path: Path | None = None):
|
||||
self.path = path or which_tool("pyrefly")
|
||||
|
||||
@override
|
||||
def name(self) -> str:
|
||||
return "pyrefly"
|
||||
|
||||
@override
|
||||
def config(self, project: Project, venv: Venv):
|
||||
return (
|
||||
|
|
@ -234,3 +275,18 @@ class Pyrefly(Tool):
|
|||
name="Pyrefly",
|
||||
command=command,
|
||||
)
|
||||
|
||||
@override
|
||||
def lsp_command(self, project: Project, venv: Venv) -> list[str] | None:
|
||||
# Pyrefly LSP server.
|
||||
# Turn-off pyrefly's indexing mode as it results in significant load after opening the first file,
|
||||
# skewing benchmark results and we don't use any of the features that require indexing.
|
||||
return [str(self.path), "lsp", "--indexing-mode", "none"]
|
||||
|
||||
|
||||
def npm_bin_path(name: str) -> Path:
|
||||
if sys.platform == "win32":
|
||||
return Path(f"./node_modules/.bin/{name}.cmd").resolve()
|
||||
|
||||
else:
|
||||
return (Path("./node_modules/.bin") / name).resolve()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,59 @@
|
|||
version = 1
|
||||
revision = 3
|
||||
requires-python = ">=3.12"
|
||||
requires-python = ">=3.14"
|
||||
|
||||
[[package]]
|
||||
name = "attrs"
|
||||
version = "25.4.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cattrs"
|
||||
version = "25.3.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "attrs" },
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/6e/00/2432bb2d445b39b5407f0a90e01b9a271475eea7caf913d7a86bcb956385/cattrs-25.3.0.tar.gz", hash = "sha256:1ac88d9e5eda10436c4517e390a4142d88638fe682c436c93db7ce4a277b884a", size = 509321, upload-time = "2025-10-07T12:26:08.737Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/d8/2b/a40e1488fdfa02d3f9a653a61a5935ea08b3c2225ee818db6a76c7ba9695/cattrs-25.3.0-py3-none-any.whl", hash = "sha256:9896e84e0a5bf723bc7b4b68f4481785367ce07a8a02e7e9ee6eb2819bc306ff", size = 70738, upload-time = "2025-10-07T12:26:06.603Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "colorama"
|
||||
version = "0.4.6"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "iniconfig"
|
||||
version = "2.3.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lsprotocol"
|
||||
version = "2025.0.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "attrs" },
|
||||
{ name = "cattrs" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/e9/26/67b84e6ec1402f0e6764ef3d2a0aaf9a79522cc1d37738f4e5bb0b21521a/lsprotocol-2025.0.0.tar.gz", hash = "sha256:e879da2b9301e82cfc3e60d805630487ac2f7ab17492f4f5ba5aaba94fe56c29", size = 74896, upload-time = "2025-06-17T21:30:18.156Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/7b/f0/92f2d609d6642b5f30cb50a885d2bf1483301c69d5786286500d15651ef2/lsprotocol-2025.0.0-py3-none-any.whl", hash = "sha256:f9d78f25221f2a60eaa4a96d3b4ffae011b107537facee61d3da3313880995c7", size = 76250, upload-time = "2025-06-17T21:30:19.455Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mslex"
|
||||
|
|
@ -12,19 +65,98 @@ wheels = [
|
|||
]
|
||||
|
||||
[[package]]
|
||||
name = "pyrefly"
|
||||
version = "0.42.1"
|
||||
name = "packaging"
|
||||
version = "25.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/cb/a4/6faf9e361689cbdd4752a0561efb9191f176c5af4ae808ec97beef9aaa50/pyrefly-0.42.1.tar.gz", hash = "sha256:18f569fee2f48ea75f35a7b0d6232c2f409ecdc7343cee786e3f7d80028fc113", size = 3851967, upload-time = "2025-11-18T06:03:56.314Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/fa/ac/c0ac659456187f948209ff2195d754bb7922b4332c3801e66e38897968f2/pyrefly-0.42.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:cfdd79dfa4836a2947c0ddc75f26fc7c0a681ae92d03fb72830767808f404a62", size = 9509024, upload-time = "2025-11-18T06:03:39.109Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/62/56/344139a1733628804d82bc328b4ee69b6175e9d0ce7d829ba5ef2fe8403e/pyrefly-0.42.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:747521ed8a99d814a9754b3f98066c8b03e9edadb51b7184b86bc4614e4b50a1", size = 9024185, upload-time = "2025-11-18T06:03:41.353Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/de/cd/f320908a150487472957f3a0c4d977483024cc2aff5ddd62d0c4ec4dfa2f/pyrefly-0.42.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2084f0fe4cb0a9df3ac1aba6550ddbd980a2b166604ed70d8d34cf1a048067ad", size = 9258639, upload-time = "2025-11-18T06:03:43.411Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/3b/62/128ea27ac7ad19b837b34811bcfd9b65806daf152c64f904e3c76ceb2cec/pyrefly-0.42.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30194ef7428b4060be2fb5fa0a41227b8d4db73bf009aa97ffc930ced3bb234f", size = 10174041, upload-time = "2025-11-18T06:03:45.739Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2b/89/6dabc2a96a97e2d7533517033aab2d0ba98bdaac59c35d7fe22d85f8c78b/pyrefly-0.42.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf4a4472a42c7f9eaada8a16d61983114299847d35dece68de698dbb90770710", size = 9797317, upload-time = "2025-11-18T06:03:47.863Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ca/a6/071e08ab9b287b3d41fdc7f564ce63bb2eab9a415746d0a48b2794b20871/pyrefly-0.42.1-py3-none-win32.whl", hash = "sha256:84bb9a8ea5b79da065c855673d98fe28b45ebe4b1ed933f1e7da0ba335a40c86", size = 9325929, upload-time = "2025-11-18T06:03:49.925Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5d/69/1b8a133006eb83a75891865a706e981040318b0d7198e14838040b46cd04/pyrefly-0.42.1-py3-none-win_amd64.whl", hash = "sha256:825f5240d1b20490ac87bb880211b30fa532f634bd65c76e5bab656ad47eb80b", size = 9793448, upload-time = "2025-11-18T06:03:52.372Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/85/a1/e9c7fe11ebea2b18bcbcb26c4be8c87d25ddc1e3ff1cf942aabce1e0f637/pyrefly-0.42.1-py3-none-win_arm64.whl", hash = "sha256:b0ff3be4beaab9131b6f08b1156fc62d37e977802b5c6c626ad1a1141c2b2e65", size = 9345936, upload-time = "2025-11-18T06:03:54.233Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pluggy"
|
||||
version = "1.6.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "py-cpuinfo"
|
||||
version = "9.0.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/37/a8/d832f7293ebb21690860d2e01d8115e5ff6f2ae8bbdc953f0eb0fa4bd2c7/py-cpuinfo-9.0.0.tar.gz", hash = "sha256:3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690", size = 104716, upload-time = "2022-10-25T20:38:06.303Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl", hash = "sha256:859625bc251f64e21f077d099d4162689c762b5d6a4c3c97553d56241c9674d5", size = 22335, upload-time = "2022-10-25T20:38:27.636Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pygls"
|
||||
version = "2.0.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "attrs" },
|
||||
{ name = "cattrs" },
|
||||
{ name = "lsprotocol" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/87/50/2bfc32f3acbc8941042919b59c9f592291127b55d7331b72e67ce7b62f08/pygls-2.0.0.tar.gz", hash = "sha256:99accd03de1ca76fe1e7e317f0968ebccf7b9955afed6e2e3e188606a20b4f07", size = 55796, upload-time = "2025-10-17T19:22:47.925Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/cc/09/14feafc13bebb9c85b29b374889c1549d3700cb572f2d43a1bb940d70315/pygls-2.0.0-py3-none-any.whl", hash = "sha256:b4e54bba806f76781017ded8fd07463b98670f959042c44170cd362088b200cc", size = 69533, upload-time = "2025-10-17T19:22:46.63Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pygments"
|
||||
version = "2.19.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pyrefly"
|
||||
version = "0.43.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/58/2c/f318536b85546b9aadb8e3e264e05401000a70fa88957c2bd0e6034b63ac/pyrefly-0.43.1.tar.gz", hash = "sha256:f97b09a45cbff445025f2581bd7bc20ff904baef19b97d134262e11f88fb154e", size = 3884459, upload-time = "2025-11-24T18:51:50.302Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/cc/93/1d075912889258410e58fe774e22d2661acba8920e223466c333c7aad889/pyrefly-0.43.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e60ada6bd3eb203e72457f3613d35e9997db1b378298c851301cfe84b58c3be9", size = 9790079, upload-time = "2025-11-24T18:51:32.751Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/fc/c2/c235e5d24f3a12ece2102c7cfc68fce1ad8c89cedc23bfb1eb60421e0e31/pyrefly-0.43.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:488b5b77ab8c0998fe9fa48a0ac8c443b13a57a40ba2d998bf29296b5c674cab", size = 9396136, upload-time = "2025-11-24T18:51:35.152Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/13/ef/658c8dfd1b2f32637a05bc99bfec32e130bcd948b72e9643661217615d16/pyrefly-0.43.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e2af14499acce4382aec72d36fcf2807bf667f839bc528bacac83b75106643f", size = 9633606, upload-time = "2025-11-24T18:51:37.353Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d9/bc/3ad135f312106787d1c6951f93bac45cc9afeb6709458a90254794050a4b/pyrefly-0.43.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5cad0ffbed68e99cd072a8bbe1faa30a4a26efa485775e2a9d0e5426a84ef19f", size = 10483447, upload-time = "2025-11-24T18:51:39.441Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/45/5c/6c2e6585f27eb57157141e2dd70087b7c9bc60ec3309ad1127d2f5ff1806/pyrefly-0.43.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc79bdb599b377178457950c5cc4a61dfb82d8ab388758d1958accddfcef7f6b", size = 10087696, upload-time = "2025-11-24T18:51:41.763Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b7/d6/a0c4c33b238e52bce0f10d795dfb03e42498d67a68787baa4e8a394283c6/pyrefly-0.43.1-py3-none-win32.whl", hash = "sha256:e7253b185bb5e5149fb0698f909ccfe7f95d128fbc52fadada0ed539991bcc60", size = 9572615, upload-time = "2025-11-24T18:51:43.929Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a4/e2/fb48a560f15acc597e680f95744e988211f662ff68455f92b0e19fb8b23b/pyrefly-0.43.1-py3-none-win_amd64.whl", hash = "sha256:8befa8a7d529db11ed075e1cfec3e30607dffea4a6e4c7622cce50fcec2467cf", size = 10195087, upload-time = "2025-11-24T18:51:45.953Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/e5/e7/18815ed07edbabc104d28e0fd3fae542c83e90ace322b85ef2f8e5a79feb/pyrefly-0.43.1-py3-none-win_arm64.whl", hash = "sha256:8359bb854f5a238c364346836291947ef084516329a50bb400fddf0dd8a9b461", size = 9799746, upload-time = "2025-11-24T18:51:47.958Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pytest"
|
||||
version = "9.0.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
||||
{ name = "iniconfig" },
|
||||
{ name = "packaging" },
|
||||
{ name = "pluggy" },
|
||||
{ name = "pygments" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/07/56/f013048ac4bc4c1d9be45afd4ab209ea62822fb1598f40687e6bf45dcea4/pytest-9.0.1.tar.gz", hash = "sha256:3e9c069ea73583e255c3b21cf46b8d3c56f6e3a1a8f6da94ccb0fcf57b9d73c8", size = 1564125, upload-time = "2025-11-12T13:05:09.333Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/0b/8b/6300fb80f858cda1c51ffa17075df5d846757081d11ab4aa35cef9e6258b/pytest-9.0.1-py3-none-any.whl", hash = "sha256:67be0030d194df2dfa7b556f2e56fb3c3315bd5c8822c6951162b92b32ce7dad", size = 373668, upload-time = "2025-11-12T13:05:07.379Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pytest-benchmark"
|
||||
version = "5.2.3"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "py-cpuinfo" },
|
||||
{ name = "pytest" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/24/34/9f732b76456d64faffbef6232f1f9dbec7a7c4999ff46282fa418bd1af66/pytest_benchmark-5.2.3.tar.gz", hash = "sha256:deb7317998a23c650fd4ff76e1230066a76cb45dcece0aca5607143c619e7779", size = 341340, upload-time = "2025-11-09T18:48:43.215Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/33/29/e756e715a48959f1c0045342088d7ca9762a2f509b945f362a316e9412b7/pytest_benchmark-5.2.3-py3-none-any.whl", hash = "sha256:bc839726ad20e99aaa0d11a127445457b4219bdb9e80a1afc4b51da7f96b0803", size = 45255, upload-time = "2025-11-09T18:48:39.765Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -32,12 +164,29 @@ name = "ty-benchmark"
|
|||
version = "0.0.1"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "lsprotocol" },
|
||||
{ name = "mslex" },
|
||||
{ name = "pygls" },
|
||||
{ name = "pyrefly" },
|
||||
{ name = "pytest" },
|
||||
{ name = "pytest-benchmark" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "lsprotocol", specifier = ">=2025.0.0" },
|
||||
{ name = "mslex", specifier = ">=1.3.0" },
|
||||
{ name = "pyrefly", specifier = ">=0.41.3" },
|
||||
{ name = "pygls", specifier = ">=2.0.0" },
|
||||
{ name = "pyrefly", specifier = ">=0.43.1" },
|
||||
{ name = "pytest", specifier = ">=8.0.0" },
|
||||
{ name = "pytest-benchmark", specifier = ">=4.0.0" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "typing-extensions"
|
||||
version = "4.15.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" },
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue