Skip to content

fix support inspect unwrap to return precise type #3696#3901

Open
asukaminato0721 wants to merge 3 commits into
facebook:mainfrom
asukaminato0721:3696
Open

fix support inspect unwrap to return precise type #3696#3901
asukaminato0721 wants to merge 3 commits into
facebook:mainfrom
asukaminato0721:3696

Conversation

@asukaminato0721

@asukaminato0721 asukaminato0721 commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #3696

functools._Wrapped.__wrapped__ now preserves the exact wrapped object type, so nested @wraps chains remain visible

Decorator application no longer collapses functools._Wrapped back to the wrapper signature

inspect.unwrap now follows .__wrapped__ until the end of the chain when stop is omitted or None

Test Plan

add test

@github-actions

This comment has been minimized.

@github-actions github-actions Bot added size/l and removed size/s labels Jun 23, 2026
@github-actions

This comment has been minimized.

@github-actions github-actions Bot added size/l and removed size/l labels Jun 23, 2026
@github-actions

Copy link
Copy Markdown

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

cki-lib (https://gitlab.com/cki-project/cki-lib)
- ERROR cki_lib/retrying.py:25:13-33: Object of class `FunctionType` has no attribute `failed_count` [missing-attribute]
+ ERROR cki_lib/retrying.py:25:13-33: Object of class `_Wrapped` has no attribute `failed_count` [missing-attribute]
- ERROR cki_lib/retrying.py:26:13-28: Object of class `FunctionType` has no attribute `retries` [missing-attribute]
+ ERROR cki_lib/retrying.py:26:13-28: Object of class `_Wrapped` has no attribute `retries` [missing-attribute]
- ERROR cki_lib/retrying.py:35:21-41: Object of class `FunctionType` has no attribute `failed_count` [missing-attribute]
+ ERROR cki_lib/retrying.py:35:21-41: Object of class `_Wrapped` has no attribute `failed_count` [missing-attribute]
- ERROR cki_lib/retrying.py:37:24-44: Object of class `FunctionType` has no attribute `failed_count` [missing-attribute]
+ ERROR cki_lib/retrying.py:37:24-44: Object of class `_Wrapped` has no attribute `failed_count` [missing-attribute]
- ERROR tests/test_retrying.py:44:25-49: Object of class `FunctionType` has no attribute `failed_count` [missing-attribute]
+ ERROR tests/test_retrying.py:44:25-49: Object of class `_Wrapped` has no attribute `failed_count` [missing-attribute]
- ERROR tests/test_retrying.py:62:26-52: Object of class `FunctionType` has no attribute `failed_count` [missing-attribute]
+ ERROR tests/test_retrying.py:62:26-52: Object of class `_Wrapped` has no attribute `failed_count` [missing-attribute]
- ERROR tests/test_retrying.py:70:9-34: Object of class `FunctionType` has no attribute `__wrapped__` [missing-attribute]
+ ERROR tests/test_retrying.py:70:9-46: Object of class `FunctionType` has no attribute `cache_clear` [missing-attribute]

rotki (https://github.com/rotki/rotki)
- ERROR rotkehlchen/api/v1/parser.py:73:13-32: Object of class `FunctionType` has no attribute `__wrapped__` [missing-attribute]

bokeh (https://github.com/bokeh/bokeh)
- ERROR src/bokeh/server/session.py:110:12-40: Returned type `(self: ServerSession, *args: Unknown, **kwargs: Unknown) -> Coroutine[Unknown, Unknown, Unknown]` is not assignable to declared return type `F` [bad-return]
+ ERROR src/bokeh/server/session.py:110:12-40: Returned type `_Wrapped[Ellipsis, Any, [self: ServerSession, *args: Unknown, **kwargs: Unknown], Coroutine[Unknown, Unknown, Unknown]]` is not assignable to declared return type `F` [bad-return]

pytest-autoprofile (https://gitlab.com/TTsangSC/pytest-autoprofile)
- ERROR src/pytest_autoprofile/_test_utils.py:732:35-734:6: No matching overload found for function `_pytest.fixtures.fixture` called with arguments: ((*args: Unknown, **kwargs: Unknown) -> Unknown, **dict[str, Literal['class', 'function', 'module', 'package', 'session'] | Unknown]) [no-matching-overload]
+ ERROR src/pytest_autoprofile/_test_utils.py:732:35-734:6: No matching overload found for function `_pytest.fixtures.fixture` called with arguments: (_Wrapped[PS, Generator[tuple[_Paths, _Paths]] | tuple[_Paths, _Paths], [*args: Unknown, **kwargs: Unknown], Unknown], **dict[str, Literal['class', 'function', 'module', 'package', 'session'] | Unknown]) [no-matching-overload]

ibis (https://github.com/ibis-project/ibis)
- ERROR ibis/backends/datafusion/__init__.py:757:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/datafusion/__init__.py:757:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/datafusion/__init__.py:764:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/datafusion/__init__.py:764:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/datafusion/__init__.py:771:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/datafusion/__init__.py:771:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/datafusion/__init__.py:778:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/datafusion/__init__.py:778:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/datafusion/__init__.py:785:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/datafusion/__init__.py:785:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/datafusion/__init__.py:792:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/datafusion/__init__.py:792:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/datafusion/__init__.py:799:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/datafusion/__init__.py:799:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/datafusion/__init__.py:806:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/datafusion/__init__.py:806:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/polars/__init__.py:561:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/polars/__init__.py:561:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/polars/__init__.py:566:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/polars/__init__.py:566:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/polars/__init__.py:567:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/polars/__init__.py:567:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/polars/__init__.py:572:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/polars/__init__.py:572:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/polars/__init__.py:573:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/polars/__init__.py:573:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/polars/__init__.py:574:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/polars/__init__.py:574:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/backends/polars/__init__.py:579:2-26: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/backends/polars/__init__.py:579:2-26: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/annotations.py:653:5-26: Object of class `FunctionType` has no attribute `__signature__` [missing-attribute]
+ ERROR ibis/common/annotations.py:653:5-26: Object of class `_Wrapped` has no attribute `__signature__` [missing-attribute]
+ ERROR ibis/common/deferred.py:580:5-15: Overload return type `[F: (...) -> Unknown](F) -> F` is not assignable to implementation return type `((func: Unknown) -> _Wrapped[Unknown, Unknown, [*args: Unknown, **kwargs: Unknown], Deferred | Unknown]) | _Wrapped[Unknown, Unknown, [*args: Unknown, **kwargs: Unknown], Deferred | Unknown]` [inconsistent-overload]
- ERROR ibis/common/dispatch.py:117:5-18: Object of class `FunctionType` has no attribute `dispatch` [missing-attribute]
+ ERROR ibis/common/dispatch.py:117:5-18: Object of class `_Wrapped` has no attribute `dispatch` [missing-attribute]
- ERROR ibis/common/dispatch.py:118:5-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/dispatch.py:118:5-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/patterns.py:1406:18-34: Object of class `FunctionType` has no attribute `__signature__`
+ ERROR ibis/common/patterns.py:1406:18-34: Object of class `_Wrapped` has no attribute `__signature__`
- ERROR ibis/common/temporal.py:229:2-29: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/temporal.py:229:2-29: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/temporal.py:244:2-29: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/temporal.py:244:2-29: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/temporal.py:249:2-29: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/temporal.py:249:2-29: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/temporal.py:254:2-29: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/temporal.py:254:2-29: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/temporal.py:259:2-29: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/temporal.py:259:2-29: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/temporal.py:264:2-29: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/temporal.py:264:2-29: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/temporal.py:271:2-29: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/temporal.py:271:2-29: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:15:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:15:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:19:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:19:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:23:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:23:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:45:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:45:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:49:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:49:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:63:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:63:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:82:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:82:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:86:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:86:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:105:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:105:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:109:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:109:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/common/tests/test_dispatch.py:113:6-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/common/tests/test_dispatch.py:113:6-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- Object of class `FunctionType` has no attribute `__wrapped__`
- ERROR ibis/expr/api.py:491:2-20: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/api.py:491:2-20: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/api.py:535:2-20: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/api.py:535:2-20: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/api.py:554:2-20: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/api.py:554:2-20: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/api.py:570:2-20: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/api.py:570:2-20: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/api.py:584:2-20: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/api.py:584:2-20: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/api.py:589:2-20: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/api.py:589:2-20: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/api.py:608:2-20: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/api.py:608:2-20: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/core.py:1196:2-17: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/core.py:1196:2-17: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/core.py:1203:2-17: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/core.py:1203:2-17: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/core.py:1208:2-17: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/core.py:1208:2-17: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/core.py:1213:2-17: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/core.py:1213:2-17: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/core.py:1218:2-17: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/core.py:1218:2-17: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/core.py:1223:2-17: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/core.py:1223:2-17: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/core.py:1229:5-20: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/core.py:1229:5-20: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:42:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:42:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:51:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:51:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:65:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:65:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:73:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:73:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:78:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:78:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:83:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:83:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:91:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:91:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:113:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:113:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:118:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:118:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:123:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:123:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:128:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:128:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:138:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:138:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:143:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:143:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:149:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:149:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:154:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:154:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:159:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:159:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:164:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:164:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:171:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:171:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:178:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:178:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:186:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:186:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:208:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:208:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:209:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:209:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:222:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:222:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:227:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:227:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:232:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:232:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:237:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:237:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:242:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:242:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:247:2-16: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:247:2-16: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/datatypes/value.py:253:5-19: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/datatypes/value.py:253:5-19: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:457:2-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:457:2-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:462:2-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:462:2-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:467:2-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:467:2-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:472:2-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:472:2-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:477:2-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:477:2-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:484:2-18: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:484:2-18: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:491:2-17: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:491:2-17: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:498:2-17: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:498:2-17: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:505:2-17: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:505:2-17: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:506:2-17: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:506:2-17: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:514:5-20: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:514:5-20: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
- ERROR ibis/expr/schema.py:515:5-21: Object of class `FunctionType` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/schema.py:515:5-21: Object of class `_Wrapped` has no attribute `register` [missing-attribute]
+ ERROR ibis/expr/types/joins.py:228:9-13: Class member `Join.join` overrides parent class `Table` in an inconsistent manner [bad-override-mutable-attribute]
+ ERROR ibis/expr/types/joins.py:284:9-18: Class member `Join.asof_join` overrides parent class `Table` in an inconsistent manner [bad-override-mutable-attribute]
+ ERROR ibis/expr/types/joins.py:366:9-19: Class member `Join.cross_join` overrides parent class `Table` in an inconsistent manner [bad-override-mutable-attribute]
+ ERROR ibis/expr/types/joins.py:382:9-15: Class member `Join.select` overrides parent class `Table` in an inconsistent manner [bad-override-mutable-attribute]
+ ERROR ibis/expr/types/joins.py:407:9-16: Class member `Join.columns` overrides parent class `Table` in an inconsistent manner [bad-override]
+ ERROR ibis/expr/types/joins.py:418:5-11: Class member `Join.dropna` overrides parent class `Table` in an inconsistent manner [bad-override-mutable-attribute]
+ ERROR ibis/expr/types/relations.py:3860:13-18: Missing positional argument `right` in function `functools._Wrapped.__call__` [bad-argument-count]

strawberry (https://github.com/strawberry-graphql/strawberry)
- ERROR strawberry/tools/create_type.py:71:12-78:6: Returned type `type[Any]` is not assignable to declared return type `type[Any]` [bad-return]
- ERROR strawberry/tools/merge_types.py:35:12-50: Returned type `type` is not assignable to declared return type `type[Any]` [bad-return]

dd-trace-py (https://github.com/DataDog/dd-trace-py)
- ERROR ddtrace/_trace/tracer.py:921:20-32: Returned type `((*args: Unknown, **kwargs: Unknown) -> Coroutine[Unknown, Unknown, Unknown]) | ((*args: Unknown, **kwargs: Unknown) -> Unknown) | AnyCallable` is not assignable to declared return type `AnyCallable` [bad-return]
+ ERROR ddtrace/_trace/tracer.py:921:20-32: Returned type `AnyCallable | _Wrapped[Ellipsis, Unknown, [*args: Unknown, **kwargs: Unknown], Coroutine[Unknown, Unknown, Unknown]] | _Wrapped[Ellipsis, Unknown, [*args: Unknown, **kwargs: Unknown], Unknown]` is not assignable to declared return type `AnyCallable` [bad-return]
- ERROR ddtrace/contrib/internal/llama_index/patch.py:68:5-27: Object of class `FunctionType` has no attribute `__dd_wrapped__` [missing-attribute]
+ ERROR ddtrace/contrib/internal/llama_index/patch.py:68:5-27: Object of class `_Wrapped` has no attribute `__dd_wrapped__` [missing-attribute]
- ERROR ddtrace/contrib/internal/llama_index/patch.py:283:5-27: Object of class `FunctionType` has no attribute `__dd_wrapped__` [missing-attribute]
+ ERROR ddtrace/contrib/internal/llama_index/patch.py:283:5-27: Object of class `_Wrapped` has no attribute `__dd_wrapped__` [missing-attribute]
- ERROR ddtrace/vendor/psutil/_common.py:415:5-24: Object of class `FunctionType` has no attribute `cache_clear` [missing-attribute]
+ ERROR ddtrace/vendor/psutil/_common.py:415:5-24: Object of class `_Wrapped` has no attribute `cache_clear` [missing-attribute]
- ERROR ddtrace/vendor/psutil/_common.py:485:5-27: Object of class `FunctionType` has no attribute `cache_activate` [missing-attribute]
+ ERROR ddtrace/vendor/psutil/_common.py:485:5-27: Object of class `_Wrapped` has no attribute `cache_activate` [missing-attribute]
- ERROR ddtrace/vendor/psutil/_common.py:486:5-29: Object of class `FunctionType` has no attribute `cache_deactivate` [missing-attribute]
+ ERROR ddtrace/vendor/psutil/_common.py:486:5-29: Object of class `_Wrapped` has no attribute `cache_deactivate` [missing-attribute]

core (https://github.com/home-assistant/core)
- ERROR homeassistant/helpers/trace.py:343:16-29: Returned type `(*args: *_Ts) -> Coroutine[Unknown, Unknown, None]` is not assignable to declared return type `(**tuple[*_Ts]) -> Coroutine[Any, Any, None]` [bad-return]
+ ERROR homeassistant/helpers/trace.py:343:16-29: Returned type `_Wrapped[[**tuple[*_Ts]], Coroutine[Any, Any, None], [*args: *_Ts], Coroutine[Unknown, Unknown, None]]` is not assignable to declared return type `(**tuple[*_Ts]) -> Coroutine[Any, Any, None]` [bad-return]
- ERROR homeassistant/util/__init__.py:183:17-31: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute]
+ ERROR homeassistant/util/__init__.py:183:17-31: Object of class `_Wrapped` has no attribute `_throttle` [missing-attribute]
- ERROR homeassistant/util/__init__.py:185:32-46: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute]
+ ERROR homeassistant/util/__init__.py:185:32-46: Object of class `_Wrapped` has no attribute `_throttle` [missing-attribute]
- ERROR homeassistant/util/__init__.py:186:17-31: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute]
+ ERROR homeassistant/util/__init__.py:186:17-31: Object of class `_Wrapped` has no attribute `_throttle` [missing-attribute]
- ERROR homeassistant/util/__init__.py:187:24-38: Object of class `FunctionType` has no attribute `_throttle` [missing-attribute]
+ ERROR homeassistant/util/__init__.py:187:24-38: Object of class `_Wrapped` has no attribute `_throttle` [missing-attribute]

sphinx (https://github.com/sphinx-doc/sphinx)
+ ERROR sphinx/jinja2glue.py:203:46-53: Cannot set item in `dict[str, ((obj: Sized, /) -> int) | ((s: Any, /) -> Markup) | ((s: Any, /) -> str) | ((env: Environment, s: str, length: int = 255, killwords: bool = False, end: str = '...', leeway: int | None = None) -> str) | ((environment: Environment, obj: Any, name: str) -> Undefined | Any) | ((environment: Environment, s: str, width: int = 79, break_long_words: bool = True, wrapstring: str | None = None, break_on_hyphens: bool = True) -> str) | ((eval_ctx: EvalContext, d: Mapping[str, Any], autospace: bool = True) -> str) | ((eval_ctx: EvalContext, s: str, old: str, new: str, count: int | None = None) -> str) | ((eval_ctx: EvalContext, value: str, trim_url_limit: int | None = None, nofollow: bool = False, target: str | None = None, rel: str | None = None, extra_schemes: Iterable[str] | None = None) -> str) | ((eval_ctx: EvalContext, value: Any, indent: int | None = None) -> Markup) | ((s: str) -> int) | ((s: str) -> str) | ((s: str, width: int | str = 4, first: bool = False, blank: bool = False) -> str) | ((value: HasHTML | str) -> Markup) | ((value: HasHTML | str) -> str) | ((value: Iterable[tuple[str, Any]] | Mapping[str, Any] | str) -> str) | ((value: float | int | str, binary: bool = False) -> str) | ((value: float, precision: int = 0, method: Literal['ceil', 'common', 'floor'] = 'common') -> float) | ((value: str) -> Markup) | ((value: str, chars: str | None = None) -> str) | ((value: str, width: int = 80) -> str) | ((value: str, *args: Any, **kwargs: Any) -> str) | ((value: Any) -> str) | ((value: Any, default: float = 0.0) -> float) | ((value: Any, default: int = 0, base: int = 10) -> int) | Overload[(context: Context, value: AsyncIterable[Any] | Iterable[Any], name: str, *args: Any, **kwargs: Any) -> Iterable[Any], (context: Context, value: AsyncIterable[Any] | Iterable[Any], *, attribute: str = ..., default: Any | None = None) -> Iterable[Any]] | Overload[(value: str) -> str, [V](value: Iterable[V]) -> Iterable[V]] | [_T](x: SupportsAbs[_T], /) -> _T | [K, V](value: Mapping[K, V] | Undefined) -> Iterator[tuple[K, V]] | [K, V](value: Mapping[K, V], case_sensitive: bool = False, by: Literal['key', 'value'] = 'key', reverse: bool = False) -> list[tuple[K, V]] | [V](environment: Environment, value: Iterable[V], reverse: bool = False, case_sensitive: bool = False, attribute: int | str | None = None) -> list[V] | [V](environment: Environment, value: Iterable[V], case_sensitive: bool = False, attribute: int | str | None = None) -> Undefined | V | [V](value: V, default_value: V = '', boolean: bool = False) -> V | [V](environment: Environment, seq: Reversible[V]) -> Undefined | V | [V](context: Context, seq: Sequence[V]) -> Undefined | V | [V](value: Iterable[V], linecount: int, fill_with: V | None = None) -> Iterator[list[V]] | _Wrapped[Unknown, Unknown, [*args: Unknown, **kwargs: Unknown], Unknown]]` [unsupported-operation]
+ ERROR sphinx/jinja2glue.py:204:45-51: Cannot set item in `dict[str, ((obj: Sized, /) -> int) | ((s: Any, /) -> Markup) | ((s: Any, /) -> str) | ((env: Environment, s: str, length: int = 255, killwords: bool = False, end: str = '...', leeway: int | None = None) -> str) | ((environment: Environment, obj: Any, name: str) -> Undefined | Any) | ((environment: Environment, s: str, width: int = 79, break_long_words: bool = True, wrapstring: str | None = None, break_on_hyphens: bool = True) -> str) | ((eval_ctx: EvalContext, d: Mapping[str, Any], autospace: bool = True) -> str) | ((eval_ctx: EvalContext, s: str, old: str, new: str, count: int | None = None) -> str) | ((eval_ctx: EvalContext, value: str, trim_url_limit: int | None = None, nofollow: bool = False, target: str | None = None, rel: str | None = None, extra_schemes: Iterable[str] | None = None) -> str) | ((eval_ctx: EvalContext, value: Any, indent: int | None = None) -> Markup) | ((s: str) -> int) | ((s: str) -> str) | ((s: str, width: int | str = 4, first: bool = False, blank: bool = False) -> str) | ((value: HasHTML | str) -> Markup) | ((value: HasHTML | str) -> str) | ((value: Iterable[tuple[str, Any]] | Mapping[str, Any] | str) -> str) | ((value: float | int | str, binary: bool = False) -> str) | ((value: float, precision: int = 0, method: Literal['ceil', 'common', 'floor'] = 'common') -> float) | ((value: str) -> Markup) | ((value: str, chars: str | None = None) -> str) | ((value: str, width: int = 80) -> str) | ((value: str, *args: Any, **kwargs: Any) -> str) | ((value: Any) -> str) | ((value: Any, default: float = 0.0) -> float) | ((value: Any, default: int = 0, base: int = 10) -> int) | Overload[(context: Context, value: AsyncIterable[Any] | Iterable[Any], name: str, *args: Any, **kwargs: Any) -> Iterable[Any], (context: Context, value: AsyncIterable[Any] | Iterable[Any], *, attribute: str = ..., default: Any | None = None) -> Iterable[Any]] | Overload[(value: str) -> str, [V](value: Iterable[V]) -> Iterable[V]] | [_T](x: SupportsAbs[_T], /) -> _T | [K, V](value: Mapping[K, V] | Undefined) -> Iterator[tuple[K, V]] | [K, V](value: Mapping[K, V], case_sensitive: bool = False, by: Literal['key', 'value'] = 'key', reverse: bool = False) -> list[tuple[K, V]] | [V](environment: Environment, value: Iterable[V], reverse: bool = False, case_sensitive: bool = False, attribute: int | str | None = None) -> list[V] | [V](environment: Environment, value: Iterable[V], case_sensitive: bool = False, attribute: int | str | None = None) -> Undefined | V | [V](value: V, default_value: V = '', boolean: bool = False) -> V | [V](environment: Environment, seq: Reversible[V]) -> Undefined | V | [V](context: Context, seq: Sequence[V]) -> Undefined | V | [V](value: Iterable[V], linecount: int, fill_with: V | None = None) -> Iterator[list[V]] | _Wrapped[Unknown, Unknown, [*args: Unknown, **kwargs: Unknown], Unknown]]` [unsupported-operation]
+ ERROR sphinx/jinja2glue.py:206:51-63: Cannot set item in `dict[str, ((obj: Sized, /) -> int) | ((s: Any, /) -> Markup) | ((s: Any, /) -> str) | ((env: Environment, s: str, length: int = 255, killwords: bool = False, end: str = '...', leeway: int | None = None) -> str) | ((environment: Environment, obj: Any, name: str) -> Undefined | Any) | ((environment: Environment, s: str, width: int = 79, break_long_words: bool = True, wrapstring: str | None = None, break_on_hyphens: bool = True) -> str) | ((eval_ctx: EvalContext, d: Mapping[str, Any], autospace: bool = True) -> str) | ((eval_ctx: EvalContext, s: str, old: str, new: str, count: int | None = None) -> str) | ((eval_ctx: EvalContext, value: str, trim_url_limit: int | None = None, nofollow: bool = False, target: str | None = None, rel: str | None = None, extra_schemes: Iterable[str] | None = None) -> str) | ((eval_ctx: EvalContext, value: Any, indent: int | None = None) -> Markup) | ((s: str) -> int) | ((s: str) -> str) | ((s: str, width: int | str = 4, first: bool = False, blank: bool = False) -> str) | ((value: HasHTML | str) -> Markup) | ((value: HasHTML | str) -> str) | ((value: Iterable[tuple[str, Any]] | Mapping[str, Any] | str) -> str) | ((value: float | int | str, binary: bool = False) -> str) | ((value: float, precision: int = 0, method: Literal['ceil', 'common', 'floor'] = 'common') -> float) | ((value: str) -> Markup) | ((value: str, chars: str | None = None) -> str) | ((value: str, width: int = 80) -> str) | ((value: str, *args: Any, **kwargs: Any) -> str) | ((value: Any) -> str) | ((value: Any, default: float = 0.0) -> float) | ((value: Any, default: int = 0, base: int = 10) -> int) | Overload[(context: Context, value: AsyncIterable[Any] | Iterable[Any], name: str, *args: Any, **kwargs: Any) -> Iterable[Any], (context: Context, value: AsyncIterable[Any] | Iterable[Any], *, attribute: str = ..., default: Any | None = None) -> Iterable[Any]] | Overload[(value: str) -> str, [V](value: Iterable[V]) -> Iterable[V]] | [_T](x: SupportsAbs[_T], /) -> _T | [K, V](value: Mapping[K, V] | Undefined) -> Iterator[tuple[K, V]] | [K, V](value: Mapping[K, V], case_sensitive: bool = False, by: Literal['key', 'value'] = 'key', reverse: bool = False) -> list[tuple[K, V]] | [V](environment: Environment, value: Iterable[V], reverse: bool = False, case_sensitive: bool = False, attribute: int | str | None = None) -> list[V] | [V](environment: Environment, value: Iterable[V], case_sensitive: bool = False, attribute: int | str | None = None) -> Undefined | V | [V](value: V, default_value: V = '', boolean: bool = False) -> V | [V](environment: Environment, seq: Reversible[V]) -> Undefined | V | [V](context: Context, seq: Sequence[V]) -> Undefined | V | [V](value: Iterable[V], linecount: int, fill_with: V | None = None) -> Iterator[list[V]] | _Wrapped[Unknown, Unknown, [*args: Unknown, **kwargs: Unknown], Unknown]]` [unsupported-operation]

pydantic (https://github.com/pydantic/pydantic)
- ERROR pydantic/dataclasses.py:201:19-212:14: `type[Any]` is not assignable to variable `cls` with type `type[Any]` [bad-assignment]
- ERROR pydantic/v1/dataclasses.py:233:16-22: Returned type `DataclassProxy | type[Any]` is not assignable to declared return type `DataclassProxy | type[Dataclass]` [bad-return]
- ERROR pydantic/v1/dataclasses.py:500:32-80: Argument `DataclassClassOrWrapper` is not assignable to parameter `cls` with type `DataclassProxy | type[Dataclass]` in function `_get_validators` [bad-argument-type]

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

support inspect unwrap to return precise type

1 participant