basedmypy
basedmypy copied to clipboard
Based Python static type checker with baseline, sane default settings and based typing features
### Describe the problem, ie expected/actual result (if it's not blatantly obvious) this prevents you from being able to use `cast` to work around `redundant-expr` false positives (eg. #615) ###...
I think the issue is that you can't disable the cache easily.
```toml [[tool.mypy.overrides]] module = "among.us" work_not_properly_function_names = true ```
```py lambda a=1: None # error: Any ```
### Describe the problem, ie expected/actual result (if it's not blatantly obvious) _No response_ ### Gist to reproduce ```python from typing import override class Foo: def foo(self, a: object, **options:...
allow redefinition is basically the same as shadowing, which is cringe imo
this does not happen in upstreamed mypy - [basedmypy playground](https://mypy-play.net/?mypy=basedmypy-2.3.0&python=3.12&gist=3dd058a366c3237bcfadcdb551c4ce9e) - [mypy playground](https://mypy-play.net/?mypy=latest&python=3.12&flags=show-error-context%2Cshow-error-codes%2Cstrict%2Ccheck-untyped-defs%2Cdisallow-any-decorated%2Cdisallow-any-expr%2Cdisallow-incomplete-defs%2Cdisallow-subclassing-any%2Cdisallow-untyped-calls%2Cdisallow-untyped-decorators%2Cdisallow-untyped-defs%2Cno-implicit-reexport%2Clocal-partial-types%2Cstrict-equality%2Cwarn-incomplete-stub%2Cwarn-redundant-casts%2Cwarn-return-any%2Cwarn-unreachable%2Cwarn-unused-configs%2Cwarn-unused-ignores%2Cno-implicit-optional&gist=57026a46f2e0942012976ff9d5c3bb70) ### Gist to reproduce ```python # mypy: allow-any-explicit=true from typing import Any, cast def any() -> Any:...
```py @generic def f(t: T) -> T: ... reveal_type(f[object](1)) # object ```
```python from collections.abc import Iterator Iterator[int] ``` https://mypy-play.net/?mypy=basedmypy-2.3.0&python=3.8&gist=b28202ab91d513b652d8abca87ef02a8 This is because the defs in `_collections_abc` just import from `typing`
```py class A: def init(): ... # no error class B: def iniy(): ... # no error class C(A, B): ...# error, B init not called print(C.mro()) ```