Repository navigation
fix decorated class not transformed #1180 - #2294
asukaminato0721 wants to merge 8 commits into
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.
49ec474 to
155055a
Compare
There was a problem hiding this comment.
Pull request overview
This PR fixes issue #1180 where class decorators that transform the class type were not being applied. Previously, decorated classes always retained their type[ClassName] type, ignoring the decorator's return type. Now, decorators are properly applied during class definition type resolution, mirroring Python's bottom-up decorator semantics.
Changes:
- Added type transformation logic for class decorators during binding resolution
- Implemented
apply_class_decoratormethod to handle decorator application with special cases for class-preserving decorators - Added
is_bootstrapping()helper to check stdlib initialization state
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| pyrefly/lib/test/decorators.rs | Added test case verifying that a class decorator returning int transforms the class type from type[C] to int |
| pyrefly/lib/alt/solve.rs | Updated ClassDef binding resolution to iterate through decorators and apply them bottom-up to the class type |
| pyrefly/lib/alt/function.rs | Implemented apply_class_decorator method that handles decorator application, preserving class type for special decorators like @dataclass, @final, etc. |
| crates/pyrefly_types/src/stdlib.rs | Added is_bootstrapping() method to check if stdlib is still initializing |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
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.
100% agree. Analogous conversation from ty land: astral-sh/ty#143 |
This comment was marked as outdated.
This comment was marked as outdated.
|
would love to merge this. I think all that's left is the settings for it? |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
There was a problem hiding this comment.
I'm taking myself off as a reviewer because @kinto0 is trying to drive this to completion, and I need to focus on other parts of the backlog.
That said, the mypy primer results now look pretty bad, whereas before they looked good: I think something must have gone wrong in the most recent iteration. Probably worth a look from you @asukaminato0721 before we put this in Kyle's review queue
Also am confused by the website build errors. It surprised me to see them. but they do kind of look like actual compile errors. No idea why there would be a wasm-specific problem here - maybe a config struct is out of sync or something?
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
|
Thanks! Most of the latest primer regression (+29k, mostly spack/core/pandera) looks like untyped class decorators turning the class into |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
connernilsen
left a comment
There was a problem hiding this comment.
Hey Asuka, thanks for working on this! The main suggestions are:
f(x: type) -> typeis a common pattern, but we shouldn't erase the type there- explicit
-> type[Any]is used to erase types intentionally, but it doesn't - we should disable this in basic and legacy modes
Re-request my review when you're ready again, and I'll come take a look!
| /// Apply all decorators, including those that return `Any` or `Unknown`. | ||
| All, |
There was a problem hiding this comment.
Is this worth having, would we want to use an untyped decorator to turn a class in to Any/Unknown?
| { | ||
| // Self-references in class annotations refer to the undecorated class. Depending on | ||
| // its decorated value would create a cycle when a decorator's signature uses it. | ||
| Binding::ClassDef(*class_idx, Box::new([])) |
There was a problem hiding this comment.
It seems to be needed only for the class's own decorators. Turning it off breaks only the two tests where a decorator names its class, but as it is now, it applies to class level annotations and not methods:
def to_wrapper(cls: type) -> Callable[[], int]: ...
@to_wrapper
class C:
other: "C" # refers to the undecorated class, no error
def clone(self) -> "C": # not-a-type: refers to the decorated value
Could we limit it to decorator expressions, update the comment, and add a test for annotations in teh class body?
This comment has been minimized.
This comment has been minimized.
connernilsen
left a comment
There was a problem hiding this comment.
Okay, this is looking close! Just one more combined issue (and a rebase), and I think we'll be good to start working on landing it
This comment has been minimized.
This comment has been minimized.
connernilsen
left a comment
There was a problem hiding this comment.
Thanks for working on this @asukaminato0721! The content in this PR looks good, but an important internal test is failing. I'm trying to figure out exactly what's going on, and see if it's something requiring a big change, or if I can just patch it myself. I'll let you know what we'll do next
|
It looks like with this example, we panic on some of the new code. A fix is to handle |
kinto0
left a comment
There was a problem hiding this comment.
Review automatically exported from Phabricator review in Meta.
|
Diff from mypy_primer, showing the effect of this PR on open source code: ============================================================
SUMMARY
============================================================
Total: +3003 new errors, -270 fixed errors
By preset: +115/-6 (default), +115/-8 (strict)
Projects with changes (11):
jax: +1 -0
spark: +1 -0
asynq: +0 -4
pandera: +260 -179
zulip: +27 -18
steam.py: +1 -4
antidote: +0 -1
pandas: +0 -8
sphinx: +0 -1
core: +2707 -53
spack: +6 -2
============================================================
FULL DIFF DETAILS
------------------------------------------------------------
jax (https://github.com/google/jax)
+ ERROR jax/experimental/array_serialization/serialization_test.py:960:5-35: `UserPytreeAPITest.test_custom_node_registration.P` is not assignable to upper bound `Hashable` of type variable `H` [bad-specialization]
spark (https://github.com/apache/spark)
+ ERROR python/pyspark/testing/tests/test_skip_class.py:20:1-15: Argument `type[SkipClassTests]` is not assignable to parameter `reason` with type `str` in function `unittest.case.skip` [bad-argument-type]
asynq (https://github.com/quora/asynq)
- ERROR asynq/tests/test_mock.py:188:1-46: Untyped class decorator may modify `TestMockAsyncClassDecorator` in unexpected ways [untyped-class-decorator]
- ERROR asynq/tests/test_mock.py:189:1-51: Untyped class decorator may modify `TestMockAsyncClassDecorator` in unexpected ways [untyped-class-decorator]
- ERROR asynq/tests/test_mock.py:203:1-58: Untyped class decorator may modify `TestMockAsyncClassDecoratorWithNew` in unexpected ways [untyped-class-decorator]
- ERROR asynq/tests/test_mock.py:204:1-78: Untyped class decorator may modify `TestMockAsyncClassDecoratorWithNew` in unexpected ways [untyped-class-decorator]
pandera (https://github.com/pandera-dev/pandera)
+ ERROR pandera/api/pandas/array.py:29:35-62: Expected class object, got `(...) -> Unknown` [invalid-argument]
+ ERROR pandera/api/pandas/array.py:29:49-62: The type of attribute `PydanticModel` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR pandera/api/pandas/container.py:71:25-52: Expected class object, got `(...) -> Unknown` [invalid-argument]
+ ERROR pandera/api/pandas/container.py:71:39-52: The type of attribute `PydanticModel` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR pandera/api/pandas/container.py:74:51-55: The type of this argument is unknown because it comes from an error [unknown-from-error]
+ ERROR pandera/api/pandas/container.py:75:29-52: Object of class `DataType` has no attribute `column_names` [missing-attribute]
+ ERROR pandera/api/polars/model.py:289:39-55: Expected class object, got `(...) -> Unknown` [invalid-argument]
+ ERROR pandera/api/polars/model.py:289:42-55: The type of attribute `PydanticModel` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR pandera/api/polars/model.py:290:44-75: Object of class `DataType` has no attribute `_get_polars_schema` [missing-attribute]
+ ERROR pandera/backends/pandas/container.py:254:35-62: Expected class object, got `(...) -> Unknown` [invalid-argument]
+ ERROR pandera/backends/pandas/container.py:254:49-62: The type of attribute `PydanticModel` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR pandera/dtypes.py:146:1-11: Untyped class decorator may modify `_Number` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:161:1-11: Untyped class decorator may modify `_PhysicalNumber` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:183:1-11: Untyped class decorator may modify `Bool` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:196:1-21: Untyped class decorator may modify `Int` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:221:1-11: Untyped class decorator may modify `Int64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:228:1-11: Untyped class decorator may modify `Int32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:235:1-11: Untyped class decorator may modify `Int16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:242:1-11: Untyped class decorator may modify `Int8` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:254:1-11: Untyped class decorator may modify `UInt` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:267:1-11: Untyped class decorator may modify `UInt64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:275:1-11: Untyped class decorator may modify `UInt32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:283:1-11: Untyped class decorator may modify `UInt16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:291:1-11: Untyped class decorator may modify `UInt8` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:304:1-21: Untyped class decorator may modify `Float` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:327:1-11: Untyped class decorator may modify `Float128` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:334:1-11: Untyped class decorator may modify `Float64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:341:1-11: Untyped class decorator may modify `Float32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:348:1-11: Untyped class decorator may modify `Float16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:360:1-21: Untyped class decorator may modify `Complex` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:381:1-11: Untyped class decorator may modify `Complex256` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:389:1-11: Untyped class decorator may modify `Complex128` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:397:1-11: Untyped class decorator may modify `Complex64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:417:1-22: Untyped class decorator may modify `Decimal` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:475:1-22: Untyped class decorator may modify `Category` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:507:1-11: Untyped class decorator may modify `String` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:520:1-11: Untyped class decorator may modify `Date` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:528:1-11: Untyped class decorator may modify `Timestamp` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:539:1-11: Untyped class decorator may modify `Timedelta` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:547:1-11: Untyped class decorator may modify `Time` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/dtypes.py:555:1-11: Untyped class decorator may modify `Binary` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/geopandas_engine.py:31:1-37:2: Untyped class decorator may modify `Geometry` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/geopandas_engine.py:38:1-29: Untyped class decorator may modify `Geometry` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:23:1-22: Untyped class decorator may modify `DataType` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:105:1-115:2: Untyped class decorator may modify `Bool` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:116:1-11: Untyped class decorator may modify `Bool` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:128:1-137:2: Untyped class decorator may modify `Int8` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:138:1-11: Untyped class decorator may modify `Int8` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:145:1-154:2: Untyped class decorator may modify `Int16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:155:1-11: Untyped class decorator may modify `Int16` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:162:1-171:2: Untyped class decorator may modify `Int32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:172:1-11: Untyped class decorator may modify `Int32` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:179:1-189:2: Untyped class decorator may modify `Int64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:190:1-11: Untyped class decorator may modify `Int64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:202:1-211:2: Untyped class decorator may modify `UInt8` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:212:1-11: Untyped class decorator may modify `UInt8` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:219:1-228:2: Untyped class decorator may modify `UInt16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:229:1-11: Untyped class decorator may modify `UInt16` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:236:1-245:2: Untyped class decorator may modify `UInt32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:246:1-11: Untyped class decorator may modify `UInt32` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:253:1-262:2: Untyped class decorator may modify `UInt64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:263:1-11: Untyped class decorator may modify `UInt64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:275:1-284:2: Untyped class decorator may modify `Float32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:285:1-11: Untyped class decorator may modify `Float32` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:292:1-302:2: Untyped class decorator may modify `Float64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:303:1-11: Untyped class decorator may modify `Float64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:315:1-325:2: Untyped class decorator may modify `Decimal` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:326:1-22: Untyped class decorator may modify `Decimal` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:361:1-371:2: Untyped class decorator may modify `String` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:372:1-11: Untyped class decorator may modify `String` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:379:1-389:2: Untyped class decorator may modify `Binary` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:390:1-11: Untyped class decorator may modify `Binary` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:402:1-412:2: Untyped class decorator may modify `Date` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:413:1-11: Untyped class decorator may modify `Date` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:420:1-431:2: Untyped class decorator may modify `DateTime` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:432:1-22: Untyped class decorator may modify `DateTime` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:457:1-467:2: Untyped class decorator may modify `Time` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:468:1-11: Untyped class decorator may modify `Time` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:475:1-484:2: Untyped class decorator may modify `Timedelta` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:485:1-22: Untyped class decorator may modify `Timedelta` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/ibis_engine.py:506:1-511:2: Untyped class decorator may modify `Map` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/ibis_engine.py:512:1-22: Untyped class decorator may modify `Map` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:30:1-22: Untyped class decorator may modify `DataType` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:153:1-155:2: Untyped class decorator may modify `Int8` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:156:1-11: Untyped class decorator may modify `Int8` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:163:1-165:2: Untyped class decorator may modify `Int16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:166:1-11: Untyped class decorator may modify `Int16` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:173:1-175:2: Untyped class decorator may modify `Int32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:176:1-11: Untyped class decorator may modify `Int32` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:183:1-185:2: Untyped class decorator may modify `Int64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:186:1-11: Untyped class decorator may modify `Int64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:193:1-195:2: Untyped class decorator may modify `UInt8` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:196:1-11: Untyped class decorator may modify `UInt8` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:203:1-205:2: Untyped class decorator may modify `UInt16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:206:1-11: Untyped class decorator may modify `UInt16` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:213:1-215:2: Untyped class decorator may modify `UInt32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:216:1-11: Untyped class decorator may modify `UInt32` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:223:1-225:2: Untyped class decorator may modify `UInt64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:226:1-11: Untyped class decorator may modify `UInt64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:238:1-240:2: Untyped class decorator may modify `Float32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:241:1-11: Untyped class decorator may modify `Float32` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:248:1-256:2: Untyped class decorator may modify `Float64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:257:1-11: Untyped class decorator may modify `Float64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:269:1-278:2: Untyped class decorator may modify `String` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:279:1-11: Untyped class decorator may modify `String` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:286:1-288:2: Untyped class decorator may modify `Bool` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:289:1-11: Untyped class decorator may modify `Bool` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:301:1-303:2: Untyped class decorator may modify `Date` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:304:1-11: Untyped class decorator may modify `Date` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:311:1-313:2: Untyped class decorator may modify `DateTime` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:314:1-22: Untyped class decorator may modify `DateTime` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:340:1-347:2: Untyped class decorator may modify `Duration` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:348:1-22: Untyped class decorator may modify `Duration` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:375:1-383:2: Untyped class decorator may modify `Categorical` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:384:1-11: Untyped class decorator may modify `Categorical` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:391:1-54: Untyped class decorator may modify `List` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:392:1-22: Untyped class decorator may modify `List` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/narwhals_engine.py:409:1-58: Untyped class decorator may modify `Struct` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/narwhals_engine.py:410:1-11: Untyped class decorator may modify `Struct` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:56:1-22: Untyped class decorator may modify `DataType` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:153:1-155:2: Untyped class decorator may modify `Bool` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:156:1-11: Untyped class decorator may modify `Bool` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:205:1-57: Untyped class decorator may modify `Int64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:206:1-11: Untyped class decorator may modify `Int64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:212:1-57: Untyped class decorator may modify `Int32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:213:1-11: Untyped class decorator may modify `Int32` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:219:1-57: Untyped class decorator may modify `Int16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:220:1-11: Untyped class decorator may modify `Int16` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:226:1-56: Untyped class decorator may modify `Int8` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:227:1-11: Untyped class decorator may modify `Int8` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:244:1-58: Untyped class decorator may modify `UInt64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:245:1-11: Untyped class decorator may modify `UInt64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:251:1-58: Untyped class decorator may modify `UInt32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:252:1-11: Untyped class decorator may modify `UInt32` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:258:1-58: Untyped class decorator may modify `UInt16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:259:1-11: Untyped class decorator may modify `UInt16` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:265:1-57: Untyped class decorator may modify `UInt8` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:266:1-11: Untyped class decorator may modify `UInt8` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:289:5-64: Untyped class decorator may modify `Float128` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:290:5-15: Untyped class decorator may modify `Float128` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:295:5-63: Untyped class decorator may modify `Float64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:303:5-63: Untyped class decorator may modify `Float64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:296:5-15: Untyped class decorator may modify `Float64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:304:5-15: Untyped class decorator may modify `Float64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:310:1-59: Untyped class decorator may modify `Float32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:311:1-11: Untyped class decorator may modify `Float32` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:317:1-59: Untyped class decorator may modify `Float16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:318:1-11: Untyped class decorator may modify `Float16` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:338:5-66: Untyped class decorator may modify `Complex256` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:339:5-15: Untyped class decorator may modify `Complex256` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:344:5-66: Untyped class decorator may modify `Complex128` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:345:5-15: Untyped class decorator may modify `Complex128` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:352:5-66: Untyped class decorator may modify `Complex128` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:353:5-15: Untyped class decorator may modify `Complex128` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:359:1-61: Untyped class decorator may modify `Complex64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:360:1-11: Untyped class decorator may modify `Complex64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:371:1-64: Untyped class decorator may modify `Bytes` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:382:1-68: Untyped class decorator may modify `String` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:372:1-11: Untyped class decorator may modify `Bytes` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:383:1-11: Untyped class decorator may modify `String` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:412:1-72: Untyped class decorator may modify `Object` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:425:1-432:2: Untyped class decorator may modify `DateTime64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:413:1-11: Untyped class decorator may modify `Object` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:433:1-11: Untyped class decorator may modify `DateTime64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/numpy_engine.py:438:1-445:2: Untyped class decorator may modify `Timedelta64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/numpy_engine.py:446:1-11: Untyped class decorator may modify `Timedelta64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/pandas_engine.py:119:1-22: Untyped class decorator may modify `DataType` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/pandas_engine.py:327:1-329:2: Untyped class decorator may modify `BOOL` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/pandas_engine.py:330:1-11: Untyped class decorator may modify `BOOL` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/pandas_engine.py:408:1-69: Untyped class decorator may modify `INT64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/pandas_engine.py:409:1-11: Untyped class decorator may modify `INT64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/pandas_engine.py:417:1-69: Untyped class decorator may modify `INT32` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/pandas_engine.py:418:1-11: Untyped class decorator may modify `INT32` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/pandas_engine.py:426:1-69: Untyped class decorator may modify `INT16` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/pandas_engine.py:427:1-11: Untyped class decorator may modify `INT16` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/pandas_engine.py:435:1-67: Untyped class decorator may modify `INT8` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/pandas_engine.py:436:1-11: Untyped class decorator may modify `INT8` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/pandas_engine.py:455:1-71: Untyped class decorator may modify `UINT64` in unexpected ways [untyped-class-decorator]
+ ERROR pandera/engines/pandas_engine.py:456:1-11: Untyped class decorator may modify `UINT64` in unexpected ways [untyped-class-decorator]
- ERROR pandera/engines/pandas_engine.py:464:1-71: Untyped class decorator may modify `UINT32` in unexpected ways [untyped-class-decorator]
... (truncated 259 lines) ...
zulip (https://github.com/zulip/zulip)
- ERROR zerver/tests/test_auth_backends.py:3133:52-92: The type of this argument is an explicit `Any` [explicit-any-use]
+ ERROR zerver/tests/test_auth_backends.py:3133:16-51: Class `ExternalAuthMethod` has no class attribute `get_data_from_redis` [missing-attribute]
- ERROR zerver/tests/test_auth_backends.py:3136:30-42: The type of this argument is an explicit `Any` [explicit-any-use]
- ERROR zerver/tests/test_auth_backends.py:3138:30-47: The type of this argument is an explicit `Any` [explicit-any-use]
+ ERROR zerver/tests/test_auth_backends.py:3136:30-42: The type of this argument is unknown because it comes from an error [unknown-from-error]
+ ERROR zerver/tests/test_auth_backends.py:3138:30-47: The type of this argument is unknown because it comes from an error [unknown-from-error]
+ ERROR zerver/tests/test_auth_backends.py:3737:37-70: Class `ExternalAuthMethod` has no class attribute `put_data_in_redis` [missing-attribute]
+ ERROR zerver/tests/test_auth_backends.py:3770:37-70: Class `ExternalAuthMethod` has no class attribute `put_data_in_redis` [missing-attribute]
+ ERROR zerver/tests/test_auth_backends.py:3803:33-66: Class `ExternalAuthMethod` has no class attribute `put_data_in_redis` [missing-attribute]
+ ERROR zerver/tests/test_auth_backends.py:3823:33-66: Class `ExternalAuthMethod` has no class attribute `put_data_in_redis` [missing-attribute]
+ ERROR zerver/tests/test_auth_backends.py:3835:33-66: Class `ExternalAuthMethod` has no class attribute `put_data_in_redis` [missing-attribute]
+ ERROR zerver/tests/test_auth_backends.py:3847:33-66: Class `ExternalAuthMethod` has no class attribute `put_data_in_redis` [missing-attribute]
+ ERROR zerver/tests/test_auth_backends.py:3893:29-62: Class `ExternalAuthMethod` has no class attribute `put_data_in_redis` [missing-attribute]
+ ERROR zerver/tests/test_auth_backends.py:3919:29-62: Class `ExternalAuthMethod` has no class attribute `put_data_in_redis` [missing-attribute]
+ ERROR zerver/tests/test_auth_backends.py:3998:33-66: Class `ExternalAuthMethod` has no class attribute `put_data_in_redis` [missing-attribute]
+ ERROR zerver/tests/test_auth_backends.py:4173:17-34: Result of call expression is of type `ExternalAuthMethod` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR zerver/tests/test_auth_backends.py:4637:62-94: Class `ExternalAuthMethod` has no class attribute `ID_TOKEN_ISSUER` [missing-attribute]
- ERROR zerver/tests/test_auth_backends.py:4637:19-95: The type of `payload` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
- ERROR zerver/tests/test_auth_backends.py:4637:79-94: The type of attribute `ID_TOKEN_ISSUER` is unknown; it is inferred as an implicit `Any` [unknown-attribute-access]
+ ERROR zerver/tests/test_auth_backends.py:5402:17-46: Result of call expression is of type `ExternalAuthMethod` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR zerver/views/auth.py:768:24-52: Class `ExternalAuthMethod` has no class attribute `check_config` [missing-attribute]
+ ERROR zerver/views/auth.py:772:24-64: Class `ExternalAuthMethod` has no class attribute `check_config` [missing-attribute]
+ ERROR zerver/views/auth.py:789:35-64: Class `ExternalAuthMethod` has no class attribute `check_config` [missing-attribute]
+ ERROR zproject/backends.py:3542:16-35: Object of class `ExternalAuthMethod` has no attribute `logger` [missing-attribute]
+ ERROR zproject/backends.py:3597:18-51: Object of class `ExternalAuthMethod` has no attribute `generate_saml_config` [missing-attribute]
- ERROR zproject/backends.py:3597:18-53: The type of `config` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR zproject/backends.py:3597:31-51: The type of attribute `generate_saml_config` is unknown; it is inferred as an implicit `Any` [unknown-attribute-access]
+ ERROR zproject/backends.py:3615:18-51: Object of class `ExternalAuthMethod` has no attribute `generate_saml_config` [missing-attribute]
- ERROR zproject/backends.py:3615:18-53: The type of `config` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR zproject/backends.py:3615:31-51: The type of attribute `generate_saml_config` is unknown; it is inferred as an implicit `Any` [unknown-attribute-access]
+ ERROR zproject/backends.py:3637:18-51: Object of class `ExternalAuthMethod` has no attribute `generate_saml_config` [missing-attribute]
- ERROR zproject/backends.py:3637:18-53: The type of `config` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR zproject/backends.py:3637:31-51: The type of attribute `generate_saml_config` is unknown; it is inferred as an implicit `Any` [unknown-attribute-access]
+ ERROR zproject/backends.py:4619:27-59: Object of class `ExternalAuthMethod` has no attribute `strategy` [missing-attribute]
+ ERROR zproject/backends.py:4621:15-46: Object of class `ExternalAuthMethod` has no attribute `get_idp` [missing-attribute]
+ ERROR zproject/backends.py:4622:16-57: Object of class `ExternalAuthMethod` has no attribute `_create_saml_auth` [missing-attribute]
- ERROR zproject/backends.py:4619:51-59: The type of attribute `strategy` is unknown; it is inferred as an implicit `Any` [unknown-attribute-access]
- ERROR zproject/backends.py:4622:16-62: The type of `auth` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR zproject/backends.py:4622:40-57: The type of attribute `_create_saml_auth` is unknown; it is inferred as an implicit `Any` [unknown-attribute-access]
- ERROR zproject/backends.py:4623:14-25: The type of attribute `process_slo` is unknown; it is inferred as an implicit `Any` [unknown-attribute-access]
- ERROR zproject/backends.py:4624:18-35: The type of `errors` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR zproject/backends.py:4624:23-33: The type of attribute `get_errors` is unknown; it is inferred as an implicit `Any` [unknown-attribute-access]
- ERROR zproject/backends.py:4631:40-48: The type of attribute `strategy` is unknown because it comes from an error [unknown-from-error]
+ ERROR zproject/backends.py:4624:18-35: The type of `errors` is unknown because it comes from an error [unknown-from-error]
+ ERROR zproject/backends.py:4631:16-56: The type of this argument is unknown because it comes from an error [unknown-from-error]
steam.py (https://github.com/Gobot1234/steam.py)
- ERROR steam/state.py:488:35-42: Argument `UserMessage` is not assignable to parameter `x` with type `Message` in function `collections.deque.append` [bad-argument-type]
- ERROR steam/state.py:521:31-38: Argument `UserMessage[ClientUser]` is not assignable to parameter `x` with type `Message` in function `collections.deque.append` [bad-argument-type]
+ ERROR steam/state.py:1576:37-46: Protected attribute `_location` cannot be accessed outside of its defining class or a subclass [protected-access]
- ERROR steam/user.py:246:36-252:22: No matching overload found for function `steam.reaction.MessageReaction.__init__` called with arguments: (ConnectionState, UserMessage, Emoticon, None, ClientUser | Self@User) [no-matching-overload]
- ERROR steam/user.py:258:36-264:22: No matching overload found for function `steam.reaction.MessageReaction.__init__` called with arguments: (ConnectionState, UserMessage, None, Sticker, ClientUser | Self@User) [no-matching-overload]
antidote (https://github.com/Finistere/antidote)
- ERROR tests/lib/interface/test_class.py:423:39-53: Unused `# type: ignore` comment [unused-type-ignore]
pandas (https://github.com/pandas-dev/pandas)
- ERROR pandas/core/arrays/categorical.py:3111:1-3113:2: Untyped class decorator may modify `CategoricalAccessor` in unexpected ways [untyped-class-decorator]
- ERROR pandas/core/arrays/interval.py:2022:1-2026:2: Untyped class decorator may modify `IntervalAccessor` in unexpected ways [untyped-class-decorator]
- ERROR pandas/core/indexes/accessors.py:209:1-215:2: Untyped class decorator may modify `ArrowTemporalProperties` in unexpected ways [untyped-class-decorator]
- ERROR pandas/core/indexes/accessors.py:216:1-222:2: Untyped class decorator may modify `ArrowTemporalProperties` in unexpected ways [untyped-class-decorator]
- ERROR pandas/core/indexes/accessors.py:223:1-236:2: Untyped class decorator may modify `ArrowTemporalProperties` in unexpected ways [untyped-class-decorator]
- ERROR pandas/core/indexes/accessors.py:342:1-346:2: Untyped class decorator may modify `DatetimeProperties` in unexpected ways [untyped-class-decorator]
- ERROR pandas/core/indexes/accessors.py:592:1-594:2: Untyped class decorator may modify `TimedeltaProperties` in unexpected ways [untyped-class-decorator]
- ERROR pandas/core/indexes/accessors.py:751:1-753:2: Untyped class decorator may modify `PeriodProperties` in unexpected ways [untyped-class-decorator]
sphinx (https://github.com/sphinx-doc/sphinx)
- ERROR sphinx/builders/linkcheck.py:756:29-42: Identity comparison between an instance of `dict[Pattern[str], Pattern[str]]` and class `_SENTINEL_LAR` is always False [unnecessary-comparison]
core (https://github.com/home-assistant/core)
- ERROR homeassistant/auth/mfa_modules/notify.py:356:37-49: The type of attribute `async_notify` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/auth/mfa_modules/notify.py:356:19-49: Object of class `MultiFactorAuthModule` has no attribute `async_notify` [missing-attribute]
+ ERROR homeassistant/auth/mfa_modules/totp.py:216:26-218:18: The type of `result` is an explicit `Any` [explicit-any-use]
- ERROR homeassistant/auth/providers/command_line.py:154:43-63: The type of attribute `async_validate_login` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/auth/providers/command_line.py:154:23-63: Object of class `AuthProvider` has no attribute `async_validate_login` [missing-attribute]
+ WARN homeassistant/auth/providers/homeassistant.py:45:24-47: Redundant cast: `AuthProvider` is the same type as `AuthProvider` [redundant-cast]
- ERROR homeassistant/auth/providers/homeassistant.py:403:43-63: The type of attribute `async_validate_login` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/auth/providers/homeassistant.py:403:23-63: Object of class `AuthProvider` has no attribute `async_validate_login` [missing-attribute]
+ ERROR homeassistant/auth/providers/insecure_example.py:111:17-57: Object of class `AuthProvider` has no attribute `async_validate_login` [missing-attribute]
+ ERROR homeassistant/auth/providers/trusted_networks.py:252:13-54: Object of class `AuthProvider` has no attribute `async_validate_access` [missing-attribute]
+ ERROR homeassistant/components/acaia/config_flow.py:47:27-55:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/acaia/config_flow.py:127:68-132:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/accuweather/config_flow.py:77:75-79:26: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/adax/config_flow.py:75:59-80:18: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aemet/config_flow.py:76:67-78:18: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aerosmart/config_flow.py:39:18-41:2: The type of `UNIT_ID_SCHEMA` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aerosmart/config_flow.py:39:32-41:2: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aerosmart/config_flow.py:45:51-47:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aerosmart/config_flow.py:48:75-50:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aerosmart/config_flow.py:62:59-61: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aerosmart/config_flow.py:63:83-65:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/ai_task/services.py:90:29-42: The type of attribute `MediaSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/ai_task/services.py:90:42-81: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/ai_task/services.py:107:29-42: The type of attribute `MediaSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/ai_task/services.py:107:42-81: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/ai_task/services.py:126:29-42: The type of attribute `MediaSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/ai_task/services.py:126:42-81: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aidot/config_flow.py:24:21-36: The type of attribute `CountrySelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aidot/config_flow.py:24:36-28:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/airly/config_flow.py:92:75-94:26: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/airnow/config_flow.py:102:75-104:26: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/airos/config_flow.py:230:84-235:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/airos/config_flow.py:262:84-267:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/airpatrol/config_flow.py:23:52-28:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/airpatrol/config_flow.py:29:72-34:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/airq/config_flow.py:39:86-88: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/airq/config_flow.py:40:85-87: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/airzone_cloud/config_flow.py:67:63-75:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/alexa_devices/config_flow.py:32:55-34:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/alexa_devices/config_flow.py:35:72-39:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/alexa_devices/config_flow.py:40:51-42:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/alexa_devices/config_flow.py:47:72-51:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/alexa_devices/config_flow.py:52:51-54:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/alexa_devices/config_flow.py:59:72-63:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/alexa_devices/config_flow.py:64:51-66:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/alpha_bidet_infrared/config_flow.py:30:79-34:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/alpha_bidet_infrared/config_flow.py:66:66-71:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/amberelectric/config_flow.py:142:68-153:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/amberelectric/services.py:40:67-42:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/ambient_network/config_flow.py:98:40-77: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/ambient_network/config_flow.py:144:64-146:18: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/analytics_insights/config_flow.py:112:73-118:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/analytics_insights/config_flow.py:119:81-125:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/analytics_insights/config_flow.py:126:88-132:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/analytics_insights/config_flow.py:194:77-200:26: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/analytics_insights/config_flow.py:201:85-207:26: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/analytics_insights/config_flow.py:210:42-216:26: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/androidtv/config_flow.py:90:34-98:18: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/androidtv/config_flow.py:336:61-338:18: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/androidtv/config_flow.py:367:78-371:18: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/androidtv/config_flow.py:451:23-455:10: The type of `rule_schema` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/androidtv/config_flow.py:454:30-32: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/androidtv_remote/config_flow.py:299:65-305:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anglian_water/config_flow.py:37:52-64: The type of attribute `TextSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anglian_water/config_flow.py:37:64-66: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anglian_water/config_flow.py:38:69-81: The type of attribute `TextSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anglian_water/config_flow.py:38:81-40:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anglian_water/config_flow.py:46:48-60: The type of attribute `TextSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anglian_water/config_flow.py:46:60-62: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anglian_water/config_flow.py:217:70-84: The type of attribute `SelectSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anglian_water/config_flow.py:217:84-223:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/config_flow.py:286:69-71: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/config_flow.py:289:38-295:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/config_flow.py:315:34-317:18: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/config_flow.py:322:34-328:18: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/config_flow.py:402:31-78: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/config_flow.py:415:17-421:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/config_flow.py:415:31-421:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/config_flow.py:434:35-439:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/config_flow.py:454:17-460:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/config_flow.py:454:31-460:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/anthropic/repairs.py:116:34-81: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/any_list/config_flow.py:32:52-34:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/any_list/config_flow.py:35:55-40:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/apcupsd/config_flow.py:17:14-28: The type of attribute `NumberSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/apcupsd/config_flow.py:17:28-21:6: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/asuswrt/config_flow.py:160:18-183:10: The type of `schema` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/asuswrt/config_flow.py:169:30-173:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aurora/config_flow.py:85:75-87:26: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/autoskope/config_flow.py:25:72-27:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/autoskope/config_flow.py:31:85-33:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/autoskope/config_flow.py:43:72-45:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aws_s3/config_flow.py:35:81-37:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/aws_s3/config_flow.py:41:24-78: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/axis/config_flow.py:269:28-64: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/axle_energy/config_flow.py:33:71-35:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/azure_data_explorer/config_flow.py:36:82-84: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/backblaze_b2/config_flow.py:37:79-39:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/backblaze_b2/config_flow.py:252:36-254:22: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bang_olufsen/config_flow.py:71:85-73:18: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:133:22-36: The type of attribute `NumberSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:133:36-141:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:153:22-36: The type of attribute `NumberSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:153:36-161:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:170:56-75: The type of attribute `DeviceClassSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:170:75-172:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:178:70-82: The type of attribute `TextSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:178:82-84: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:185:22-36: The type of attribute `NumberSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:185:36-193:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:203:22-36: The type of attribute `NumberSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:203:36-211:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:220:48-60: The type of attribute `TextSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:220:60-62: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:226:53-67: The type of attribute `EntitySelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:226:67-228:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:229:52-64: The type of attribute `TextSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:229:64-234:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:240:53-67: The type of attribute `EntitySelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:240:67-242:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:243:49-63: The type of attribute `NumberSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:243:63-247:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:248:49-63: The type of attribute `NumberSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:248:63-252:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:259:58-74: The type of attribute `TemplateSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bayesian/config_flow.py:259:74-261:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/besen/config_flow.py:38:14-42:2: The type of `PIN_SCHEMA` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/besen/config_flow.py:38:23-35: The type of attribute `TextSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/besen/config_flow.py:38:35-42:2: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bitcoin/config_flow.py:46:78-50:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bluetooth/config_flow.py:51:18-61:2: The type of `_MODE_SELECTOR` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bluetooth/config_flow.py:51:32-61:2: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bluetti_modbus/config_flow.py:27:51-53: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bluetti_modbus/config_flow.py:29:27-33:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bluetti_modbus/config_flow.py:37:27-41:14: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bring/config_flow.py:31:52-36:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/bring/config_flow.py:37:72-42:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/brother/config_flow.py:31:81-36:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/brother/config_flow.py:50:81-55:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/brottsplatskartan/config_flow.py:17:52-68: The type of attribute `LocationSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/brottsplatskartan/config_flow.py:17:68-19:10: The type of this argument is partially unknown; it contains an implicit `Any` [partially-unknown-type]
+ ERROR homeassistant/components/brottsplatskartan/config_flow.py:20:48-62: The type of attribute `SelectSelector` is partially unknown; it contains an implicit `Any` [partially-unknown-type]
... (truncated 2618 lines) ...
spack (https://github.com/spack/spack)
+ ERROR lib/spack/spack/spec.py:927:1-50: Untyped class decorator may modify `DependencySpec` in unexpected ways [untyped-class-decorator]
+ ERROR lib/spack/spack/spec.py:1897:1-50: Untyped class decorator may modify `Spec` in unexpected ways [untyped-class-decorator]
- ERROR lib/spack/spack/spec.py:5720:9-30: Class member `SpecfileV4.extract_info_from_dep` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ ERROR lib/spack/spack/spec.py:5711:7-17: Class `SpecfileV3` has unimplemented abstract members: `dependencies_from_node_dict`, `read_specfile_dep_specs`, `extract_build_spec_info_from_node_dict` [implicit-abstract-class]
+ ERROR lib/spack/spack/spec.py:5716:7-17: Class `SpecfileV4` has unimplemented abstract members: `dependencies_from_node_dict`, `read_specfile_dep_specs`, `extract_build_spec_info_from_node_dict` [implicit-abstract-class]
+ ERROR lib/spack/spack/spec.py:5732:7-17: Class `SpecfileV5` has unimplemented abstract members: `dependencies_from_node_dict`, `read_specfile_dep_specs`, `extract_build_spec_info_from_node_dict` [implicit-abstract-class]
- ERROR lib/spack/spack/spec.py:5744:9-30: Class member `SpecfileV5.extract_info_from_dep` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ ERROR lib/spack/spack/spec.py:5759:7-17: Class `SpecfileV6` has unimplemented abstract members: `dependencies_from_node_dict`, `read_specfile_dep_specs`, `extract_build_spec_info_from_node_dict` [implicit-abstract-class] |
Summary
Fixes #1180
Applied class decorators when computing class definition types, mirroring Python’s bottom‑up decorator application.
Test Plan
Updated the class decorator test to use cls: type, matching the issue repro.