Skip to content

experiment: remove __eq__ from object - #16348

Draft
randolf-scholz wants to merge 2 commits into
python:mainfrom
randolf-scholz:eq_experiment
Draft

experiment: remove __eq__ from object#16348
randolf-scholz wants to merge 2 commits into
python:mainfrom
randolf-scholz:eq_experiment

Conversation

@randolf-scholz

Copy link
Copy Markdown
Contributor

A more drastic approach to address #15345, just to see what would happen...

@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Diff from mypy_primer, showing the effect of this PR on open source code:

pip (https://github.com/pypa/pip)
+ src/pip/_internal/metadata/_json.py:51: error: Unsupported operand types for == ("str" and "None")  [operator]
+ src/pip/_internal/metadata/_json.py:51: note: Left operand is of type "Any | None"
+ src/pip/_internal/locations/__init__.py:138: error: Unsupported operand types for == ("str" and "None")  [operator]
+ src/pip/_internal/locations/__init__.py:138: note: Left operand is of type "str | None"
+ src/pip/_internal/utils/misc.py:147: error: Unsupported operand types for != ("int" and "None")  [operator]
+ src/pip/_internal/utils/misc.py:147: note: Left operand is of type "int | None"
+ src/pip/_internal/utils/temp_dir.py:283: error: Unsupported operand types for != ("int" and "None")  [operator]
+ src/pip/_internal/utils/temp_dir.py:283: note: Left operand is of type "int | None"
+ src/pip/_internal/utils/filesystem.py:28: error: Unsupported operand types for != ("str" and "None")  [operator]
+ src/pip/_internal/utils/filesystem.py:28: note: Right operand is of type "str | None"
+ src/pip/_internal/models/link.py:409: error: Unsupported operand types for == ("str" and "None")  [operator]
+ src/pip/_internal/models/link.py:409: note: Left operand is of type "str | None"
+ src/pip/_internal/cli/parser.py:166: error: Unsupported operand types for == ("str" and "None")  [operator]
+ src/pip/_internal/cli/parser.py:166: note: Left operand is of type "str | None"
+ src/pip/_internal/network/auth.py:437: error: Unsupported operand types for == ("str" and "None")  [operator]
+ src/pip/_internal/network/auth.py:437: note: Right operand is of type "str | None"
+ src/pip/_internal/network/session.py:490: error: Unsupported operand types for != ("int" and "str")  [operator]
+ src/pip/_internal/network/session.py:490: error: Unsupported operand types for != ("int" and "None")  [operator]
+ src/pip/_internal/network/session.py:490: error: Unsupported operand types for != ("str" and "None")  [operator]
+ src/pip/_internal/network/session.py:490: error: Unsupported left operand type for != ("None")  [operator]
+ src/pip/_internal/network/session.py:490: note: Both left and right operands are unions
+ src/pip/_internal/network/session.py:491: error: Unsupported operand types for != ("str" and "None")  [operator]
+ src/pip/_internal/network/session.py:491: note: Left operand is of type "int | str | None"
+ src/pip/_internal/network/session.py:491: error: Unsupported operand types for != ("int" and "str")  [operator]
+ src/pip/_internal/cli/autocompletion.py:82: error: Unsupported operand types for != ("str" and "None")  [operator]
+ src/pip/_internal/cli/autocompletion.py:82: note: Left operand is of type "str | None"
+ src/pip/_internal/cli/autocompletion.py:123: error: Unsupported operand types for != ("str" and "None")  [operator]
+ src/pip/_internal/cli/autocompletion.py:123: note: Left operand is of type "str | None"
+ src/pip/_internal/utils/unpacking.py:380: error: Unsupported operand types for == ("str" and "None")  [operator]
+ src/pip/_internal/utils/unpacking.py:380: note: Left operand is of type "str | None"
+ src/pip/_internal/utils/unpacking.py:382: error: Unsupported operand types for == ("str" and "None")  [operator]
+ src/pip/_internal/utils/unpacking.py:382: note: Left operand is of type "str | None"
+ src/pip/_internal/req/req_uninstall.py:233: error: Unsupported operand types for != ("str" and "None")  [operator]
+ src/pip/_internal/req/req_uninstall.py:233: note: Right operand is of type "str | None"
+ src/pip/_internal/operations/install/wheel.py:145: error: Unsupported left operand type for != ("Path")  [operator]
+ src/pip/_internal/index/sources.py:46: error: Unsupported operand types for == ("str" and "None")  [operator]
+ src/pip/_internal/index/sources.py:46: note: Left operand is of type "str | None"
+ src/pip/_internal/resolution/resolvelib/requirements.py:30: error: Unsupported left operand type for == ("Candidate")  [operator]
+ src/pip/_internal/resolution/resolvelib/requirements.py:49: error: Unsupported left operand type for == ("Candidate")  [operator]
+ src/pip/_internal/resolution/resolvelib/requirements.py:191: error: Unsupported left operand type for == ("Candidate")  [operator]
+ src/pip/_internal/resolution/resolvelib/candidates.py:303: error: Unsupported operand types for == ("NormalizedName" and "None")  [operator]
+ src/pip/_internal/resolution/resolvelib/candidates.py:303: note: Left operand is of type "NormalizedName | None"
+ src/pip/_internal/index/package_finder.py:814: error: Unsupported left operand type for == ("LinkType")  [operator]
+ src/pip/_internal/index/package_finder.py:825: error: Unsupported left operand type for == ("LinkType")  [operator]
+ src/pip/_internal/index/package_finder.py:829: error: Unsupported left operand type for != ("Literal[LinkType.candidate]")  [operator]
+ src/pip/_internal/index/package_finder.py:829: error: Unsupported left operand type for != ("Literal[LinkType.different_project]")  [operator]
+ src/pip/_internal/index/package_finder.py:829: error: Unsupported left operand type for != ("Literal[LinkType.yanked]")  [operator]
+ src/pip/_internal/index/package_finder.py:829: error: Unsupported left operand type for != ("Literal[LinkType.format_unsupported]")  [operator]
+ src/pip/_internal/index/package_finder.py:829: error: Unsupported left operand type for != ("Literal[LinkType.format_invalid]")  [operator]
+ src/pip/_internal/index/package_finder.py:829: error: Unsupported left operand type for != ("Literal[LinkType.platform_mismatch]")  [operator]
+ src/pip/_internal/index/package_finder.py:829: error: Unsupported left operand type for != ("Literal[LinkType.requires_python_mismatch]")  [operator]
+ src/pip/_internal/index/package_finder.py:829: error: Unsupported left operand type for != ("Literal[LinkType.upload_too_late]")  [operator]
+ src/pip/_internal/index/package_finder.py:829: note: Left operand is of type "Literal[LinkType.candidate, LinkType.different_project, LinkType.yanked, LinkType.format_unsupported, LinkType.format_invalid, LinkType.platform_mismatch, LinkType.requires_python_mismatch, LinkType.upload_too_late]"
+ src/pip/_internal/index/package_finder.py:901: error: Unsupported left operand type for != ("LinkType")  [operator]
+ src/pip/_internal/operations/prepare.py:296: error: Unsupported left operand type for != ("SpecifierSet")  [operator]
+ src/pip/_internal/resolution/legacy/resolver.py:258: error: Unsupported left operand type for == ("Collection[str]")  [operator]
+ src/pip/_internal/resolution/legacy/resolver.py:261: error: Unsupported left operand type for != ("SpecifierSet")  [operator]
+ src/pip/_internal/cli/req_command.py:76: error: Unsupported operand types for == ("str" and "None")  [operator]
+ src/pip/_internal/cli/req_command.py:76: note: Left operand is of type "str | None"
+ src/pip/_internal/commands/install.py:861: error: Unsupported operand types for == ("int" and "None")  [operator]
+ src/pip/_internal/commands/install.py:861: note: Left operand is of type "int | None"
+ src/pip/__main__.py:13: error: Unsupported operand types for == ("str" and "None")  [operator]
+ src/pip/__main__.py:13: note: Left operand is of type "str | None"

beartype (https://github.com/beartype/beartype)
+ beartype/_util/api/external/utiljaxtyping.py:65: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/_util/api/external/utiljaxtyping.py:65: note: Left operand is of type "Any | None"
+ beartype/_util/text/utiltextlabel.py:207: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/_util/text/utiltextlabel.py:207: note: Left operand is of type "str | None"
+ beartype/_util/text/utiltextlabel.py:213: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/_util/text/utiltextlabel.py:213: note: Left operand is of type "str | None"
+ beartype/_util/func/utilfuncframe.py:179: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/_util/func/utilfuncframe.py:179: note: Left operand is of type "str | None"
+ beartype/_util/func/utilfuncframe.py:228: error: Unsupported operand types for != ("str" and "None")  [operator]
+ beartype/_util/func/utilfuncframe.py:228: note: Left operand is of type "str | None"
+ beartype/_util/func/utilfuncframe.py:609: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/_util/func/utilfuncframe.py:609: note: Left operand is of type "str | None"
+ beartype/_util/func/utilfuncscope.py:656: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/_util/func/utilfuncscope.py:656: note: Left operand is of type "str | None"
+ beartype/_util/func/arg/utilfuncargtest.py:433: error: Unsupported operand types for == ("str" and "object")  [operator]
+ beartype/_util/func/arg/utilfuncargtest.py:492: error: Unsupported operand types for == ("str" and "object")  [operator]
+ beartype/_util/cls/utilclstest.py:274: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/_util/cls/utilclstest.py:274: note: Left operand is of type "str | None"
+ beartype/_check/convert/_reduce/_pep/redpep647742.py:86: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/_check/convert/_reduce/_pep/redpep647742.py:86: note: Left operand is of type "str | None"
+ beartype/_util/hint/pep/proposal/pep695.py:777: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/_util/hint/pep/proposal/pep695.py:777: note: Right operand is of type "str | None"
+ beartype/door/_cls/pep/pep484585/doorpep484585subscripted.py:136: error: Unsupported left operand type for == ("type")  [operator]
+ beartype/_util/hint/pep/proposal/pep647.py:75: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/_util/hint/pep/proposal/pep647.py:75: note: Left operand is of type "str | None"
+ beartype/claw/_ast/_kind/clawastmodule.py:128: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/claw/_ast/_kind/clawastmodule.py:128: note: Left operand is of type "str | None"
+ beartype/claw/_ast/_kind/clawastimport.py:863: error: Unsupported left operand type for != ("BeartypeConf")  [operator]
+ beartype/claw/_package/clawpkgmain.py:336: error: Unsupported left operand type for != ("BeartypeConf")  [operator]
+ beartype/claw/_package/clawpkgmain.py:436: error: Unsupported left operand type for != ("BeartypeConf")  [operator]
+ beartype/claw/_clawmain.py:209: error: Unsupported operand types for == ("str" and "None")  [operator]
+ beartype/claw/_clawmain.py:209: note: Left operand is of type "str | None"

CPython (Argument Clinic) (https://github.com/python/cpython)
+ Tools/clinic/libclinic/utils.py:26: error: Unsupported operand types for == ("str" and "None")  [operator]
+ Tools/clinic/libclinic/utils.py:26: note: Left operand is of type "str | None"
+ Tools/clinic/libclinic/utils.py:74: error: Unsupported operand types for != ("str" and "None")  [operator]
+ Tools/clinic/libclinic/utils.py:74: note: Left operand is of type "str | None"
+ Tools/clinic/libclinic/language.py:87: error: Unsupported operand types for != ("int" and "None")  [operator]
+ Tools/clinic/libclinic/language.py:87: note: Left operand is of type "int | None"
+ Tools/clinic/libclinic/block_parser.py:204: error: Unsupported operand types for == ("str" and "None")  [operator]
+ Tools/clinic/libclinic/block_parser.py:204: note: Left operand is of type "str | None"
+ Tools/clinic/libclinic/codegen.py:145: error: Unsupported operand types for != ("str" and "None")  [operator]
+ Tools/clinic/libclinic/codegen.py:145: error: Unsupported left operand type for != ("None")  [operator]
+ Tools/clinic/libclinic/codegen.py:145: note: Both left and right operands are unions
+ Tools/clinic/libclinic/converter.py:210: error: Unsupported operand types for == ("tuple[()]" and "type[object]")  [operator]
+ Tools/clinic/libclinic/converter.py:210: note: Left operand is of type "type[object] | tuple[type[object], ...]"
+ Tools/clinic/libclinic/converter.py:519: error: Unsupported operand types for != ("str" and "None")  [operator]
+ Tools/clinic/libclinic/converter.py:519: note: Left operand is of type "str | None"
+ Tools/clinic/libclinic/converter.py:544: error: Unsupported operand types for != ("str" and "None")  [operator]
+ Tools/clinic/libclinic/converter.py:544: note: Left operand is of type "str | None"
+ Tools/clinic/libclinic/converters.py:1180: error: Unsupported left operand type for == ("Literal[FunctionKind.CALLABLE]")  [operator]
+ Tools/clinic/libclinic/converters.py:1180: error: Unsupported left operand type for == ("Literal[FunctionKind.CLASS_METHOD]")  [operator]
+ Tools/clinic/libclinic/converters.py:1180: error: Unsupported left operand type for == ("Literal[FunctionKind.METHOD_INIT]")  [operator]
+ Tools/clinic/libclinic/converters.py:1180: error: Unsupported left operand type for == ("Literal[FunctionKind.METHOD_NEW]")  [operator]
+ Tools/clinic/libclinic/converters.py:1180: error: Unsupported left operand type for == ("Literal[FunctionKind.GETTER]")  [operator]
+ Tools/clinic/libclinic/converters.py:1180: error: Unsupported left operand type for == ("Literal[FunctionKind.SETTER]")  [operator]
+ Tools/clinic/libclinic/converters.py:1180: error: Unsupported left operand type for == ("Literal[FunctionKind.SETTER_AND_DELETER]")  [operator]
+ Tools/clinic/libclinic/converters.py:1180: note: Left operand is of type "Literal[FunctionKind.CALLABLE, FunctionKind.CLASS_METHOD, FunctionKind.METHOD_INIT, FunctionKind.METHOD_NEW, FunctionKind.GETTER, FunctionKind.SETTER, FunctionKind.SETTER_AND_DELETER]"
+ Tools/clinic/libclinic/converters.py:1185: error: Unsupported left operand type for == ("Literal[FunctionKind.CALLABLE]")  [operator]
+ Tools/clinic/libclinic/converters.py:1185: error: Unsupported left operand type for == ("Literal[FunctionKind.METHOD_INIT]")  [operator]
+ Tools/clinic/libclinic/converters.py:1185: error: Unsupported left operand type for == ("Literal[FunctionKind.METHOD_NEW]")  [operator]
+ Tools/clinic/libclinic/converters.py:1185: error: Unsupported left operand type for == ("Literal[FunctionKind.GETTER]")  [operator]
+ Tools/clinic/libclinic/converters.py:1185: error: Unsupported left operand type for == ("Literal[FunctionKind.SETTER]")  [operator]
+ Tools/clinic/libclinic/converters.py:1185: error: Unsupported left operand type for == ("Literal[FunctionKind.SETTER_AND_DELETER]")  [operator]
+ Tools/clinic/libclinic/converters.py:1185: note: Left operand is of type "Literal[FunctionKind.CALLABLE, FunctionKind.METHOD_INIT, FunctionKind.METHOD_NEW, FunctionKind.GETTER, FunctionKind.SETTER, FunctionKind.SETTER_AND_DELETER]"
+ Tools/clinic/libclinic/converters.py:1268: error: Unsupported operand types for != ("str" and "None")  [operator]
+ Tools/clinic/libclinic/converters.py:1268: note: Left operand is of type "str | None"
+ Tools/clinic/libclinic/parse_args.py:523: error: Unsupported operand types for != ("int" and "Literal[Sentinels.unspecified]")  [operator]
+ Tools/clinic/libclinic/parse_args.py:523: note: Right operand is of type "int | Literal[Sentinels.unspecified]"
+ Tools/clinic/libclinic/parse_args.py:859: error: Unsupported operand types for == ("int" and "str")  [operator]
+ Tools/clinic/libclinic/parse_args.py:859: note: Right operand is of type "str | int"
+ Tools/clinic/libclinic/parse_args.py:878: error: Unsupported operand types for != ("int" and "str")  [operator]
+ Tools/clinic/libclinic/parse_args.py:878: note: Left operand is of type "str | int"
+ Tools/clinic/libclinic/parse_args.py:879: error: Unsupported operand types for == ("str" and "int")  [operator]
+ Tools/clinic/libclinic/parse_args.py:879: note: Left operand is of type "str | int"
+ Tools/clinic/libclinic/parse_args.py:887: error: Unsupported operand types for != ("int" and "str")  [operator]
+ Tools/clinic/libclinic/parse_args.py:887: note: Left operand is of type "str | int"
+ Tools/clinic/libclinic/parse_args.py:952: error: Unsupported operand types for != ("int" and "str")  [operator]
+ Tools/clinic/libclinic/parse_args.py:952: note: Left operand is of type "str | int"
+ Tools/clinic/libclinic/dsl_parser.py:1515: error: Unsupported operand types for == ("tuple[int, int]" and "None")  [operator]
+ Tools/clinic/libclinic/dsl_parser.py:1515: note: Left operand is of type "tuple[int, int] | None"
+ Tools/clinic/libclinic/dsl_parser.py:1704: error: Unsupported left operand type for != ("Parameter")  [operator]

tornado (https://github.com/tornadoweb/tornado)
+ tornado/util.py:420: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/util.py:420: note: Left operand is of type "str | None"
+ tornado/util.py:428: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/util.py:428: note: Left operand is of type "str | None"
+ tornado/template.py:992: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/template.py:992: note: Left operand is of type "str | None"
+ tornado/netutil.py:91: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/netutil.py:91: note: Left operand is of type "str | None"
+ tornado/netutil.py:130: error: Unsupported operand types for == ("int" and "None")  [operator]
+ tornado/netutil.py:130: note: Left operand is of type "int | None"
+ tornado/netutil.py:137: error: Unsupported operand types for != ("int" and "None")  [operator]
+ tornado/netutil.py:137: note: Left operand is of type "int | None"
+ tornado/netutil.py:157: error: Unsupported operand types for == ("bytes" and "int")  [operator]
+ tornado/netutil.py:157: note: Left operand is of type "int | bytes"
+ tornado/netutil.py:165: error: Unsupported operand types for == ("int" and "None")  [operator]
+ tornado/netutil.py:165: note: Left operand is of type "int | None"
+ tornado/netutil.py:166: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/netutil.py:166: note: Left operand is of type "str | None"
+ tornado/netutil.py:167: error: Unsupported operand types for == ("int" and "str")  [operator]
+ tornado/netutil.py:167: note: Left operand is of type "str | int"
+ tornado/netutil.py:208: error: Unsupported operand types for != ("int" and "None")  [operator]
+ tornado/netutil.py:208: note: Left operand is of type "int | None"
+ tornado/netutil.py:530: error: Unsupported operand types for != ("int" and "None")  [operator]
+ tornado/netutil.py:530: note: Left operand is of type "int | None"
+ tornado/iostream.py:707: error: Unsupported operand types for != ("int" and "None")  [operator]
+ tornado/iostream.py:707: note: Right operand is of type "int | None"
+ tornado/iostream.py:741: error: Unsupported operand types for == ("int" and "None")  [operator]
+ tornado/iostream.py:741: note: Left operand is of type "int | None"
+ tornado/iostream.py:1267: error: Unsupported operand types for == ("int" and "None")  [operator]
+ tornado/iostream.py:1267: note: Left operand is of type "int | None"
+ tornado/iostream.py:1302: error: Unsupported operand types for != ("int" and "None")  [operator]
+ tornado/iostream.py:1302: note: Left operand is of type "int | None"
+ tornado/iostream.py:1594: error: Unsupported operand types for == ("int" and "None")  [operator]
+ tornado/iostream.py:1594: note: Left operand is of type "int | None"
+ tornado/platform/asyncio.py:610: error: Unsupported operand types for == ("int" and "None")  [operator]
+ tornado/platform/asyncio.py:610: note: Both left and right operands are unions
+ tornado/http1connection.py:256: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/http1connection.py:256: note: Left operand is of type "str | None"
+ tornado/http1connection.py:558: error: Unsupported operand types for != ("str" and "None")  [operator]
+ tornado/http1connection.py:558: note: Left operand is of type "str | None"
+ tornado/http1connection.py:566: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/http1connection.py:566: note: Left operand is of type "str | None"
+ tornado/tcpserver.py:295: error: Unsupported operand types for != ("int" and "None")  [operator]
+ tornado/tcpserver.py:295: note: Left operand is of type "int | None"
+ tornado/routing.py:601: error: Unsupported operand types for == ("int" and "None")  [operator]
+ tornado/routing.py:601: note: Right operand is of type "int | None"
+ tornado/web.py:2806: error: Unsupported operand types for == ("int" and "None")  [operator]
+ tornado/web.py:2806: note: Left operand is of type "int | None"
+ tornado/web.py:3109: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/web.py:3109: note: Left operand is of type "str | None"
+ tornado/auth.py:424: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/auth.py:424: note: Left operand is of type "str | None"
+ tornado/auth.py:454: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/auth.py:454: note: Left operand is of type "str | None"
+ tornado/websocket.py:564: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/websocket.py:564: note: Right operand is of type "str | None"
+ tornado/test/web_test.py:806: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/test/web_test.py:806: note: Left operand is of type "str | None"
+ tornado/test/web_test.py:808: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/test/web_test.py:808: note: Left operand is of type "str | None"
+ tornado/test/web_test.py:1668: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/test/web_test.py:1668: note: Left operand is of type "str | None"
+ tornado/test/web_test.py:2825: error: Unsupported operand types for == ("bytes" and "None")  [operator]
+ tornado/test/web_test.py:2825: note: Right operand is of type "bytes | None"
+ tornado/test/web_test.py:2841: error: Unsupported operand types for == ("bytes" and "None")  [operator]
+ tornado/test/web_test.py:2841: note: Right operand is of type "bytes | None"
+ tornado/test/gen_test.py:830: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/test/gen_test.py:830: note: Left operand is of type "str | int | None"
+ tornado/test/gen_test.py:830: error: Unsupported operand types for == ("int" and "str")  [operator]
+ tornado/test/gen_test.py:832: error: Unsupported left operand type for == ("Future[Any]")  [operator]
+ tornado/test/gen_test.py:832: error: Unsupported left operand type for == ("None")  [operator]
+ tornado/test/gen_test.py:832: note: Left operand is of type "Future[Any] | None"
+ tornado/test/gen_test.py:835: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/test/gen_test.py:835: note: Left operand is of type "str | int | None"
+ tornado/test/gen_test.py:835: error: Unsupported operand types for == ("int" and "str")  [operator]
+ tornado/test/gen_test.py:837: error: Unsupported left operand type for == ("Future[Any]")  [operator]
+ tornado/test/gen_test.py:837: error: Unsupported left operand type for == ("None")  [operator]
+ tornado/test/gen_test.py:837: note: Left operand is of type "Future[Any] | None"
+ tornado/test/simple_httpclient_test.py:318: error: Unsupported operand types for == ("str" and "None")  [operator]
+ tornado/test/simple_httpclient_test.py:318: note: Left operand is of type "str | None"
+ tornado/test/simple_httpclient_test.py:727: error: Unsupported left operand type for != ("Callable[[], type[Configurable]]")  [operator]

pwndbg (https://github.com/pwndbg/pwndbg)
+ pwndbg/lib/err.py: note: In member "is_success" of class "Status":
+ pwndbg/lib/err.py:54: error: Unsupported left operand type for == ("ErrorCode")  [operator]
+ pwndbg/lib/err.py: note: In member "is_failure" of class "Status":
+ pwndbg/lib/err.py:58: error: Unsupported left operand type for != ("ErrorCode")  [operator]
+ pwndbg/lib/config.py: note: In member "get_params" of class "Config":
+ pwndbg/lib/config.py:286: error: Argument 1 to "filter" has incompatible type "Callable[[Any], Any]"; expected "Callable[[Parameter], TypeGuard[Never]]"  [arg-type]
+ pwndbg/lib/config.py:286: error: Argument 1 to "filter" has incompatible type "Callable[[Any], Any]"; expected "Callable[[Parameter], TypeGuard[Parameter]]"  [arg-type]
+ pwndbg/lib/memory.py: note: In member "__eq__" of class "Page":
+ pwndbg/lib/memory.py:220: error: Argument 3 to "getattr" has incompatible type "object"; expected "int"  [arg-type]
+ pwndbg/dbg_mod/__init__.py: note: In function "selection":
+ pwndbg/dbg_mod/__init__.py:54: error: Unsupported left operand type for != ("T")  [operator]
+ pwndbg/dbg_mod/__init__.py: note: In member "array_len" of class "Type":
+ pwndbg/dbg_mod/__init__.py:838: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/dbg_mod/__init__.py: note: In member "enum_member" of class "Type":
+ pwndbg/dbg_mod/__init__.py:942: error: Unsupported left operand type for != ("TypeCode")  [operator]
+ pwndbg/dbg_mod/__init__.py: note: In member "_offsetof" of class "Type":
+ pwndbg/dbg_mod/__init__.py:955: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/dbg_mod/__init__.py: note: In member "offsetof" of class "Type":
+ pwndbg/dbg_mod/__init__.py:998: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/gdblib/scheduler.py: note: In function "lock_scheduler":
+ pwndbg/gdblib/scheduler.py:23: error: Unsupported operand types for != ("int" and "str")  [operator]
+ pwndbg/gdblib/scheduler.py:23: note: Left operand is of type "int | str"
+ pwndbg/lib/zig.py: note: In function "_get_zig_target":
+ pwndbg/lib/zig.py:114: error: Unsupported left operand type for == ("Platform")  [operator]
+ pwndbg/lib/zig.py:119: error: Unsupported left operand type for == ("Literal[Platform.DARWIN]")  [operator]
+ pwndbg/gdblib/events.py: note: In function "wrap_safe_event_handler":
+ pwndbg/gdblib/events.py:245: error: Unsupported left operand type for != ("None")  [operator]
+ pwndbg/gdblib/events.py: note: At top level:
+ pwndbg/aglib/disasm/instruction.py: note: In member "is_conditional_jump_taken" of class "PwndbgInstructionImpl":
+ pwndbg/aglib/disasm/instruction.py:554: error: Unsupported left operand type for == ("InstructionCondition")  [operator]
+ pwndbg/aglib/disasm/instruction.py:557: error: Unsupported left operand type for != ("Literal[InstructionCondition.FALSE]")  [operator]
+ pwndbg/aglib/disasm/instruction.py:557: error: Unsupported left operand type for != ("Literal[InstructionCondition.UNDETERMINED_CONDITIONAL]")  [operator]
+ pwndbg/aglib/disasm/instruction.py:557: error: Unsupported left operand type for != ("Literal[InstructionCondition.UNCONDITIONAL]")  [operator]
+ pwndbg/aglib/disasm/instruction.py:557: note: Left operand is of type "Literal[InstructionCondition.FALSE, InstructionCondition.UNDETERMINED_CONDITIONAL, InstructionCondition.UNCONDITIONAL]"
+ pwndbg/aglib/disasm/instruction.py: note: In member "jump_result_is_known" of class "PwndbgInstructionImpl":
+ pwndbg/aglib/disasm/instruction.py:573: error: Unsupported left operand type for != ("InstructionCondition")  [operator]
+ pwndbg/dbg_mod/gdb/symbol.py: note: In member "validate" of class "Domain":
+ pwndbg/dbg_mod/gdb/symbol.py:176: error: Unsupported left operand type for == ("Domain")  [operator]
+ pwndbg/dbg_mod/gdb/symbol.py:179: error: Unsupported left operand type for == ("Domain")  [operator]
+ pwndbg/dbg_mod/gdb/symbol.py: note: At top level:
+ pwndbg/dbg_mod/gdb/__init__.py: note: In member "__eq__" of class "GDBFrame":
+ pwndbg/dbg_mod/gdb/__init__.py:313: error: Unsupported left operand type for == ("Frame")  [operator]
+ pwndbg/dbg_mod/gdb/__init__.py: note: In member "func_arguments" of class "GDBType":
+ pwndbg/dbg_mod/gdb/__init__.py:1428: error: Unsupported left operand type for != ("TypeCode")  [operator]
+ pwndbg/dbg_mod/gdb/__init__.py: note: In member "dereference" of class "GDBValue":
+ pwndbg/dbg_mod/gdb/__init__.py:1534: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/dbg_mod/gdb/__init__.py:1535: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/dbg_mod/gdb/__init__.py:1571: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/aglib/memory.py: note: In function "convert_pwndbg_value_to_python_value":
+ pwndbg/aglib/memory.py:436: error: Unsupported left operand type for == ("Literal[TypeCode.INVALID]")  [operator]
+ pwndbg/aglib/memory.py:436: error: Unsupported left operand type for == ("Literal[TypeCode.ARRAY]")  [operator]
+ pwndbg/aglib/memory.py:436: error: Unsupported left operand type for == ("Literal[TypeCode.STRUCT]")  [operator]
+ pwndbg/aglib/memory.py:436: error: Unsupported left operand type for == ("Literal[TypeCode.TYPEDEF]")  [operator]
+ pwndbg/aglib/memory.py:436: error: Unsupported left operand type for == ("Literal[TypeCode.UNION]")  [operator]
+ pwndbg/aglib/memory.py:436: error: Unsupported left operand type for == ("Literal[TypeCode.ENUM]")  [operator]
+ pwndbg/aglib/memory.py:436: error: Unsupported left operand type for == ("Literal[TypeCode.FUNC]")  [operator]
+ pwndbg/aglib/memory.py:436: error: Unsupported left operand type for == ("Literal[TypeCode.BOOL]")  [operator]
+ pwndbg/aglib/memory.py:436: note: Left operand is of type "Literal[TypeCode.INVALID, TypeCode.ARRAY, TypeCode.STRUCT, TypeCode.TYPEDEF, TypeCode.UNION, TypeCode.ENUM, TypeCode.FUNC, TypeCode.BOOL]"
+ pwndbg/aglib/dt.py: note: In function "_append_field_lines":
+ pwndbg/aglib/dt.py:64: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/aglib/dt.py: note: In function "dt":
+ pwndbg/aglib/dt.py:134: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/aglib/commpage.py: note: In function "get_commpage_fields":
+ pwndbg/aglib/commpage.py:225: error: Unsupported left operand type for != ("Platform")  [operator]
+ pwndbg/aglib/commpage.py: note: In function "get_commpage_mappings":
+ pwndbg/aglib/commpage.py:232: error: Unsupported left operand type for != ("Platform")  [operator]
+ pwndbg/aglib/kernel/macros.py: note: In function "compound_head":
+ pwndbg/aglib/kernel/macros.py:64: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/aglib/kernel/rbtree.py: note: In function "rb_first":
+ pwndbg/aglib/kernel/rbtree.py:37: error: Unsupported left operand type for != ("Type")  [operator]
+ pwndbg/aglib/kernel/rbtree.py: note: In function "rb_last":
+ pwndbg/aglib/kernel/rbtree.py:53: error: Unsupported left operand type for != ("Type")  [operator]
+ pwndbg/aglib/kernel/rbtree.py: note: In function "rb_next":
+ pwndbg/aglib/kernel/rbtree.py:78: error: Unsupported left operand type for != ("Type")  [operator]
+ pwndbg/aglib/kernel/rbtree.py: note: In function "rb_prev":
+ pwndbg/aglib/kernel/rbtree.py:101: error: Unsupported left operand type for != ("Type")  [operator]
+ pwndbg/dintegration/__init__.py: note: In member "remove_symbols" of class "IntegrationManager":
+ pwndbg/dintegration/__init__.py:540: error: Unsupported left operand type for == ("DebuggerType")  [operator]
+ pwndbg/dintegration/__init__.py: note: In member "update_symbols" of class "IntegrationManager":
+ pwndbg/dintegration/__init__.py:589: error: Unsupported left operand type for == ("DebuggerType")  [operator]
+ pwndbg/aglib/vmmap.py: note: In function "_refine_memory_map":
+ pwndbg/aglib/vmmap.py:54: error: Unsupported left operand type for == ("Platform")  [operator]
+ pwndbg/aglib/elf.py: note: In member "is_pic" of class "ELFInfo":
+ pwndbg/aglib/elf.py:62: error: Unsupported operand types for == ("int" and "str")  [operator]
+ pwndbg/aglib/elf.py:62: note: Left operand is of type "int | str"
+ pwndbg/aglib/elf.py: note: In function "get_containing_segments":
+ pwndbg/aglib/elf.py:182: error: Unsupported operand types for == ("str" and "int")  [operator]
+ pwndbg/aglib/elf.py:182: note: Left operand is of type "int | str"
+ pwndbg/aglib/elf.py: note: At top level:
+ pwndbg/aglib/elf.py: note: In function "get_vmlinux_unrand_base":
+ pwndbg/aglib/elf.py:208: error: Unsupported operand types for == ("int" and "str")  [operator]
+ pwndbg/aglib/elf.py:208: note: Left operand is of type "int | str"
+ pwndbg/aglib/elf.py: note: In function "compile_with_flags":
+ pwndbg/aglib/elf.py:519: error: Unsupported operand types for != ("str" and "Parameter")  [operator]
+ pwndbg/aglib/objc.py: note: In function "_parse_method_type_array":
+ pwndbg/aglib/objc.py:906: error: Unsupported operand types for != ("int" and "bytes")  [operator]
+ pwndbg/aglib/objc.py: note: In function "_parse_method_type_pointer":
+ pwndbg/aglib/objc.py:921: error: Unsupported operand types for != ("int" and "bytes")  [operator]
+ pwndbg/aglib/godbg.py:313: error: Unsupported operand types for == ("int" and "str")  [operator]
+ pwndbg/aglib/godbg.py:313: note: Left operand is of type "int | str"
+ pwndbg/aglib/godbg.py: note: In function "_guess_moduledata_types":
+ pwndbg/aglib/godbg.py:372: error: Unsupported operand types for == ("int" and "str")  [operator]
+ pwndbg/aglib/godbg.py:372: note: Left operand is of type "int | str"
+ pwndbg/aglib/disasm/assistant.py: note: In member "enhance" of class "DisassemblyAssistant":
+ pwndbg/aglib/disasm/assistant.py:212: error: Unsupported operand types for != ("str" and "Parameter")  [operator]
+ pwndbg/aglib/disasm/assistant.py:269: error: Unsupported left operand type for != ("InstructionCondition")  [operator]
+ pwndbg/aglib/disasm/assistant.py: note: In member "_enhance_next" of class "DisassemblyAssistant":
+ pwndbg/aglib/disasm/assistant.py:716: error: Unsupported left operand type for == ("InstructionCondition")  [operator]
+ pwndbg/aglib/disasm/assistant.py:729: error: Unsupported left operand type for != ("InstructionCondition")  [operator]
+ pwndbg/aglib/disasm/assistant.py:761: error: Unsupported left operand type for == ("InstructionCondition")  [operator]
+ pwndbg/aglib/disasm/disassembly.py: note: In function "get_previous_instruction":
+ pwndbg/aglib/disasm/disassembly.py:244: error: Unsupported left operand type for == ("CacheSource")  [operator]
+ pwndbg/aglib/disasm/disassembly.py: note: In function "one_with_config":
+ pwndbg/aglib/disasm/disassembly.py:625: error: Unsupported operand types for != ("str" and "Parameter")  [operator]
+ pwndbg/aglib/disasm/disassembly.py: note: In function "near":
+ pwndbg/aglib/disasm/disassembly.py:770: error: Unsupported left operand type for == ("CacheSource")  [operator]
+ pwndbg/aglib/disasm/disassembly.py:771: error: Unsupported left operand type for == ("CacheSource")  [operator]
+ pwndbg/aglib/disasm/disassembly.py:775: error: Unsupported left operand type for == ("CacheSource")  [operator]
+ pwndbg/aglib/disasm/disassembly.py:788: error: Unsupported left operand type for == ("SplitType")  [operator]
+ pwndbg/aglib/heap/mallocng.py: note: In member "find_slot" of class "Mallocng":
+ pwndbg/aglib/heap/mallocng.py:1426: error: Unsupported left operand type for != ("SlotState")  [operator]
+ pwndbg/libc/facade.py: note: In function "__check_candidates":
+ pwndbg/libc/facade.py:78: error: Unsupported left operand type for != ("LibcType")  [operator]
+ pwndbg/aglib/onegadget.py: note: In function "check_constraint":
+ pwndbg/aglib/onegadget.py:466: error: Unsupported left operand type for == ("CheckSatResult")  [operator]
+ pwndbg/aglib/onegadget.py: note: In function "check_gadget":
+ pwndbg/aglib/onegadget.py:568: error: Unsupported left operand type for == ("CheckSatResult")  [operator]
+ pwndbg/aglib/onegadget.py:572: error: Unsupported left operand type for == ("CheckSatResult")  [operator]
+ pwndbg/aglib/onegadget.py:586: error: Unsupported left operand type for == ("CheckSatResult")  [operator]
+ pwndbg/aglib/onegadget.py:587: error: Unsupported left operand type for == ("CheckSatResult")  [operator]
+ pwndbg/aglib/onegadget.py:588: error: Unsupported left operand type for == ("CheckSatResult")  [operator]
+ pwndbg/aglib/heap/structs.py:29: error: Unsupported left operand type for == ("LibcType")  [operator]
+ pwndbg/aglib/heap/__init__.py:68: error: Unsupported left operand type for == ("DebuggerType")  [operator]
+ pwndbg/commands/__init__.py: note: In function "fix_int_reraise_arg":
+ pwndbg/commands/__init__.py:727: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/commands/__init__.py: note: At top level:
+ pwndbg/commands/__init__.py: note: In function "OnlyWithResolvedHeapSyms":
+ pwndbg/commands/__init__.py:937: error: Unsupported left operand type for != ("LibcType")  [operator]
+ pwndbg/commands/__init__.py: note: In function "sloppy_gdb_parse":
+ pwndbg/commands/__init__.py:1023: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/commands/vmmap.py: note: In function "print_vmmap_gaps":
+ pwndbg/commands/vmmap.py:131: error: Unsupported left operand type for != ("Page")  [operator]
+ pwndbg/commands/vmmap.py:137: error: Unsupported left operand type for != ("Page")  [operator]
+ pwndbg/commands/vmmap.py:146: error: Unsupported left operand type for != ("Page")  [operator]
+ pwndbg/commands/plist.py: note: In function "plist":
+ pwndbg/commands/plist.py:222: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/commands/plist.py:231: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/commands/plist.py:280: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/commands/plist.py:282: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/commands/onegadget.py: note: In function "onegadget":
+ pwndbg/commands/onegadget.py:37: error: Unsupported left operand type for != ("LibcType")  [operator]
+ pwndbg/commands/onegadget.py:38: error: Unsupported left operand type for == ("Literal[LibcType.MUSL]")  [operator]
+ pwndbg/commands/onegadget.py:38: error: Unsupported left operand type for == ("Literal[LibcType.UNKNOWN]")  [operator]
+ pwndbg/commands/onegadget.py:38: note: Left operand is of type "Literal[LibcType.MUSL, LibcType.UNKNOWN]"
+ pwndbg/commands/mallocng.py: note: In function "colorize_pointer":
+ pwndbg/commands/mallocng.py:689: error: Unsupported left operand type for != ("SlotState")  [operator]
+ pwndbg/commands/mallocng.py: note: In function "colorize_start_header_line":
+ pwndbg/commands/mallocng.py:722: error: Unsupported left operand type for != ("SlotState")  [operator]
+ pwndbg/commands/mallocng.py: note: In function "line_decoration":
+ pwndbg/commands/mallocng.py:758: error: Unsupported left operand type for != ("SlotState")  [operator]
+ pwndbg/commands/mallocng.py: note: In function "mallocng_visualize_slots":
+ pwndbg/commands/mallocng.py:806: error: Unsupported operand types for != ("int" and "Parameter")  [operator]
+ pwndbg/commands/klookup.py: note: In function "klookup":
+ pwndbg/commands/klookup.py:60: error: Unsupported left operand type for == ("DebuggerType")  [operator]
+ pwndbg/commands/got.py: note: In function "_got":
+ pwndbg/commands/got.py:146: error: Unsupported left operand type for == ("RelocationType")  [operator]
+ pwndbg/commands/errno.py: note: In function "errno_":
+ pwndbg/commands/errno.py:33: error: Unsupported left operand type for == ("LibcType")  [operator]
+ pwndbg/commands/decompiler_integration.py: note: In function "connect":
+ pwndbg/commands/decompiler_integration.py:397: error: Unsupported operand types for != ("str" and "Parameter")  [operator]
+ pwndbg/commands/decompiler_integration.py:408: error: Unsupported left operand type for == ("DecompilerID")  [operator]
+ pwndbg/commands/decompiler_integration.py: note: In function "sync":
+ pwndbg/commands/decompiler_integration.py:528: error: Unsupported left operand type for == ("Literal[Error.NO_CONNECTION]")  [operator]
+ pwndbg/commands/decompiler_integration.py:528: error: Unsupported left operand type for == ("Literal[Error.BINARY_NOT_LOADED]")  [operator]
+ pwndbg/commands/decompiler_integration.py:528: error: Unsupported left operand type for == ("Literal[Error.NOT_ALIVE]")  [operator]
+ pwndbg/commands/decompiler_integration.py:528: error: Unsupported left operand type for == ("Literal[Error.NO_FRAME]")  [operator]
+ pwndbg/commands/decompiler_integration.py:528: note: Left operand is of type "Literal[Error.NO_CONNECTION, Error.BINARY_NOT_LOADED, Error.NOT_ALIVE, Error.NO_FRAME]"
+ pwndbg/commands/config.py: note: In function "get_config_parameters":
+ pwndbg/commands/config.py:50: error: Unsupported left operand type for == ("Scope")  [operator]
+ pwndbg/commands/config.py: note: In function "display_config":
+ pwndbg/commands/config.py:92: error: Unsupported left operand type for == ("Scope")  [operator]
+ pwndbg/commands/binder.py: note: In member "_format_field" of class "BinderVisitor":
+ pwndbg/commands/binder.py:106: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/commands/binder.py:114: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/commands/binder.py:116: error: Unsupported left operand type for == ("Literal[TypeCode.INVALID]")  [operator]
+ pwndbg/commands/binder.py:116: error: Unsupported left operand type for == ("Literal[TypeCode.POINTER]")  [operator]
+ pwndbg/commands/binder.py:116: error: Unsupported left operand type for == ("Literal[TypeCode.ARRAY]")  [operator]
+ pwndbg/commands/binder.py:116: error: Unsupported left operand type for == ("Literal[TypeCode.STRUCT]")  [operator]
+ pwndbg/commands/binder.py:116: error: Unsupported left operand type for == ("Literal[TypeCode.TYPEDEF]")  [operator]
+ pwndbg/commands/binder.py:116: error: Unsupported left operand type for == ("Literal[TypeCode.UNION]")  [operator]
+ pwndbg/commands/binder.py:116: error: Unsupported left operand type for == ("Literal[TypeCode.ENUM]")  [operator]
+ pwndbg/commands/binder.py:116: error: Unsupported left operand type for == ("Literal[TypeCode.FUNC]")  [operator]
+ pwndbg/commands/binder.py:116: error: Unsupported left operand type for == ("Literal[TypeCode.BOOL]")  [operator]
+ pwndbg/commands/binder.py:116: note: Left operand is of type "Literal[TypeCode.INVALID, TypeCode.POINTER, TypeCode.ARRAY, TypeCode.STRUCT, TypeCode.TYPEDEF, TypeCode.UNION, TypeCode.ENUM, TypeCode.FUNC, TypeCode.BOOL]"
+ pwndbg/commands/binder.py:118: error: Unsupported left operand type for == ("Literal[TypeCode.INVALID]")  [operator]
+ pwndbg/commands/binder.py:118: error: Unsupported left operand type for == ("Literal[TypeCode.POINTER]")  [operator]
+ pwndbg/commands/binder.py:118: error: Unsupported left operand type for == ("Literal[TypeCode.ARRAY]")  [operator]
+ pwndbg/commands/binder.py:118: error: Unsupported left operand type for == ("Literal[TypeCode.STRUCT]")  [operator]
+ pwndbg/commands/binder.py:118: error: Unsupported left operand type for == ("Literal[TypeCode.TYPEDEF]")  [operator]
+ pwndbg/commands/binder.py:118: error: Unsupported left operand type for == ("Literal[TypeCode.UNION]")  [operator]
+ pwndbg/commands/binder.py:118: error: Unsupported left operand type for == ("Literal[TypeCode.ENUM]")  [operator]
+ pwndbg/commands/binder.py:118: error: Unsupported left operand type for == ("Literal[TypeCode.FUNC]")  [operator]
+ pwndbg/commands/binder.py:118: note: Left operand is of type "Literal[TypeCode.INVALID, TypeCode.POINTER, TypeCode.ARRAY, TypeCode.STRUCT, TypeCode.TYPEDEF, TypeCode.UNION, TypeCode.ENUM, TypeCode.FUNC]"
+ pwndbg/commands/ptmalloc2.py: note: In function "format_bin":
+ pwndbg/commands/ptmalloc2.py:61: error: Unsupported left operand type for == ("LibcType")  [operator]
+ pwndbg/commands/ptmalloc2.py: note: At top level:
+ pwndbg/color/disasm.py: note: In function "one_instruction":
+ pwndbg/color/disasm.py:56: error: Unsupported left operand type for == ("InstructionCondition")  [operator]
+ pwndbg/color/disasm.py:58: error: Unsupported left operand type for == ("Literal[InstructionCondition.FALSE]")  [operator]
+ pwndbg/color/disasm.py:58: error: Unsupported left operand type for == ("Literal[InstructionCondition.UNDETERMINED_CONDITIONAL]")  [operator]
+ pwndbg/color/disasm.py:58: error: Unsupported left operand type for == ("Literal[InstructionCondition.UNCONDITIONAL]")  [operator]
+ pwndbg/color/disasm.py:58: note: Left operand is of type "Literal[InstructionCondition.FALSE, InstructionCondition.UNDETERMINED_CONDITIONAL, InstructionCondition.UNCONDITIONAL]"
+ pwndbg/color/disasm.py:60: error: Unsupported left operand type for == ("Literal[InstructionCondition.UNDETERMINED_CONDITIONAL]")  [operator]
+ pwndbg/color/disasm.py:60: error: Unsupported left operand type for == ("Literal[InstructionCondition.UNCONDITIONAL]")  [operator]
+ pwndbg/color/disasm.py:60: note: Left operand is of type "Literal[InstructionCondition.UNDETERMINED_CONDITIONAL, InstructionCondition.UNCONDITIONAL]"
+ pwndbg/aglib/nearpc.py: note: In function "preprocess_branch_visualization":
+ pwndbg/aglib/nearpc.py:226: error: Unsupported left operand type for == ("JumpRange")  [operator]
+ pwndbg/aglib/nearpc.py: note: In function "nearpc":
+ pwndbg/aglib/nearpc.py:683: error: Unsupported left operand type for == ("SplitType")  [operator]
+ pwndbg/aglib/nearpc.py:687: error: Unsupported left operand type for == ("Literal[SplitType.NO_SPLIT]")  [operator]
+ pwndbg/aglib/nearpc.py:687: error: Unsupported left operand type for == ("Literal[SplitType.BRANCH_NOT_TAKEN]")  [operator]
+ pwndbg/aglib/nearpc.py:687: note: Left operand is of type "Literal[SplitType.NO_SPLIT, SplitType.BRANCH_NOT_TAKEN]"
+ pwndbg/arguments.py: note: In function "get":
+ pwndbg/arguments.py:84: error: Unsupported left operand type for == ("Platform")  [operator]
+ pwndbg/arguments.py:126: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/commands/rop.py: note: In function "_rop":
+ pwndbg/commands/rop.py:99: error: Unsupported operand types for == ("str" and "int")  [operator]
+ pwndbg/commands/rop.py:99: note: Left operand is of type "str | int"
+ pwndbg/commands/context.py: note: In function "output":
+ pwndbg/commands/context.py:300: error: Unsupported operand types for == ("str" and "Callable[[str], None]")  [operator]
+ pwndbg/commands/context.py:300: note: Left operand is of type "str | Callable[[str], None]"
+ pwndbg/commands/context.py: note: At top level:
+ pwndbg/commands/context.py: note: In function "context_disasm":
+ pwndbg/commands/context.py:1427: error: Unsupported operand types for != ("str" and "Parameter")  [operator]
+ pwndbg/dbg_mod/lldb/__init__.py: note: In member "func_arguments" of class "LLDBType":
+ pwndbg/dbg_mod/lldb/__init__.py:584: error: Unsupported left operand type for != ("TypeCode")  [operator]
+ pwndbg/dbg_mod/lldb/__init__.py: note: In member "fields" of class "LLDBType":
+ pwndbg/dbg_mod/lldb/__init__.py:594: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/dbg_mod/lldb/__init__.py: note: In member "__int__" of class "LLDBValue":
+ pwndbg/dbg_mod/lldb/__init__.py:766: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/dbg_mod/lldb/__init__.py:782: error: Unsupported left operand type for == ("TypeCode")  [operator]
+ pwndbg/dbg_mod/lldb/__init__.py: note: In member "_resolve_tls_symbol" of class "LLDBProcess":
+ pwndbg/dbg_mod/lldb/__init__.py:1555: error: Unsupported left operand type for == ("LibcType")  [operator]
+ pwndbg/dbg_mod/lldb/repl/proc.py: note: In member "_start_io_driver" of class "ProcessDriver":
+ pwndbg/dbg_mod/lldb/repl/proc.py:361: error: Unsupported left operand type for == ("_IODriverState")  [operator]
+ pwndbg/dbg_mod/lldb/repl/proc.py: note: In member "_stop_io_driver" of class "ProcessDriver":
+ pwndbg/dbg_mod/lldb/repl/proc.py:373: error: Unsupported left operand type for == ("Literal[_IODriverState.PAUSED]")  [operator]
+ pwndbg/dbg_mod/lldb/repl/proc.py:373: error: Unsupported left operand type for == ("Literal[_IODriverState.RUNNING]")  [operator]
+ pwndbg/dbg_mod/lldb/repl/proc.py:373: note: Left operand is of type "Literal[_IODriverState.PAUSED, _IODriverState.RUNNING]"
+ pwndbg/dbg_mod/lldb/repl/proc.py: note: In member "pause_io_if_running" of class "ProcessDriver":
+ pwndbg/dbg_mod/lldb/repl/proc.py:387: error: Unsupported left operand type for != ("_IODriverState")  [operator]
+ pwndbg/dbg_mod/lldb/repl/proc.py: note: In member "resume_io_if_running" of class "ProcessDriver":
+ pwndbg/dbg_mod/lldb/repl/proc.py:402: error: Unsupported left operand type for != ("_IODriverState")  [operator]
+ pwndbg/dbg_mod/lldb/repl/proc.py: note: In member "_run_until_next_stop" of class "ProcessDriver":
+ pwndbg/dbg_mod/lldb/repl/proc.py:548: error: Unsupported left operand type for != ("_IODriverState")  [operator]

pylint (https://github.com/pycqa/pylint)
+ pylint/utils/pragma_parser.py:99: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/utils/pragma_parser.py:99: note: Left operand is of type "str | None"
+ pylint/utils/pragma_parser.py:118: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/utils/pragma_parser.py:118: note: Left operand is of type "str | None"
+ pylint/config/_pylint_config/help_message.py:48: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/config/_pylint_config/help_message.py:48: note: Left operand is of type "str | None"
+ pylint/utils/utils.py:267: error: Unsupported operand types for == ("str" and "Iterable[str | int | Pattern[str]]")  [operator]
+ pylint/utils/utils.py:267: error: Unsupported operand types for == ("str" and "type[_CallbackAction]")  [operator]
+ pylint/utils/utils.py:267: error: Unsupported operand types for == ("str" and "Callable[[Any], Any]")  [operator]
+ pylint/utils/utils.py:267: error: Unsupported operand types for == ("str" and "Callable[[Any, Any, Any, Any], Any]")  [operator]
+ pylint/utils/utils.py:267: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/utils/utils.py:267: note: Left operand is of type "int | Pattern[str] | Iterable[str | int | Pattern[str]] | type[_CallbackAction] | Callable[[Any], Any] | Callable[[Any, Any, Any, Any], Any] | None"
+ pylint/utils/utils.py:267: error: Unsupported operand types for == ("int" and "str")  [operator]
+ pylint/utils/utils.py:276: error: Unsupported operand types for == ("str" and "Iterable[str | int | Pattern[str]]")  [operator]
+ pylint/utils/utils.py:276: error: Unsupported operand types for == ("str" and "type[_CallbackAction]")  [operator]
+ pylint/utils/utils.py:276: error: Unsupported operand types for == ("str" and "Callable[[Any], Any]")  [operator]
+ pylint/utils/utils.py:276: error: Unsupported operand types for == ("str" and "Callable[[Any, Any, Any, Any], Any]")  [operator]
+ pylint/utils/utils.py:276: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/utils/utils.py:276: note: Left operand is of type "int | Pattern[str] | Iterable[str | int | Pattern[str]] | type[_CallbackAction] | Callable[[Any], Any] | Callable[[Any, Any, Any, Any], Any] | None"
+ pylint/utils/utils.py:276: error: Unsupported operand types for == ("int" and "str")  [operator]
+ pylint/utils/file_state.py:221: error: Unsupported operand types for == ("MessageDisableReason" and "None")  [operator]
+ pylint/utils/file_state.py:221: note: Left operand is of type "MessageDisableReason | None"
+ pylint/checkers/utils.py:272: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/checkers/utils.py:272: note: Left operand is of type "Any | None"
+ pylint/checkers/utils.py:343: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/checkers/utils.py:343: note: Left operand is of type "Any | None"
+ pylint/checkers/utils.py:937: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/checkers/utils.py:937: note: Left operand is of type "Any | None"
+ pylint/checkers/utils.py:1952: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/checkers/utils.py:1952: note: Left operand is of type "Any | None"
+ pylint/config/arguments_manager.py:254: error: Unsupported operand types for != ("str" and "None")  [operator]
+ pylint/config/arguments_manager.py:254: note: Left operand is of type "str | None"
+ pylint/config/arguments_manager.py:324: error: Unsupported operand types for != ("str" and "None")  [operator]
+ pylint/config/arguments_manager.py:324: note: Left operand is of type "str | None"
+ pylint/config/arguments_manager.py:385: error: Unsupported operand types for == ("str" and "Iterable[str | int | Pattern[str]]")  [operator]
+ pylint/config/arguments_manager.py:385: error: Unsupported operand types for == ("str" and "type[_CallbackAction]")  [operator]
+ pylint/config/arguments_manager.py:385: error: Unsupported operand types for == ("str" and "Callable[[Any], Any]")  [operator]
+ pylint/config/arguments_manager.py:385: error: Unsupported operand types for == ("str" and "Callable[[Any, Any, Any, Any], Any]")  [operator]
+ pylint/config/arguments_manager.py:385: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/config/arguments_manager.py:385: note: Left operand is of type "int | Pattern[str] | Iterable[str | int | Pattern[str]] | type[_CallbackAction] | Callable[[Any], Any] | Callable[[Any, Any, Any, Any], Any] | None"
+ pylint/config/arguments_manager.py:385: error: Unsupported operand types for == ("int" and "str")  [operator]
+ pylint/checkers/deprecated.py:243: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/checkers/deprecated.py:243: note: Left operand is of type "str | None"
+ pylint/checkers/typecheck.py:204: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/checkers/typecheck.py:204: note: Right operand is of type "str | None"
+ pylint/checkers/typecheck.py:484: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/checkers/typecheck.py:484: note: Left operand is of type "Any | None"
+ pylint/checkers/typecheck.py:1506: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/checkers/typecheck.py:1506: note: Left operand is of type "str | None"
+ pylint/lint/run.py:86: error: Unsupported operand types for == ("int" and "None")  [operator]
+ pylint/lint/run.py:86: note: Left operand is of type "int | None"
+ pylint/testutils/output_line.py:119: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/testutils/output_line.py:119: note: Left operand is of type "str | None"
+ pylint/checkers/variables.py:358: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/checkers/variables.py:358: note: Left operand is of type "Any | None"
+ pylint/checkers/unicode.py:183: error: Unsupported operand types for != ("int" and "None")  [operator]
+ pylint/checkers/unicode.py:183: note: Right operand is of type "int | None"
+ pylint/checkers/newstyle.py:54: error: Unsupported left operand type for != ("None")  [operator]
+ pylint/checkers/newstyle.py:54: note: Both left and right operands are unions
+ pylint/checkers/format.py:545: error: Unsupported operand types for != ("int" and "None")  [operator]
+ pylint/checkers/format.py:545: note: Left operand is of type "Literal[1, 2] | None"
+ pylint/checkers/classes/class_checker.py:2362: error: Unsupported operand types for != ("str" and "None")  [operator]
+ pylint/checkers/classes/class_checker.py:2362: note: Left operand is of type "str | None"
+ pylint/checkers/base/basic_checker.py:844: error: Unsupported operand types for == ("str" and "None")  [operator]
+ pylint/checkers/base/basic_checker.py:844: note: Left operand is of type "Any | None"
+ pylint/checkers/base/name_checker/checker.py:802: error: Unsupported left operand type for == ("TypeVarVariance")  [operator]
+ pylint/checkers/base/name_checker/checker.py:807: error: Unsupported left operand type for != ("Literal[TypeVarVariance.invariant]")  [operator]
+ pylint/checkers/base/name_checker/checker.py:807: error: Unsupported left operand type for != ("Literal[TypeVarVariance.covariant]")  [operator]
+ pylint/checkers/base/name_checker/checker.py:807: error: Unsupported left operand type for != ("Literal[TypeVarVariance.contravariant]")  [operator]
+ pylint/checkers/base/name_checker/checker.py:807: error: Unsupported left operand type for != ("Literal[TypeVarVariance.inferred]")  [operator]
+ pylint/checkers/base/name_checker/checker.py:807: note: Left operand is of type "Literal[TypeVarVariance.invariant, TypeVarVariance.covariant, TypeVarVariance.contravariant, TypeVarVariance.inferred]"
+ pylint/checkers/base/name_checker/checker.py:813: error: Unsupported left operand type for != ("Literal[TypeVarVariance.invariant]")  [operator]
+ pylint/checkers/base/name_checker/checker.py:813: error: Unsupported left operand type for != ("Literal[TypeVarVariance.covariant]")  [operator]
+ pylint/checkers/base/name_checker/checker.py:813: error: Unsupported left operand type for != ("Literal[TypeVarVariance.contravariant]")  [operator]
+ pylint/checkers/base/name_checker/checker.py:813: error: Unsupported left operand type for != ("Literal[TypeVarVariance.inferred]")  [operator]
+ pylint/checkers/base/name_checker/checker.py:813: note: Left operand is of type "Literal[TypeVarVariance.invariant, TypeVarVariance.covariant, TypeVarVariance.contravariant, TypeVarVariance.inferred]"
+ pylint/testutils/checker_test_case.py:97: error: Unsupported left operand type for == ("None")  [operator]
+ pylint/testutils/checker_test_case.py:97: note: Both left and right operands are unions
+ pylint/testutils/checker_test_case.py:98: error: Unsupported left operand type for == ("None")  [operator]
+ pylint/testutils/checker_test_case.py:98: note: Both left and right operands are unions
+ pylint/testutils/checker_test_case.py:105: error: Unsupported operand types for == ("int" and "None")  [operator]
+ pylint/testutils/checker_test_case.py:105: error: Unsupported left operand type for == ("None")  [operator]
+ pylint/testutils/checker_test_case.py:105: note: Both left and right operands are unions
+ pylint/testutils/checker_test_case.py:106: error: Unsupported operand types for == ("int" and "None")  [operator]
+ pylint/testutils/checker_test_case.py:106: error: Unsupported left operand type for == ("None")  [operator]
+ pylint/testutils/checker_test_case.py:106: note: Both left and right operands are unions
+ pylint/testutils/checker_test_case.py:107: error: Unsupported operand types for == ("int" and "None")  [operator]
+ pylint/testutils/checker_test_case.py:107: error: Unsupported left operand type for == ("None")  [operator]
+ pylint/testutils/checker_test_case.py:107: note: Both left and right operands are unions
+ pylint/testutils/checker_test_case.py:108: error: Unsupported operand types for == ("int" and "None")  [operator]
+ pylint/testutils/checker_test_case.py:108: error: Unsupported left operand type for == ("None")  [operator]
+ pylint/testutils/checker_test_case.py:108: note: Both left and right operands are unions

optuna (https://github.com/optuna/optuna)
+ optuna/distributions.py:467: error: Unsupported left operand type for == ("None")  [operator]
+ optuna/distributions.py:467: error: Unsupported operand types for == ("bool" and "None")  [operator]
+ optuna/distributions.py:467: error: Unsupported operand types for == ("int" and "None")  [operator]
+ optuna/distributions.py:467: error: Unsupported operand types for == ("float" and "None")  [operator]
+ optuna/distributions.py:467: error: Unsupported operand types for == ("str" and "None")  [operator]
+ optuna/distributions.py:467: error: Unsupported operand types for == ("bool" and "str")  [operator]
+ optuna/distributions.py:467: error: Unsupported operand types for == ("int" and "str")  [operator]
+ optuna/distributions.py:467: error: Unsupported operand types for == ("float" and "str")  [operator]
+ optuna/distributions.py:467: error: Unsupported operand types for == ("str" and "bool")  [operator]
+ optuna/distributions.py:467: error: Unsupported operand types for == ("str" and "int")  [operator]
+ optuna/distributions.py:467: error: Unsupported operand types for == ("str" and "float")  [operator]
+ optuna/distributions.py:467: note: Both left and right operands are unions
+ optuna/distributions.py:536: error: Unsupported left operand type for != ("dict_keys[str, Any]")  [operator]
+ optuna/distributions.py:641: error: Unsupported left operand type for != ("type[BaseDistribution]")  [operator]
+ optuna/distributions.py:655: error: Unsupported left operand type for != ("CategoricalDistribution")  [operator]
+ optuna/distributions.py:668: error: Unsupported left operand type for != ("Decimal")  [operator]
+ optuna/distributions.py:758: error: Unsupported left operand type for != ("BaseDistribution")  [operator]
+ optuna/storages/journal/_file.py:162: error: Unsupported operand types for == ("int" and "None")  [operator]
+ optuna/storages/journal/_file.py:162: note: Left operand is of type "int | None"
+ optuna/storages/journal/_file.py:175: error: Unsupported operand types for != ("float" and "None")  [operator]
+ optuna/storages/journal/_file.py:175: note: Right operand is of type "float | None"
+ optuna/storages/journal/_file.py:255: error: Unsupported operand types for == ("int" and "None")  [operator]
+ optuna/storages/journal/_file.py:255: note: Left operand is of type "int | None"
+ optuna/storages/journal/_file.py:268: error: Unsupported operand types for != ("float" and "None")  [operator]
+ optuna/storages/journal/_file.py:268: note: Right operand is of type "float | None"
+ optuna/pruners/_successive_halving.py:154: error: Unsupported operand types for == ("int" and "str")  [operator]
+ optuna/pruners/_successive_halving.py:154: note: Left operand is of type "str | int"
+ optuna/trial/_trial.py:669: error: Unsupported left operand type for != ("BaseDistribution")  [operator]
+ optuna/pruners/_hyperband.py:170: error: Unsupported operand types for == ("int" and "str")  [operator]
+ optuna/pruners/_hyperband.py:170: note: Left operand is of type "str | int"
+ optuna/pruners/_hyperband.py:188: error: Unsupported operand types for == ("int" and "str")  [operator]
+ optuna/pruners/_hyperband.py:188: note: Left operand is of type "str | int"
+ optuna/study/_tell.py:45: error: Unsupported operand types for == ("TrialState" and "None")  [operator]
+ optuna/study/_tell.py:45: note: Left operand is of type "TrialState | None"
+ optuna/study/_tell.py:128: error: Unsupported operand types for == ("TrialState" and "None")  [operator]
+ optuna/study/_tell.py:128: note: Left operand is of type "TrialState | None"
+ optuna/study/_tell.py:134: error: Unsupported operand types for == ("TrialState" and "None")  [operator]
+ optuna/study/_tell.py:134: note: Left operand is of type "Literal[TrialState.RUNNING, TrialState.PRUNED, TrialState.FAIL, TrialState.WAITING] | None"
+ optuna/storages/_grpc/client.py:128: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:138: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:152: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:163: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:172: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:182: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:192: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:205: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:215: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:254: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:275: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:277: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:279: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:295: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:297: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:313: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:315: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/client.py:327: error: Unsupported left operand type for == ("StatusCode")  [operator]
+ optuna/storages/_grpc/c

... (truncated 30194 lines) ...

@randolf-scholz

Copy link
Copy Markdown
Contributor Author

The error messages mypy produces like

+ pylint/config/arguments_manager.py:385: error: Unsupported operand types for == ("int" and "str")  [operator]

are misleading. Most of these operator errors should actually be lints indicating redundant comparison. We statically know a comparison of int and str is always going to be False.

python's operator systems uses expections as values via NotImplemented. Nevertheless, the way the python interpreter handles a == b is different to how it handles, say a+b because it will always default to False if both type(a).__eq__(a, b) and type(b).__eq__(b, a) return NotImplemented.

@AlexWaygood

Copy link
Copy Markdown
Member

We statically know a comparison of int and str is always going to be False.

do we?

>>> class Foo(str):
...     def __eq__(self, other):
...         return True
...
>>> Foo("definitely a str") == 42
True

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants