fix [feature] error when == or != is used on values that are incompatible types #721#2353
fix [feature] error when == or != is used on values that are incompatible types #721#2353asukaminato0721 wants to merge 5 commits intofacebook:mainfrom
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Pull request overview
Adds a new diagnostic to flag likely-buggy equality/inequality comparisons (== / !=) between incompatible types, addressing #721.
Changes:
- Introduces new
ErrorKind::IncompatibleComparisondiagnostic code. - Implements a comparison-time check in the operator/type inference pipeline to emit the diagnostic for certain incompatible equality comparisons.
- Adds a regression test and documents the new error kind in the website docs.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| website/docs/error-kinds.mdx | Documents the new incompatible-comparison diagnostic with an example. |
| pyrefly/lib/test/operators.rs | Adds a testcase asserting the new diagnostic on int vs str equality/inequality. |
| pyrefly/lib/alt/operators.rs | Implements the incompatible equality/inequality comparison check during compare_infer. |
| crates/pyrefly_config/src/error_kind.rs | Adds the IncompatibleComparison error kind to the central enum. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| testcase!( | ||
| test_incompatible_equality_comparison, | ||
| r#" | ||
| def compare(x: int, y: str, z: int | str) -> None: | ||
| x == y # E: Comparison `==` between incompatible types `int` and `str` | ||
| x != y # E: Comparison `!=` between incompatible types `int` and `str` | ||
| z == y | ||
| "#, |
There was a problem hiding this comment.
This test only asserts the new error fires for int vs str, but the implementation also introduces “equivalence groups” (numeric, bytes-like) intended to not error for cases like int == float or bytes == bytearray. Adding a couple of assertions for these non-error cases would help prevent regressions/false positives in the grouping logic.
This comment has been minimized.
This comment has been minimized.
|
this seems contreversial... I imagine we want to have this default to off? not sure. let's discuss in discord |
|
I wonder if we can use disjoint bases for this? there's a disjoint_base helper already in narrow.rs https://peps.python.org/pep-0800/#specification |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Diff from mypy_primer, showing the effect of this PR on open source code: ppb-vector (https://github.com/ppb/ppb-vector)
+ ERROR ppb_vector/__init__.py:136:44-54: Comparison `!=` between incompatible types `frozenset[str]` and `set[str]` [incompatible-comparison]
+ ERROR ppb_vector/__init__.py:564:22-23: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR tests/test_angle.py:55:22-23: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR tests/test_constants.py:13:50-52: Comparison `==` between incompatible types `float` and `Literal[90]` [incompatible-comparison]
+ ERROR tests/test_length.py:35:25-26: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
mitmproxy (https://github.com/mitmproxy/mitmproxy)
+ ERROR docs/src/examples/contrib/webscanner_helper/test_urldict.py:65:58-67: Comparison `==` between incompatible types `list[Any]` and `Literal['default']` [incompatible-comparison]
+ ERROR examples/contrib/webscanner_helper/test_urldict.py:65:58-67: Comparison `==` between incompatible types `list[Any]` and `Literal['default']` [incompatible-comparison]
+ ERROR test/mitmproxy/addons/test_view.py:45:31-40: Comparison `==` between incompatible types `float` and `Literal[946681200]` [incompatible-comparison]
+ ERROR test/mitmproxy/addons/test_view.py:62:31-40: Comparison `==` between incompatible types `float` and `Literal[946681200]` [incompatible-comparison]
+ ERROR test/mitmproxy/addons/test_view.py:80:31-40: Comparison `==` between incompatible types `float` and `Literal[946681200]` [incompatible-comparison]
+ ERROR test/mitmproxy/contentviews/test__api.py:44:57-58: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/mitmproxy/contentviews/test__api.py:53:54-55: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/mitmproxy/contentviews/test__view_graphql.py:10:17-12:6: Comparison `==` between incompatible types `Literal[2]` and `float` [incompatible-comparison]
+ ERROR test/mitmproxy/contentviews/test__view_graphql.py:13:17-15:6: Comparison `==` between incompatible types `Literal[2]` and `float` [incompatible-comparison]
+ ERROR test/mitmproxy/contentviews/test__view_graphql.py:16:17-18:6: Comparison `==` between incompatible types `Literal[0]` and `float` [incompatible-comparison]
+ ERROR test/mitmproxy/contentviews/test__view_graphql.py:19:17-22:6: Comparison `==` between incompatible types `Literal[0]` and `float` [incompatible-comparison]
+ ERROR test/mitmproxy/contentviews/test__view_graphql.py:23:17-25:6: Comparison `==` between incompatible types `Literal[0]` and `float` [incompatible-comparison]
+ ERROR test/mitmproxy/contentviews/test__view_graphql.py:26:17-89: Comparison `==` between incompatible types `Literal[0]` and `float` [incompatible-comparison]
+ ERROR test/mitmproxy/contentviews/test__view_zip.py:54:81-82: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/mitmproxy/contentviews/test__view_zip.py:55:82-83: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/mitmproxy/proxy/layers/test_websocket.py:39:33-52: Comparison `==` between incompatible types `bytes` and `bytearray` [incompatible-comparison]
+ ERROR test/mitmproxy/test_connection.py:61:37-39: Comparison `==` between incompatible types `float` and `Literal[42]` [incompatible-comparison]
rotki (https://github.com/rotki/rotki)
+ ERROR rotkehlchen/tests/api/blockchain/test_bitcoin.py:41:22-42: Comparison `==` between incompatible types `dict[str, Any]` and `list[str]` [incompatible-comparison]
+ ERROR rotkehlchen/tests/api/test_settings.py:640:24-69: Comparison `==` between incompatible types `tuple[EvmIndexer, ...]` and `list[EvmIndexer]` [incompatible-comparison]
+ ERROR rotkehlchen/tests/db/test_db.py:1112:24-34: Comparison `==` between incompatible types `str` and `Literal[1451606400]` [incompatible-comparison]
+ ERROR rotkehlchen/tests/db/test_db.py:1130:24-34: Comparison `==` between incompatible types `str` and `Literal[1491607800]` [incompatible-comparison]
dulwich (https://github.com/dulwich/dulwich)
+ ERROR dulwich/pack.py:1623:24-41: Comparison `!=` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
streamlit (https://github.com/streamlit/streamlit)
+ ERROR lib/streamlit/runtime/state/query_params.py:678:67-73: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR lib/tests/streamlit/runtime/state/query_params_test.py:75:44-47: Comparison `==` between incompatible types `Literal[1]` and `Literal['1']` [incompatible-comparison]
+ ERROR lib/tests/streamlit/runtime/state/query_params_test.py:81:46-52: Comparison `==` between incompatible types `float` and `Literal['1.23']` [incompatible-comparison]
+ ERROR lib/tests/streamlit/runtime/state/query_params_test.py:101:45-52: Comparison `==` between incompatible types `list[str]` and `Literal['test2']` [incompatible-comparison]
+ ERROR lib/tests/streamlit/runtime/state/query_params_test.py:107:45-48: Comparison `==` between incompatible types `tuple[Literal[1], Literal[2], Literal[3]]` and `Literal['3']` [incompatible-comparison]
+ ERROR lib/tests/streamlit/runtime/state/query_params_test.py:113:45-48: Comparison `==` between incompatible types `set[int]` and `Literal['3']` [incompatible-comparison]
dd-trace-py (https://github.com/DataDog/dd-trace-py)
+ ERROR ddtrace/internal/sampling.py:112:33-34: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR ddtrace/internal/sampling.py:114:35-36: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR ddtrace/llmobs/_integrations/crewai.py:67:39-45: Comparison `==` between incompatible types `dict[str, Any]` and `Literal['task']` [incompatible-comparison]
+ ERROR ddtrace/llmobs/_integrations/crewai.py:73:39-45: Comparison `==` between incompatible types `dict[str, Any]` and `Literal['flow']` [incompatible-comparison]
+ ERROR ddtrace/llmobs/_integrations/crewai.py:75:39-52: Comparison `==` between incompatible types `dict[str, Any]` and `Literal['flow_method']` [incompatible-comparison]
ibis (https://github.com/ibis-project/ibis)
+ ERROR ibis/common/tests/test_typing.py:149:23-32: Comparison `!=` between incompatible types `Sentinel` and `Literal['missing']` [incompatible-comparison]
+ ERROR ibis/expr/types/_rich.py:111:29-30: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR ibis/expr/types/relations.py:1751:24-25: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR ibis/expr/types/relations.py:1753:26-27: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
cryptography (https://github.com/pyca/cryptography)
+ ERROR tests/hazmat/primitives/test_aead.py:219:23-25: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:243:23-25: Comparison `==` between incompatible types `bytearray` and `Literal[b'decrypt me']` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:473:23-25: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:497:23-25: Comparison `==` between incompatible types `bytearray` and `Literal[b'decrypt me']` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:705:23-25: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:729:23-25: Comparison `==` between incompatible types `bytearray` and `Literal[b'decrypt me']` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:966:23-25: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:990:23-25: Comparison `==` between incompatible types `bytearray` and `Literal[b'decrypt me']` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:1201:23-25: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:1223:23-25: Comparison `==` between incompatible types `bytearray` and `Literal[b'decrypt me']` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:1462:23-25: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aead.py:1486:23-25: Comparison `==` between incompatible types `bytearray` and `Literal[b'decrypt me']` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aes.py:34:47-73: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aes.py:294:18-22: Comparison `==` between incompatible types `bytes` and `bytearray` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aes.py:319:18-22: Comparison `==` between incompatible types `bytes` and `bytearray` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aes_gcm.py:195:22-26: Comparison `==` between incompatible types `bytes` and `bytearray` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_aes_gcm.py:233:22-26: Comparison `==` between incompatible types `bytes` and `bytearray` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_concatkdf.py:143:23-31: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_concatkdf.py:345:23-31: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_hkdf.py:157:23-60: Comparison `==` between incompatible types `bytearray` and `Literal[b'gJ\xfb{\xb1Oi\xc5sMC\xb7\xe4@\xf7u']` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_hkdf.py:287:23-26: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_kbkdf.py:146:23-31: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_padding.py:133:25-44: Comparison `==` between incompatible types `bytes` and `bytearray` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_padding.py:247:25-44: Comparison `==` between incompatible types `bytes` and `bytearray` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_pbkdf2hmac.py:73:23-31: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_scrypt.py:245:23-31: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_x25519.py:343:16-29: Comparison `==` between incompatible types `bytes` and `bytearray` [incompatible-comparison]
+ ERROR tests/hazmat/primitives/test_x963kdf.py:125:23-31: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
altair (https://github.com/vega/altair)
+ ERROR tests/test_datasets.py:145:35-51: Comparison `==` between incompatible types `set[str]` and `frozenset[str]` [incompatible-comparison]
+ ERROR tests/utils/test_schemapi.py:250:40-41: Comparison `==` between incompatible types `dict[str, Any]` and `Literal[4]` [incompatible-comparison]
+ ERROR tests/utils/test_schemapi.py:254:52-65: Comparison `==` between incompatible types `dict[str, Any]` and `list[int | str]` [incompatible-comparison]
+ ERROR tests/utils/test_schemapi.py:255:60-71: Comparison `==` between incompatible types `dict[str, Any]` and `list[LiteralString]` [incompatible-comparison]
+ ERROR tests/utils/test_schemapi.py:261:29-32: Comparison `==` between incompatible types `dict[str, Any]` and `Literal['A']` [incompatible-comparison]
+ ERROR tests/utils/test_schemapi.py:265:29-32: Comparison `==` between incompatible types `dict[str, Any]` and `Literal['B']` [incompatible-comparison]
scipy (https://github.com/scipy/scipy)
+ ERROR subprojects/array_api_compat/array_api_compat/array_api_compat/torch/_aliases.py:440:26-37: Comparison `!=` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR subprojects/array_api_compat/array_api_compat/vendor_test/vendored/_compat/torch/_aliases.py:440:26-37: Comparison `!=` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR subprojects/array_api_extra/src/array_api_extra/_lib/_funcs.py:431:16-17: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
colour (https://github.com/colour-science/colour)
+ ERROR colour/algebra/tests/test_interpolation.py:896:46-47: Comparison `==` between incompatible types `float` and `Literal[3]` [incompatible-comparison]
+ ERROR colour/notation/munsell/centore2014.py:1897:27-28: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR colour/plotting/tests/test_common.py:127:86-87: Comparison `==` between incompatible types `float` and `Literal[2]` [incompatible-comparison]
pyinstrument (https://github.com/joerick/pyinstrument)
+ ERROR pyinstrument/renderers/console.py:276:36-37: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR pyinstrument/session.py:175:40-41: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR pyinstrument/util.py:95:17-18: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
urllib3 (https://github.com/urllib3/urllib3)
+ ERROR test/test_response.py:1114:23-31: Comparison `==` between incompatible types `bytearray` and `Literal[b'hello']` [incompatible-comparison]
+ ERROR test/test_response.py:1120:24-33: Comparison `==` between incompatible types `bytearray` and `Literal[b' world']` [incompatible-comparison]
+ ERROR test/test_retry.py:139:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/test_retry.py:142:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/test_retry.py:158:44-55: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR test/test_retry.py:165:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/test_retry.py:168:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/test_retry.py:179:44-55: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/test_retry.py:182:44-55: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/test_retry.py:189:65-80: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR test/test_retry.py:190:69-84: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR test/test_retry.py:193:51-52: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/test_retry.py:194:51-52: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/test_retry.py:206:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/test_retry.py:209:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/test_retry.py:220:44-55: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/test_retry.py:223:44-55: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/test_retry.py:227:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/test_retry.py:230:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/test_retry.py:239:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/test_retry.py:349:52-353:10: Comparison `==` between incompatible types `frozenset[str]` and `set[str]` [incompatible-comparison]
+ ERROR test/test_retry.py:358:52-68: Comparison `==` between incompatible types `frozenset[str]` and `set[str]` [incompatible-comparison]
+ ERROR test/test_retry.py:371:50-58: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR test/test_util.py:740:50-51: Comparison `==` between incompatible types `float` and `Literal[2]` [incompatible-comparison]
+ ERROR test/test_util.py:742:50-52: Comparison `==` between incompatible types `float` and `Literal[37]` [incompatible-comparison]
Expression (https://github.com/cognitedata/Expression)
+ ERROR tests/test_array.py:122:18-21: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR tests/test_array.py:128:18-21: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR tests/test_parser.py:136:31-34: Comparison `==` between incompatible types `float` and `Literal[123]` [incompatible-comparison]
scikit-learn (https://github.com/scikit-learn/scikit-learn)
+ ERROR sklearn/covariance/tests/test_graphical_lasso.py:56:29-30: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR sklearn/decomposition/_nmf.py:505:30-31: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR sklearn/ensemble/tests/test_gradient_boosting.py:1464:54-55: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR sklearn/ensemble/tests/test_gradient_boosting.py:1465:66-67: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR sklearn/externals/array_api_compat/torch/_aliases.py:440:26-37: Comparison `!=` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR sklearn/externals/array_api_extra/_lib/_funcs.py:618:16-17: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR sklearn/impute/tests/test_impute.py:216:21-40: Comparison `==` between incompatible types `Literal[0]` and `float` [incompatible-comparison]
+ ERROR sklearn/linear_model/tests/test_coordinate_descent.py:721:19-32: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR sklearn/linear_model/tests/test_logistic.py:504:21-26: Comparison `==` between incompatible types `list[Unknown]` and `int` [incompatible-comparison]
+ ERROR sklearn/metrics/cluster/tests/test_supervised.py:282:38-39: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR sklearn/metrics/cluster/tests/test_supervised.py:296:48-49: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR sklearn/metrics/cluster/tests/test_supervised.py:297:40-41: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR sklearn/tests/test_kernel_approximation.py:460:31-62: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR sklearn/tests/test_multiclass.py:181:36-67: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR sklearn/tests/test_multiclass.py:540:36-67: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR sklearn/tests/test_multiclass.py:545:36-67: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR sklearn/tests/test_multiclass.py:559:37-68: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR sklearn/tree/tests/test_tree.py:1011:34-35: Comparison `==` between incompatible types `list[Unknown]` and `Literal[2]` [incompatible-comparison]
+ ERROR sklearn/tree/tests/test_tree.py:2045:39-40: Comparison `==` between incompatible types `float64` and `Literal[0]` [incompatible-comparison]
freqtrade (https://github.com/freqtrade/freqtrade)
+ ERROR freqtrade/data/metrics.py:457:23-24: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/exchange/exchange.py:1086:89-90: Comparison `!=` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR freqtrade/exchange/exchange.py:3681:32-33: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/exchange/exchange_utils.py:195:43-44: Comparison `!=` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR freqtrade/exchange/exchange_utils.py:209:43-44: Comparison `!=` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR freqtrade/freqtradebot.py:558:76-77: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/freqtradebot.py:816:48-49: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/freqtradebot.py:954:42-43: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/freqtradebot.py:2470:23-24: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/freqtradebot.py:2601:23-24: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/misc.py:184:32-33: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR freqtrade/misc.py:184:44-46: Comparison `==` between incompatible types `float` and `Literal[-1]` [incompatible-comparison]
+ ERROR freqtrade/optimize/backtesting.py:616:23-25: Comparison `==` between incompatible types `float` and `Literal[-1]` [incompatible-comparison]
+ ERROR freqtrade/optimize/backtesting.py:724:43-44: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/optimize/backtesting.py:962:89-90: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/optimize/hyperopt_loss/hyperopt_loss_sharpe_daily.py:62:24-25: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/optimize/hyperopt_loss/hyperopt_loss_sortino_daily.py:70:26-27: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/persistence/trade_model.py:829:94-95: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/plugins/pairlist/PriceFilter.py:110:97-98: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/strategy/strategy_helper.py:143:28-30: Comparison `==` between incompatible types `float` and `Literal[-1]` [incompatible-comparison]
+ ERROR freqtrade/strategy/strategy_helper.py:143:85-86: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR freqtrade/strategy/strategy_helper.py:176:24-25: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR freqtrade/wallets.py:332:31-32: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
setuptools (https://github.com/pypa/setuptools)
+ ERROR setuptools/_distutils/compilers/C/tests/test_cygwin.py:42:63-65: Comparison `==` between incompatible types `str` and `list[@_]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_build_clib.py:100:36-47: Comparison `==` between incompatible types `Literal['one-dir']` and `list[str]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_build_ext.py:272:33-67: Comparison `==` between incompatible types `Literal['my_lib, other_lib lastlib']` and `list[str]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_build_ext.py:287:29-43: Comparison `==` between incompatible types `LiteralString` and `list[str]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_build_ext.py:294:36-59: Comparison `==` between incompatible types `Literal['one two,three']` and `list[str]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_build_ext.py:303:30-58: Comparison `==` between incompatible types `Literal['one,two']` and `list[tuple[str, str]]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_build_ext.py:310:29-43: Comparison `==` between incompatible types `Literal['one,two']` and `list[str]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_build_ext.py:321:33-43: Comparison `==` between incompatible types `Literal['1 2']` and `list[str]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_build_ext.py:360:33-38: Comparison `==` between incompatible types `list[str]` and `Literal['foo']` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_cmd.py:39:31-44: Comparison `==` between incompatible types `Literal['ok,dok']` and `list[str]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_config_cmd.py:66:36-50: Comparison `==` between incompatible types `LiteralString` and `list[str]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_config_cmd.py:67:33-40: Comparison `==` between incompatible types `Literal['one']` and `list[str]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_config_cmd.py:68:36-53: Comparison `==` between incompatible types `LiteralString` and `list[str]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_install_lib.py:37:32-33: Comparison `==` between incompatible types `Literal['2']` and `Literal[2]` [incompatible-comparison]
+ ERROR setuptools/_distutils/tests/test_sysconfig.py:300:23-29: Comparison `==` between incompatible types `bytes` and `Literal['True']` [incompatible-comparison]
+ ERROR setuptools/dist.py:1040:27-28: Comparison `==` between incompatible types `str` and `Literal[0]` [incompatible-comparison]
+ ERROR setuptools/dist.py:1052:29-30: Comparison `==` between incompatible types `str` and `Literal[1]` [incompatible-comparison]
+ ERROR setuptools/tests/test_manifest.py:230:58-74: Comparison `==` between incompatible types `frozenset[Unknown]` and `set[Unknown]` [incompatible-comparison]
+ ERROR setuptools/tests/test_manifest.py:235:33-49: Comparison `==` between incompatible types `frozenset[Unknown]` and `set[Unknown]` [incompatible-comparison]
+ ERROR setuptools/tests/test_manifest.py:241:25-41: Comparison `==` between incompatible types `frozenset[str | Unknown]` and `set[Unknown]` [incompatible-comparison]
+ ERROR setuptools/tests/test_manifest.py:253:25-41: Comparison `==` between incompatible types `frozenset[Unknown]` and `set[Unknown]` [incompatible-comparison]
+ ERROR setuptools/tests/test_manifest.py:267:25-41: Comparison `==` between incompatible types `frozenset[Unknown]` and `set[Unknown]` [incompatible-comparison]
+ ERROR setuptools/tests/test_manifest.py:279:25-41: Comparison `==` between incompatible types `frozenset[Unknown]` and `set[Unknown]` [incompatible-comparison]
+ ERROR setuptools/tests/test_manifest.py:291:25-41: Comparison `==` between incompatible types `frozenset[Unknown]` and `set[Unknown]` [incompatible-comparison]
+ ERROR setuptools/tests/test_manifest.py:303:25-41: Comparison `==` between incompatible types `frozenset[Unknown]` and `set[Unknown]` [incompatible-comparison]
+ ERROR setuptools/tests/test_manifest.py:320:25-41: Comparison `==` between incompatible types `frozenset[str | Unknown]` and `set[Unknown]` [incompatible-comparison]
+ ERROR setuptools/tests/test_manifest.py:332:25-41: Comparison `==` between incompatible types `frozenset[Unknown]` and `set[Unknown]` [incompatible-comparison]
pwndbg (https://github.com/pwndbg/pwndbg)
+ ERROR pwndbg/aglib/elf.py:313:69-79: Comparison `==` between incompatible types `bytearray` and `Literal[b'\x7fELF']` [incompatible-comparison]
+ ERROR pwndbg/aglib/elf.py:326:70-80: Comparison `==` between incompatible types `bytearray` and `Literal[b'\x7fELF']` [incompatible-comparison]
+ ERROR pwndbg/aglib/elf.py:337:74-84: Comparison `==` between incompatible types `bytearray` and `Literal[b'\x7fELF']` [incompatible-comparison]
+ ERROR pwndbg/aglib/godbg.py:815:37-44: Comparison `!=` between incompatible types `bytearray` and `Literal[b'\x00']` [incompatible-comparison]
+ ERROR pwndbg/aglib/kernel/slab.py:499:47-60: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR pwndbg/aglib/macho.py:392:19-22: Comparison `!=` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR pwndbg/aglib/objc.py:909:17-21: Comparison `!=` between incompatible types `int` and `Literal[b'[']` [incompatible-comparison]
+ ERROR pwndbg/aglib/objc.py:924:17-21: Comparison `!=` between incompatible types `int` and `Literal[b'^']` [incompatible-comparison]
+ ERROR pwndbg/commands/valist.py:40:17-25: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR pwndbg/gdblib/got.py:363:20-23: Comparison `==` between incompatible types `bytearray` and `Literal[b'']` [incompatible-comparison]
scikit-build-core (https://github.com/scikit-build/scikit-build-core)
+ ERROR tests/test_build_cli.py:56:35-74: Comparison `==` between incompatible types `frozenset[Any]` and `set[str]` [incompatible-comparison]
+ ERROR tests/test_build_cli.py:58:35-62:10: Comparison `==` between incompatible types `frozenset[Any]` and `set[str]` [incompatible-comparison]
+ ERROR tests/test_build_cli.py:64:35-69:10: Comparison `==` between incompatible types `frozenset[Any]` and `set[str]` [incompatible-comparison]
apprise (https://github.com/caronc/apprise)
+ ERROR apprise/plugins/kodi.py:238:29-54: Comparison `==` between incompatible types `tuple[Literal['kodi'], Literal['xbmc']]` and `int` [incompatible-comparison]
+ ERROR apprise/plugins/vapid/__init__.py:499:33-34: Comparison `==` between incompatible types `list[Unknown]` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/test_api.py:1337:30-39: Comparison `==` between incompatible types `list[str]` and `tuple[Literal['/tmp']]` [incompatible-comparison]
+ ERROR tests/test_apprise_utils.py:2267:27-36: Comparison `==` between incompatible types `int` and `Literal['updated']` [incompatible-comparison]
+ ERROR tests/test_plugin_discord.py:552:39-40: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/test_plugin_email.py:2215:29-63: Comparison `==` between incompatible types `list[bool | str]` and `tuple[Literal[False], Literal['user@custom-domain.casa']]` [incompatible-comparison]
+ ERROR tests/test_plugin_reddit.py:343:39-40: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/test_plugin_revolt.py:373:39-40: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/test_plugin_xmpp.py:4156:28-75: Comparison `==` between incompatible types `str` and `tuple[Literal['groupchat'], Literal['general@conference.example.com']]` [incompatible-comparison]
psycopg (https://github.com/psycopg/psycopg)
+ ERROR tests/test_connection_info.py:195:49-53: Comparison `==` between incompatible types `float` and `Literal[3600]` [incompatible-comparison]
+ ERROR tests/test_connection_info.py:197:49-53: Comparison `==` between incompatible types `float` and `Literal[7200]` [incompatible-comparison]
starlette (https://github.com/encode/starlette)
+ ERROR tests/test_responses.py:652:22-30: Comparison `==` between incompatible types `bytearray` and `Literal[b'chunk']` [incompatible-comparison]
mongo-python-driver (https://github.com/mongodb/mongo-python-driver)
+ ERROR pymongo/asynchronous/topology.py:347:27-28: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR pymongo/synchronous/topology.py:347:27-28: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
schemathesis (https://github.com/schemathesis/schemathesis)
+ ERROR src/schemathesis/generation/coverage.py:1706:17-23: Comparison `!=` between incompatible types `float` and `int` [incompatible-comparison]
pip (https://github.com/pypa/pip)
+ ERROR src/pip/_vendor/rich/progress.py:1032:30-31: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
openlibrary (https://github.com/internetarchive/openlibrary)
+ ERROR openlibrary/catalog/marc/marc_binary.py:173:32-39: Comparison `!=` between incompatible types `int` and `Literal[b'\x1e']` [incompatible-comparison]
+ ERROR openlibrary/catalog/marc/marc_binary.py:176:30-37: Comparison `!=` between incompatible types `int` and `Literal[b'\x1e']` [incompatible-comparison]
+ ERROR openlibrary/i18n/__init__.py:295:37-40: Comparison `==` between incompatible types `float` and `Literal[100]` [incompatible-comparison]
+ ERROR openlibrary/i18n/__init__.py:304:40-43: Comparison `==` between incompatible types `float` and `Literal[100]` [incompatible-comparison]
egglog-python (https://github.com/egraphs-good/egglog-python)
+ ERROR python/tests/test_high_level.py:1570:25-38: Comparison `==` between incompatible types `int` and `tuple[test_binary_preserved.X, test_binary_preserved.X]` [incompatible-comparison]
cloud-init (https://github.com/canonical/cloud-init)
+ ERROR tests/unittests/distros/package_management/test_apt.py:75:23-37: Comparison `==` between incompatible types `SubpResult` and `Literal['return_thing']` [incompatible-comparison]
+ ERROR tests/unittests/sources/test_azure.py:2951:29-56: Comparison `==` between incompatible types `Literal['Running']` and `list[Unknown]` [incompatible-comparison]
+ ERROR tests/unittests/sources/test_azure.py:2962:29-56: Comparison `==` between incompatible types `Literal['Savable']` and `list[Unknown]` [incompatible-comparison]
+ ERROR tests/unittests/sources/test_cloudstack.py:526:31-35: Comparison `==` between incompatible types `dict[Unknown, Unknown]` and `Literal['md']` [incompatible-comparison]
+ ERROR tests/unittests/sources/test_gce.py:468:31-35: Comparison `==` between incompatible types `dict[Unknown, Unknown]` and `Literal['md']` [incompatible-comparison]
+ ERROR tests/unittests/sources/test_oracle.py:567:16-65: Comparison `==` between incompatible types `_Call` and `_CallList` [incompatible-comparison]
aiohttp (https://github.com/aio-libs/aiohttp)
+ ERROR aiohttp/client.py:249:53-54: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR aiohttp/http_parser.py:266:39-45: Comparison `!=` between incompatible types `bytes` and `Literal['\r\n']` [incompatible-comparison]
vision (https://github.com/pytorch/vision)
+ ERROR torchvision/ops/focal_loss.py:36:43-45: Comparison `!=` between incompatible types `float` and `Literal[-1]` [incompatible-comparison]
+ ERROR torchvision/prototype/datasets/_home.py:26:23-26: Comparison `==` between incompatible types `bool` and `Literal['1']` [incompatible-comparison]
+ ERROR torchvision/transforms/v2/functional/_geometry.py:1370:21-22: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR torchvision/transforms/v2/functional/_geometry.py:1372:21-24: Comparison `==` between incompatible types `float` and `Literal[180]` [incompatible-comparison]
+ ERROR torchvision/transforms/v2/functional/_geometry.py:1376:25-27: Comparison `==` between incompatible types `float` and `Literal[90]` [incompatible-comparison]
+ ERROR torchvision/transforms/v2/functional/_geometry.py:1378:25-28: Comparison `==` between incompatible types `float` and `Literal[270]` [incompatible-comparison]
+ ERROR torchvision/transforms/v2/functional/_geometry.py:2067:17-18: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR torchvision/transforms/v2/functional/_geometry.py:2139:17-18: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
sockeye (https://github.com/awslabs/sockeye)
+ ERROR sockeye/loss.py:151:31-32: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/unit/test_data_io.py:240:54-80: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
zulip (https://github.com/zulip/zulip)
+ ERROR corporate/lib/activity.py:181:28-29: Comparison `==` between incompatible types `Decimal` and `Literal[0]` [incompatible-comparison]
+ ERROR corporate/lib/stripe.py:115:23-24: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR corporate/lib/stripe.py:137:32-33: Comparison `==` between incompatible types `Decimal` and `Literal[0]` [incompatible-comparison]
+ ERROR zerver/tests/test_timezone.py:50:49-55: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
speedrun.com_global_scoreboard_webapp (https://github.com/Avasam/speedrun.com_global_scoreboard_webapp)
+ ERROR backend/services/user_updater_helpers.py:235:100-101: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
ignite (https://github.com/pytorch/ignite)
+ ERROR ignite/engine/engine.py:1011:62-84: Comparison `!=` between incompatible types `Literal[False]` and `Literal['skip_epoch_completed']` [incompatible-comparison]
+ ERROR ignite/engine/engine.py:1044:41-57: Comparison `!=` between incompatible types `Literal[False]` and `Literal['skip_completed']` [incompatible-comparison]
+ ERROR ignite/engine/engine.py:1211:62-84: Comparison `!=` between incompatible types `Literal[False]` and `Literal['skip_epoch_completed']` [incompatible-comparison]
+ ERROR ignite/engine/engine.py:1244:41-57: Comparison `!=` between incompatible types `Literal[False]` and `Literal['skip_completed']` [incompatible-comparison]
hydpy (https://github.com/hydpy-dev/hydpy)
+ ERROR hydpy/auxs/armatools.py:269:22-23: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR hydpy/core/timetools.py:1357:26-37: Comparison `!=` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR hydpy/models/ga/ga_control.py:117:41-44: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
pandas (https://github.com/pandas-dev/pandas)
+ ERROR pandas/core/indexes/range.py:997:56-66: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR pandas/core/indexes/range.py:998:52-62: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR pandas/core/internals/managers.py:1771:27-35: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR pandas/core/window/numba_.py:146:54-55: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR pandas/core/window/numba_.py:318:54-55: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR pandas/io/excel/_odfreader.py:203:23-33: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR pandas/io/excel/_pyxlsb.py:103:23-29: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR pandas/io/formats/css.py:385:24-27: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR pandas/io/formats/format.py:1933:20-21: Comparison `!=` between incompatible types `Decimal` and `Literal[0]` [incompatible-comparison]
+ ERROR pandas/io/parsers/readers.py:225:24-27: Comparison `!=` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR pandas/io/parsers/readers.py:2139:21-27: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR pandas/tests/arrays/numpy_/test_numpy.py:325:23-24: Comparison `==` between incompatible types `float` and `Literal[5]` [incompatible-comparison]
+ ERROR pandas/tests/frame/indexing/test_indexing.py:1080:30-31: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR pandas/tests/groupby/test_api.py:136:17-32: Comparison `!=` between incompatible types `set[str]` and `frozenset[str]` [incompatible-comparison]
+ ERROR pandas/tests/indexes/test_common.py:129:30-34: Comparison `==` between incompatible types `Literal['This is the new name for this index']` and `tuple[Literal['A'], Literal['B']]` [incompatible-comparison]
+ ERROR pandas/tests/scalar/timedelta/methods/test_as_unit.py:72:38-43: Comparison `==` between incompatible types `float` and `Literal[86400]` [incompatible-comparison]
+ ERROR pandas/tests/scalar/timedelta/methods/test_as_unit.py:80:39-44: Comparison `==` between incompatible types `float` and `Literal[86400]` [incompatible-comparison]
+ ERROR pandas/tests/scalar/timedelta/test_arithmetic.py:476:48-49: Comparison `==` between incompatible types `float` and `Literal[4]` [incompatible-comparison]
+ ERROR pandas/tests/scalar/timedelta/test_constructors.py:283:35-48: Comparison `==` between incompatible types `float` and `Literal[1000000000000]` [incompatible-comparison]
+ ERROR pandas/tests/scalar/timedelta/test_timedelta.py:132:26-30: Comparison `==` between incompatible types `float` and `Literal[1000]` [incompatible-comparison]
+ ERROR pandas/tests/scalar/timestamp/test_timestamp.py:325:38-50: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR pandas/tests/tools/test_to_datetime.py:3264:43-50: Comparison `==` between incompatible types `float64` and `Literal[2456658]` [incompatible-comparison]
+ ERROR pandas/tests/tslibs/test_timedeltas.py:89:53-57: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR pandas/tests/tslibs/test_timedeltas.py:90:65-69: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR pandas/tseries/frequencies.py:441:17-18: Comparison `!=` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR pandas/tseries/frequencies.py:442:25-35: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
typeshed-stats (https://github.com/AlexWaygood/typeshed-stats)
+ ERROR tests/test_gather.py:1152:45-67: Comparison `==` between incompatible types `set[str]` and `frozenset[str]` [incompatible-comparison]
AutoSplit (https://github.com/Toufool/AutoSplit)
+ ERROR src/compare.py:209:16-17: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/compare.py:216:20-27: Comparison `!=` between incompatible types `float` and `Literal[255]` [incompatible-comparison]
pytest-robotframework (https://github.com/detachhead/pytest-robotframework)
+ ERROR tests/fixtures/test_python/test_assertion_fails_with_description.py:8:21-28: Comparison `==` between incompatible types `Literal[1]` and `Literal['wrong']` [incompatible-comparison]
+ ERROR tests/fixtures/test_python/test_assertion_fails_with_fail_message_hide_assert.py:8:21-28: Comparison `==` between incompatible types `Literal[1]` and `Literal['wrong']` [incompatible-comparison]
+ ERROR tests/fixtures/test_python/test_assertion_passes_custom_messages.py:14:25-32: Comparison `==` between incompatible types `Literal[1]` and `Literal['wrong']` [incompatible-comparison]
werkzeug (https://github.com/pallets/werkzeug)
+ ERROR tests/test_datastructures.py:441:42-43: Comparison `==` between incompatible types `Literal['1']` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/test_datastructures.py:758:24-29: Comparison `!=` between incompatible types `tuple[Literal[1], Literal[2], Literal[3], Literal[4]]` and `ImmutableList[int]` [incompatible-comparison]
+ ERROR tests/test_datastructures.py:906:36-37: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR tests/test_datastructures.py:909:36-37: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/test_datastructures.py:910:33-34: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR tests/test_datastructures.py:912:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR tests/test_datastructures.py:915:44-45: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/test_datastructures.py:916:41-42: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR tests/test_http.py:41:34-35: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/test_http.py:75:35-36: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/test_http.py:86:30-31: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/test_wrappers.py:997:33-54: Comparison `==` between incompatible types `tuple[Literal['foo'], Literal['bar']]` and `list[str]` [incompatible-comparison]
+ ERROR src/werkzeug/datastructures/accept.py:145:27-28: Comparison `!=` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR src/werkzeug/test.py:1453:70-71: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
pyodide (https://github.com/pyodide/pyodide)
+ ERROR src/tests/test_typeconversions.py:2279:18-21: Comparison `==` between incompatible types `JsBigInt` and `float` [incompatible-comparison]
rich (https://github.com/Textualize/rich)
+ ERROR rich/progress.py:1032:30-31: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
core (https://github.com/home-assistant/core)
+ ERROR homeassistant/components/airtouch5/cover.py:121:32-33: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/bayesian/helpers.py:65:75-76: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR homeassistant/components/bayesian/helpers.py:66:77-78: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR homeassistant/components/camera/img_util.py:32:33-45: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR homeassistant/components/camera/img_util.py:32:72-85: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR homeassistant/components/deluge/sensor.py:36:39-40: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/deluge/sensor.py:38:22-23: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/derivative/sensor.py:235:80-81: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/derivative/sensor.py:406:38-39: Comparison `!=` between incompatible types `Decimal` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/devolo_home_control/siren.py:65:31-32: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/evohome/climate.py:202:44-45: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/fibaro/binary_sensor.py:103:51-52: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/fortios/device_tracker.py:116:44-45: Comparison `==` between incompatible types `dict[str, Any]` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/growatt_server/coordinator.py:324:48-49: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/history/websocket_api.py:255:24-25: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/history/websocket_api.py:302:44-45: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/homekit/type_lights.py:275:30-31: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/integration/sensor.py:339:80-81: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/limitlessled/light.py:287:36-37: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/modbus/climate.py:510:37-42: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR homeassistant/components/modbus/climate.py:533:39-44: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR homeassistant/components/modbus/validators.py:256:15-16: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/mold_indicator/sensor.py:358:32-33: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/mold_indicator/sensor.py:373:82-83: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/mqtt/light/schema_basic.py:421:28-29: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/number/__init__.py:339:27-28: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/owntracks/__init__.py:255:19-20: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/prana/number.py:49:25-26: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/recorder/statistics.py:639:42-57: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR homeassistant/components/rtorrent/sensor.py:191:49-50: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/rtorrent/sensor.py:193:32-33: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/tesla_fleet/sensor.py:538:65-66: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/components/xiaomi_aqara/sensor.py:199:54-55: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/util/color.py:409:19-20: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/util/color.py:572:22-23: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR homeassistant/util/unit_conversion.py:164:47-48: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
paasta (https://github.com/yelp/paasta)
+ ERROR paasta_tools/cli/cmds/mark_for_deployment.py:574:28-29: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR paasta_tools/cli/cmds/mark_for_deployment.py:574:50-53: Comparison `!=` between incompatible types `float` and `Literal[100]` [incompatible-comparison]
trio (https://github.com/python-trio/trio)
+ ERROR src/trio/_core/_run.py:2678:23-24: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_guest_mode.py:398:39-43: Comparison `==` between incompatible types `float` and `Literal[9999]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_guest_mode.py:669:39-40: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_guest_mode.py:672:39-47: Comparison `==` between incompatible types `float` and `Literal[120]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:20:22-23: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:21:32-33: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:27:45-46: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:28:45-46: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:33:22-23: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:39:45-46: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:40:45-46: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:45:45-46: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:46:45-46: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:55:23-24: Comparison `==` between incompatible types `float` and `Literal[3]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_mock_clock.py:63:45-46: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:351:50-51: Comparison `==` between incompatible types `float` and `Literal[5]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:398:39-40: Comparison `==` between incompatible types `float` and `Literal[5]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:1835:58-59: Comparison `==` between incompatible types `float` and `Literal[5]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:1837:58-59: Comparison `==` between incompatible types `float` and `Literal[3]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:1839:58-59: Comparison `==` between incompatible types `float` and `Literal[5]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:1841:58-60: Comparison `==` between incompatible types `float` and `Literal[10]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:1843:58-59: Comparison `==` between incompatible types `float` and `Literal[5]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:1847:58-60: Comparison `==` between incompatible types `float` and `Literal[10]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:1994:49-56: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:1996:45-56: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:2002:41-46: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:2175:45-46: Comparison `==` between incompatible types `float` and `Literal[6]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_run.py:2194:45-46: Comparison `==` between incompatible types `float` and `Literal[7]` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_windows.py:163:34-38: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_windows.py:243:30-40: Comparison `==` between incompatible types `bytearray` and `Literal[b'test1\n']` [incompatible-comparison]
+ ERROR src/trio/_core/_tests/test_windows.py:248:30-40: Comparison `==` between incompatible types `bytearray` and `Literal[b'test2\n']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_dtls.py:705:42-43: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR src/trio/_tests/test_fakenet.py:105:19-39: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR src/trio/_tests/test_fakenet.py:113:20-40: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR src/trio/_tests/test_fakenet.py:172:24-29: Comparison `==` between incompatible types `bytearray` and `Literal[b'xy']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_fakenet.py:173:24-39: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR src/trio/_tests/test_fakenet.py:184:24-29: Comparison `==` between incompatible types `bytearray` and `Literal[b'xy']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_highlevel_open_tcp_stream.py:402:35-38: Comparison `==` between incompatible types `float` and `Literal[100]` [incompatible-comparison]
+ ERROR src/trio/_tests/test_highlevel_open_tcp_stream.py:422:35-38: Comparison `==` between incompatible types `float` and `Literal[100]` [incompatible-comparison]
+ ERROR src/trio/_tests/test_highlevel_open_tcp_stream.py:487:35-36: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR src/trio/_tests/test_highlevel_open_tcp_stream.py:688:35-36: Comparison `==` between incompatible types `float` and `Literal[5]` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:241:19-22: Comparison `==` between incompatible types `list[tuple[AddressFamily, SocketKind, int, str, tuple[int, bytes] | tuple[str, int] | tuple[str, int, int, int]]]` and `Literal['x']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:961:23-41: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1003:23-43: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1021:28-33: Comparison `==` between incompatible types `bytearray` and `Literal[b'xy']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1022:28-43: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1056:52-60: Comparison `==` between incompatible types `list[tuple[AddressFamily, SocketKind, int, str, tuple[int, bytes] | tuple[str, int] | tuple[str, int, int, int]]]` and `Literal['ok ::1']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1057:53-61: Comparison `==` between incompatible types `list[tuple[AddressFamily, SocketKind, int, str, tuple[int, bytes] | tuple[str, int] | tuple[str, int, int, int]]]` and `Literal['ok ::1']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1058:55-66: Comparison `==` between incompatible types `list[tuple[AddressFamily, SocketKind, int, str, tuple[int, bytes] | tuple[str, int] | tuple[str, int, int, int]]]` and `Literal['ok faß.de']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1059:62-73: Comparison `==` between incompatible types `list[tuple[AddressFamily, SocketKind, int, str, tuple[int, bytes] | tuple[str, int] | tuple[str, int, int, int]]]` and `Literal['ok faß.de']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1060:63-74: Comparison `==` between incompatible types `list[tuple[AddressFamily, SocketKind, int, str, tuple[int, bytes] | tuple[str, int] | tuple[str, int, int, int]]]` and `Literal['ok faß.de']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1104:72-1109:10: Comparison `==` between incompatible types `list[tuple[AddressFamily, SocketKind, int, str, tuple[int, bytes] | tuple[str, int] | tuple[str, int, int, int]]]` and `tuple[Literal['custom_gai'], Literal[b'localhost'], Literal['foo'], *tuple[AddressFamily | int, ...]]` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1114:19-27: Comparison `==` between incompatible types `list[tuple[AddressFamily, SocketKind, int, str, tuple[int, bytes] | tuple[str, int] | tuple[str, int, int, int]]]` and `tuple[Literal['custom_gai'], Literal[b'xn--f-1gaa'], Literal['foo'], Literal[0], Literal[0], Literal[0], Literal[0]]` [incompatible-comparison]
+ ERROR src/trio/_tests/test_socket.py:1128:57-60: Comparison `==` between incompatible types `list[tuple[AddressFamily, SocketKind, int, str, tuple[int, bytes] | tuple[str, int] | tuple[str, int, int, int]]]` and `Literal['x']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_subprocess.py:242:28-36: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:257:33-37: Comparison `==` between incompatible types `bytearray` and `Literal[b'1']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:258:34-42: Comparison `==` between incompatible types `bytearray` and `Literal[b'23456']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:260:32-38: Comparison `==` between incompatible types `bytearray` and `Literal[b'789']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:272:37-43: Comparison `==` between incompatible types `bytearray` and `Literal[b'abc']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:276:36-40: Comparison `==` between incompatible types `bytearray` and `Literal[b'd']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:278:35-43: Comparison `==` between incompatible types `bytearray` and `Literal[b'efghi']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:286:39-45: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:304:34-37: Comparison `==` between incompatible types `bytearray` and `Literal[b'']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:305:32-35: Comparison `==` between incompatible types `bytearray` and `Literal[b'']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:306:33-36: Comparison `==` between incompatible types `bytearray` and `Literal[b'']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:307:31-34: Comparison `==` between incompatible types `bytearray` and `Literal[b'']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:332:38-42: Comparison `==` between incompatible types `bytearray` and `Literal[b'1']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:333:37-42: Comparison `==` between incompatible types `bytearray` and `Literal[b'23']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:345:40-46: Comparison `==` between incompatible types `bytearray` and `Literal[b'456']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:369:36-42: Comparison `==` between incompatible types `bytearray` and `Literal[b'xxx']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:370:36-39: Comparison `==` between incompatible types `bytearray` and `Literal[b'']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:384:42-48: Comparison `==` between incompatible types `bytearray` and `Literal[b'abc']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:460:43-52: Comparison `==` between incompatible types `bytearray` and `Literal[b'yyyxxx']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:461:43-49: Comparison `==` between incompatible types `bytearray` and `Literal[b'xxx']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:462:43-49: Comparison `==` between incompatible types `bytearray` and `Literal[b'xxx']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:466:43-49: Comparison `==` between incompatible types `bytearray` and `Literal[b'zzz']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:482:46-49: Comparison `==` between incompatible types `bytearray` and `Literal[b'']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:506:42-48: Comparison `==` between incompatible types `bytearray` and `Literal[b'123']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:510:42-46: Comparison `==` between incompatible types `bytearray` and `Literal[b'4']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:514:42-47: Comparison `==` between incompatible types `bytearray` and `Literal[b'56']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:518:42-45: Comparison `==` between incompatible types `bytearray` and `Literal[b'']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:528:40-46: Comparison `==` between incompatible types `bytearray` and `Literal[b'123']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:531:44-52: Comparison `==` between incompatible types `bytearray` and `bytes` [incompatible-comparison]
+ ERROR src/trio/_tests/test_testing.py:574:40-49: Comparison `==` between incompatible types `bytearray` and `Literal[b'456789']` [incompatible-comparison]
+ ERROR src/trio/_tests/test_timeouts.py:214:37-38: Comparison `==` between incompatible types `float` and `Literal[5]` [incompatible-comparison]
+ ERROR src/trio/_tests/test_timeouts.py:223:40-41: Comparison `==` between incompatible types `float` and `Literal[5]` [incompatible-comparison]
+ ERROR src/trio/_tests/test_timeouts.py:231:40-41: Comparison `==` between incompatible types `float` and `Literal[4]` [incompatible-comparison]
+ ERROR src/trio/_tests/test_timeouts.py:257:36-37: Comparison `==` between incompatible types `float` and `Literal[5]` [incompatible-comparison]
+ ERROR src/trio/_timeouts.py:108:19-20: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR src/trio/testing/_memory_streams.py:508:56-59: Comparison `==` between incompatible types `bytearray` and `Literal[b'']` [incompatible-comparison]
+ ERROR src/trio/testing/_memory_streams.py:539:60-63: Comparison `!=` between incompatible types `bytearray` and `Literal[b'']` [incompatible-comparison]
jinja (https://github.com/pallets/jinja)
+ ERROR src/jinja2/filters.py:719:17-18: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
sphinx (https://github.com/sphinx-doc/sphinx)
+ ERROR sphinx/versioning.py:78:21-22: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR sphinx/versioning.py:91:21-22: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
xarray (https://github.com/pydata/xarray)
+ ERROR xarray/coding/frequencies.py:240:17-18: Comparison `!=` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR xarray/coding/frequencies.py:241:25-35: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR xarray/tests/test_indexes.py:342:37-51: Comparison `==` between incompatible types `list[Hashable | None]` and `tuple[Literal['foo'], Literal['bar']]` [incompatible-comparison]
+ ERROR xarray/tests/test_variable.py:2584:38-64: Comparison `==` between incompatible types `list[Hashable | None]` and `tuple[Literal['x_level_0'], Literal['x_level_1']]` [incompatible-comparison]
artigraph (https://github.com/artigraph/artigraph)
+ ERROR tests/arti/partitions/test_partitions.py:29:26-42: Comparison `==` between incompatible types `frozenset[str]` and `set[str]` [incompatible-comparison]
+ ERROR tests/arti/types/test_pydantic_adapters.py:94:46-56: Comparison `==` between incompatible types `set[Any]` and `frozenset[Any]` [incompatible-comparison]
spack (https://github.com/spack/spack)
+ ERROR lib/spack/spack/hooks/sbang.py:112:85-90: Comparison `!=` between incompatible types `int` and `Literal[b'\n']` [incompatible-comparison]
+ ERROR lib/spack/spack/test/fetch_strategy.py:122:37-38: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR lib/spack/spack/util/libc.py:167:52-70: Comparison `==` between incompatible types `list[str]` and `Literal['--dynamic-linker']` [incompatible-comparison]
kornia (https://github.com/kornia/kornia)
+ ERROR kornia/augmentation/base.py:165:23-24: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR kornia/augmentation/base.py:167:25-26: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR kornia/augmentation/base.py:177:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR kornia/augmentation/base.py:179:23-24: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR kornia/augmentation/presets/ada.py:267:22-23: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR kornia/models/efficient_vit/backbone.py:144:28-29: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR kornia/models/efficient_vit/backbone.py:326:28-29: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR kornia/models/yunet/processors.py:69:33-53: Comparison `!=` between incompatible types `int` and `float` [incompatible-comparison]
scrapy (https://github.com/scrapy/scrapy)
+ ERROR tests/test_http_headers.py:32:37-49: Comparison `==` between incompatible types `Literal['text/html']` and `Literal[b'text/html']` [incompatible-comparison]
+ ERROR tests/test_http_headers.py:39:40-46: Comparison `==` between incompatible types `list[str]` and `Literal[b'ip2']` [incompatible-comparison]
optuna (https://github.com/optuna/optuna)
+ ERROR optuna/distributions.py:392:85-86: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR optuna/importance/_fanova/_fanova.py:70:33-34: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR optuna/testing/pytest_storages.py:432:60-61: Comparison `==` between incompatible types `float` and `Literal[2]` [incompatible-comparison]
+ ERROR optuna/testing/pytest_storages.py:467:60-61: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/artifacts_tests/test_backoff.py:18:42-43: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/artifacts_tests/test_backoff.py:19:42-44: Comparison `==` between incompatible types `float` and `Literal[10]` [incompatible-comparison]
+ ERROR tests/hypervolume_tests/test_wfg.py:27:76-100: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR tests/hypervolume_tests/test_wfg.py:44:12-50: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR tests/samplers_tests/test_samplers.py:364:62-81: Comparison `==` between incompatible types `float` and `Literal[30]` [incompatible-comparison]
+ ERROR tests/samplers_tests/test_samplers.py:365:52-71: Comparison `==` between incompatible types `float` and `Literal[30]` [incompatible-comparison]
+ ERROR tests/terminator_tests/improvement_tests/test_evaluator.py:38:90-91: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/terminator_tests/improvement_tests/test_evaluator.py:40:90-91: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/terminator_tests/improvement_tests/test_evaluator.py:43:90-91: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR tests/terminator_tests/improvement_tests/test_evaluator.py:45:90-91: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR tests/terminator_tests/improvement_tests/test_evaluator.py:48:90-92: Comparison `==` between incompatible types `float` and `Literal[-1]` [incompatible-comparison]
+ ERROR tests/terminator_tests/improvement_tests/test_evaluator.py:49:90-92: Comparison `==` between incompatible types `float` and `Literal[-1]` [incompatible-comparison]
+ ERROR tests/trial_tests/test_fixed.py:13:47-48: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/trial_tests/test_frozen.py:200:47-48: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR tests/trial_tests/test_frozen.py:205:47-48: Comparison `==` between incompatible types `float` and `Literal[2]` [incompatible-comparison]
spark (https://github.com/apache/spark)
+ ERROR python/pyspark/sql/tests/arrow/test_arrow_cogrouped_map.py:323:33-38: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/arrow/test_arrow_cogrouped_map.py:324:34-39: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/arrow/test_arrow_grouped_map.py:362:34-39: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/arrow/test_arrow_udf_grouped_agg.py:1006:30-42: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/arrow/test_arrow_udf_window.py:779:30-38: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/pandas/test_pandas_cogrouped_map.py:679:33-38: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/pandas/test_pandas_cogrouped_map.py:680:34-39: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/pandas/test_pandas_grouped_map.py:950:32-37: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/pandas/test_pandas_grouped_map.py:1078:37-47: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/pandas/test_pandas_grouped_map.py:1129:37-47: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/pandas/test_pandas_udf_grouped_agg.py:837:30-42: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
+ ERROR python/pyspark/sql/tests/pandas/test_pandas_udf_window.py:636:30-38: Comparison `==` between incompatible types `int` and `float` [incompatible-comparison]
attrs (https://github.com/python-attrs/attrs)
+ ERROR tests/test_next_gen.py:390:22-28: Comparison `==` between incompatible types `Literal[11]` and `Literal['11']` [incompatible-comparison]
+ ERROR tests/test_setattr.py:91:31-35: Comparison `==` between incompatible types `Literal['foobarqux']` and `Literal[42]` [incompatible-comparison]
+ ERROR tests/test_setattr.py:146:22-26: Comparison `==` between incompatible types `Literal[42]` and `Literal['41']` [incompatible-comparison]
+ ERROR tests/test_setattr.py:147:22-26: Comparison `==` between incompatible types `Literal[23]` and `Literal['22']` [incompatible-comparison]
+ ERROR tests/test_setattr.py:463:21-24: Comparison `==` between incompatible types `Literal[2]` and `Literal['2']` [incompatible-comparison]
pylox (https://github.com/sco1/pylox)
+ ERROR tests/builtins/test_loxarrayize.py:20:26-37: Comparison `==` between incompatible types `dict[Unknown, Unknown]` and `deque[Unknown]` [incompatible-comparison]
graphql-core (https://github.com/graphql-python/graphql-core)
+ ERROR src/graphql/type/scalars.py:57:23-35: Comparison `!=` between incompatible types `int` and `float` [incompatible-comparison]
django-modern-rest (https://github.com/wemake-services/django-modern-rest)
+ ERROR dmr/internal/negotiation.py:93:67-68: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR dmr/settings.py:114:42-55: Comparison `==` between incompatible types `frozenset[str]` and `set[Settings]` [incompatible-comparison]
+ ERROR dmr/validation/settings.py:35:44-57: Comparison `==` between incompatible types `frozenset[str]` and `set[Settings]` [incompatible-comparison]
prefect (https://github.com/PrefectHQ/prefect)
+ ERROR src/integrations/prefect-gcp/prefect_gcp/secret_manager.py:486:22-30: Comparison `==` between incompatible types `int` and `Literal['latest']` [incompatible-comparison]
+ ERROR src/integrations/prefect-gcp/prefect_gcp/secret_manager.py:537:22-30: Comparison `==` between incompatible types `int` and `Literal['latest']` [incompatible-comparison]
+ ERROR src/integrations/prefect-gcp/tests/test_cloud_run_worker.py:382:40-55: Comparison `==` between incompatible types `Literal['my command and args']` and `list[LiteralString]` [incompatible-comparison]
+ ERROR src/integrations/prefect-gcp/tests/test_cloud_run_worker.py:394:37-49: Comparison `==` between incompatible types `Literal['my args']` and `list[LiteralString]` [incompatible-comparison]
+ ERROR src/integrations/prefect-gcp/tests/test_vertex_worker.py:139:43-141:21: Comparison `==` between incompatible types `list[str]` and `Literal['echo -n hello']` [incompatible-comparison]
+ ERROR src/integrations/prefect-github/tests/test_repository.py:177:52-67: Comparison `==` between incompatible types `set[str]` and `str` [incompatible-comparison]
+ ERROR src/integrations/prefect-github/tests/test_repository.py:178:73-87: Comparison `==` between incompatible types `set[str]` and `str` [incompatible-comparison]
+ ERROR src/integrations/prefect-github/tests/test_repository.py:218:73-87: Comparison `==` between incompatible types `set[str]` and `str` [incompatible-comparison]
+ ERROR src/prefect/client/schemas/objects.py:774:69-70: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
flake8 (https://github.com/pycqa/flake8)
+ ERROR tests/unit/test_legacy_api.py:100:35-47: Comparison `==` between incompatible types `int` and `Literal['Fake count']` [incompatible-comparison]
pytest (https://github.com/pytest-dev/pytest)
+ ERROR testing/_py/test_local.py:743:36-41: Comparison `!=` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR testing/_py/test_local.py:745:36-41: Comparison `==` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR testing/_py/test_local.py:747:36-41: Comparison `!=` between incompatible types `float` and `int` [incompatible-comparison]
+ ERROR testing/test_pytester.py:654:22-25: Comparison `==` between incompatible types `str` and `Literal[b'']` [incompatible-comparison]
+ ERROR testing/test_pytester.py:667:22-25: Comparison `==` between incompatible types `str` and `Literal[b'']` [incompatible-comparison]
jax (https://github.com/google/jax)
+ ERROR jax/_src/export/shape_poly_decision.py:417:21-22: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR jax/_src/numpy/polynomial.py:288:15-25: Comparison `==` between incompatible types `Literal[True]` and `Literal['unscaled']` [incompatible-comparison]
+ ERROR jax/_src/scipy/signal.py:330:41-42: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR jax/_src/scipy/signal.py:465:41-42: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
materialize (https://github.com/MaterializeInc/materialize)
+ ERROR test/cluster/mzcompose.py:2556:64-65: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2557:64-65: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2590:25-26: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2592:25-26: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2602:25-26: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2604:25-26: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2642:25-26: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2646:25-26: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2648:25-26: Comparison `==` between incompatible types `float` and `Literal[2]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2662:25-26: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2664:25-26: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2706:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2708:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2714:21-22: Comparison `==` between incompatible types `float` and `Literal[2]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2716:21-22: Comparison `==` between incompatible types `float` and `Literal[2]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2718:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2720:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2730:21-22: Comparison `==` between incompatible types `float` and `Literal[2]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2734:21-22: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2741:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2745:21-22: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2747:21-22: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2758:21-22: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2762:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2764:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2776:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2778:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2787:21-22: Comparison `==` between incompatible types `float` and `Literal[2]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2789:21-22: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2791:21-22: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2794:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2796:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2910:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2912:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2914:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2916:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2918:21-22: Comparison `==` between incompatible types `float` and `Literal[2]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2922:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2937:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2941:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2943:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2947:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2951:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2953:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2956:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR test/cluster/mzcompose.py:2958:21-22: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR misc/python/materialize/cli/ci_annotate_errors.py:1019:36-56: Comparison `!=` between incompatible types `int` and `str` [incompatible-comparison]
+ ERROR misc/python/materialize/feature_benchmark/benchmark_result_evaluator.py:105:23-24: Comparison `==` between incompatible types `float` and `Literal[1]` [incompatible-comparison]
+ ERROR misc/python/materialize/workload_replay/stats.py:387:15-16: Comparison `==` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
+ ERROR misc/python/materialize/workload_replay/stats.py:388:39-40: Comparison `!=` between incompatible types `float` and `Literal[0]` [incompatible-comparison]
|
Primer Diff Classification❌ 61 regression(s) | ➖ 2 neutral | 63 project(s) total | +555 errors 61 regression(s) across ppb-vector, mitmproxy, rotki, dulwich, streamlit, dd-trace-py, ibis, cryptography, altair, scipy, colour, pyinstrument, urllib3, Expression, scikit-learn, freqtrade, setuptools, pwndbg, scikit-build-core, apprise, psycopg, starlette, mongo-python-driver, schemathesis, pip, egglog-python, cloud-init, vision, sockeye, zulip, speedrun.com_global_scoreboard_webapp, ignite, hydpy, pandas, typeshed-stats, AutoSplit, pytest-robotframework, werkzeug, pyodide, rich, core, paasta, trio, jinja, sphinx, xarray, artigraph, spack, kornia, scrapy, optuna, spark, attrs, pylox, graphql-core, django-modern-rest, prefect, flake8, pytest, jax, materialize. error kinds:
Detailed analysis❌ Regression (61)ppb-vector (+5)
All 5 errors are pyrefly-only (neither mypy nor pyright flags them), confirming these are false positives from an overly aggressive new check.
mitmproxy (+17)
rotki (+4)
None of these are flagged by mypy in its default configuration. Pyright has a
All of these are cases where the dulwich (+1)
streamlit (+6)
dd-trace-py (+5)
Per-category reasoning:
ibis (+4)
cryptography (+28)
Per-category reasoning:
altair (+6)
scipy (+3)
colour (+3)
pyinstrument (+3)
urllib3 (+25)
All factual claims check out against the source code and Python type system.
Expression (+3)
Neither mypy nor pyright flags these. The Per-category reasoning:
scikit-learn (+19)
Per-category reasoning:
freqtrade (+23)
setuptools (+27)
pwndbg (+10)
scikit-build-core (+3)
apprise (+9)
psycopg (+2)
starlette (+1)
mongo-python-driver (+2)
schemathesis (+1)
pip (+1)
egglog-python (+1)
cloud-init (+6)
vision (+8)
Neither mypy nor pyright flags any of these. The new check is too aggressive in its disjointness analysis, particularly failing to account for the int/float numeric tower relationship. Per-category reasoning:
sockeye (+2)
zulip (+4)
Per-category reasoning:
speedrun.com_global_scoreboard_webapp (+1)
ignite (+4)
hydpy (+3)
Per-category reasoning:
pandas (+26)
The analysis is accurate in all respects.
typeshed-stats (+1)
AutoSplit (+2)
Per-category reasoning:
pytest-robotframework (+3)
The key question is whether these new errors are correct or not. The comparison The PR introduces a new diagnostic category The errors are technically correct: For a well-tested project like pytest-robotframework, these are false positives in context — the code is intentionally written this way for testing assertion failure behavior. However, the type checker is working as designed. These are the kind of diagnostics that test fixture code commonly triggers. Note that line 15 of Since other type checkers (mypy, pyright) have similar checks, this is a reasonable diagnostic to include. The errors are correct from a type-checking perspective, even though they flag intentional test code.
werkzeug (+14)
pyodide (+1)
rich (+1)
core (+36)
The core problem is the paasta (+2)
trio (+91)
jinja (+1)
sphinx (+2)
xarray (+4)
Per-category reasoning:
artigraph (+2)
spack (+3)
Per-category reasoning:
kornia (+8)
scrapy (+2)
The error messages confirm the type inference problem: for line 32, pyrefly infers The root cause is that pyrefly is not correctly resolving the
optuna (+19)
Specific examples from the code:
All of these are perfectly valid Python code. The new check is too aggressive because it doesn't respect the numeric tower.
spark (+12)
attrs (+5)
The new
pylox (+1)
graphql-core (+1)
django-modern-rest (+3)
prefect (+9)
flake8 (+1)
pytest (+5)
All 5 errors are pyrefly-only, confirming these are false positives from an overly aggressive new lint rule.
jax (+4)
All 4 errors are pyrefly-only, confirming these are false positives from the new
materialize (+50)
➖ Neutral (2)openlibrary (+4)
aiohttp (+2)
Error 2 ( Overall, Error 1 is a false positive that will cause widespread noise for a very common pattern (comparing float values with integer literals), while Error 2 is a valuable true positive catching a real bug. The net impact is mixed - the false positive on float/int comparison is problematic, but the bytes/str catch is genuinely useful.
Suggested fixesSummary: The new check_incompatible_comparison() in operators.rs causes ~500+ false positives across 61 projects because it doesn't handle the numeric tower (int<:float<:complex), bytes-like family (bytearray/bytes), set family (frozenset/set), Decimal, and applies too broadly to non-scalar ClassTypes. 1. In
2. In
3. In
4. In
5. In
Was this helpful? React with 👍 or 👎 Classification by primer-classifier (63 LLM) |
Summary
Fixes #721
Added a new incompatible-comparison diagnostic for ==/!= when operand types cannot overlap
Only triggers for built‑in scalar families (numeric, bytes-like, str) and only when the families are disjoint.
Skips user types, TypeVar, and type[...] comparisons.
Test Plan
add tests