Basedmypy Changelog

[2.7.0]

Added

  • typed functools.wraps correctly

  • typed builtins.ellipsis/types.EllipsisType correctly

  • disable bytearray and memoryview promotions by default

  • support typing.type_check_only

  • support default values on type parameters

  • support based type notation in type alias statements

  • support basedtyping.FunctionType

Fixes

  • fixed crash with re plugin

  • fixed crash with Intersection cache

  • fixed definition of types.NoneType

Enhancements

  • fixed default configuration in the docs

[2.6.0]

Added

  • Any parameter _ will be inferred as object (#687)

  • work_not_properly_function_names made available to per module configuration (#699)

  • Support BASEDMYPY_TYPE_CHECKING (#702)

  • Enable stub mode within TYPE_CHECKING branches (#702)

  • Infer from overloads - add default value in impl (#697)

  • Warn for missing returns with explicit Any return types (#715)

Fixes

  • positional arguments on overloads break super (#697)

  • positional arguments on overloads duplicate unions (#697)

  • fix intersection type aliases (#716)

[2.5.0]

Added

  • Callable syntax ((int) -> str) (#619)

  • FunctionType syntax (def (int) -> str) (#619)

Fixes

  • Callable is no longer types.FunctionType (#619)

[2.4.0]

[2.3.0]

Added

  • f-string format specs are checked (#543)

  • Narrow type on initial assignment (#547)

  • Annotations in function bodies are not analyzed as evaluated (#564)

  • Invalid casts show an error (#573)

  • Argument names are validated for subtypes (#562)

  • Type-guards narrow in the negative (#553)

  • Conditional types for asymmetric type-guards (#553)

  • Static conditions report an error (#553)

  • Regex groups are special-cased (#531)

  • f-strings will show an error if the value doesn’t define a stringification (#565)

Enhancements

  • Show ‘narrowed from’ in reveal_type (#550)

  • --color-output is enabled by default (#531)

  • --ide will disable color-output (#531)

  • Output lines won’t wrap if not connected to a terminal (#531)

Fixes

  • Render star args in error messages properly (#551)

  • The first argument to cast is analyzed as evaluated (#564)

  • Decorated functions that return None correctly warn when used (#572)

  • Some impossible type-guards were not reporting an error (#553)

[2.2.1]

Fixes

  • explicit-override is re-enabled by default

[2.2.0]

Added

  • type-guards have been reworked from the ground up (#516)

  • TypeGuard is retained in inferred types (#504)

  • Type narrowing is applied from lambda execution (#504)

  • --ide flag (#501)

Enhancements

  • show-error-context/pretty are now on by default (#501)

  • Show fake column number when --show-error-end (#501)

  • Error messages point to basedmypy docs (#516)

  • Callable types in error messages don’t contain mypy_extensions (#516)

Fixes

  • Don’t show “X defined here” when error context is hidden (#498)

  • Fix issue with reveal code in ignore message (#490)

  • Fixed union at join for same type literals. (#488)

  • Don’t report false Any expressions when inferring lambda type (#515)

  • Correctly match overload when it contains an Any expression (#515)

  • Fixed the variance of Mappings key type (#527)

[2.1.0]

[2.0.0]

Added

  • Deprecate python 3.7 support (#457)

  • Allow denotation of tuple types with tuple literals (#458)

  • Removed --legacy flag in favour of --no-strict (#445)

  • default-return is now enabled by default (#445)

Enhancements

  • Removed Any from the typings for re.Match group functions. (#459)

  • Ignore Any from unused __init__. (#321)

Fixes

  • Fix unsafe variance note (#452)

  • Fix crash with baseline filtering (#471)

[1.8.0]

Added

  • Intersection type (#357)

[1.7.0]

Added

  • ignore-missing-py-typed to use types even if there is no py.typed (#337)

Fixes

  • Errors regarding inferred functions didn’t have a note (#394)

  • Type ignored calls to incomplete functions left a phantom note (#395)

  • Fix incorrect plural in summary message (#386)

Enhancements

  • Baseline now stores the source code for better matching (#415)

  • Duplicates are no longer stored in the baseline (#231)

[1.6.0]

Added

  • Support using TypeVars in the bounds of other TypeVars

Enhancements

  • Similar errors on the same line will now not be removed

  • Render generic upper bound with : instead of <:

  • Render uninhabited type as Never instead of <nothing>

  • Render Callables with -> None

Fixes

  • Handle positional only / parameters in overload implementation inference

  • Render inferred literal without ?

  • Fix infer from defaults for inner functions

[1.5.0]

Added

  • Allow literal int, bool and Enums without Literal

Enhancements

  • Unionize at type joins instead of common ancestor

  • Render Literal types better in output messages

[1.4.0]

Added

  • ignore_any_from_errors option to suppress no-any-expr messages from other errors

  • Function types are inferred from Overloads, overrides and default values. (no overrides for now sorry)

  • Infer Property types

  • Calls to incomplete functions are an error (configurable with incomplete_is_typed)

  • Added a new type Untyped, it’s like Any, but more specific

  • Added a dependency on basedtyping

Enhancements

  • Render types a lot better in output messages

Fixes

  • types.NoneType now works as a value of type[None]

[1.3.0]

Added

  • default_return option to imply unannotated return type as None.

  • Specific error codes for Any errors

  • Automatic baseline mode, if there are no new errors then write.

  • Ignore baseline with mypy --baseline-file= src

Enhancements

  • Baseline will ignore reveals (reveal_type and reveal_locals).

  • --write-baseline will report total and new errors.

  • Much better baseline matching.

[1.2.0]

Added

  • Unions in output messages show with new syntax

  • --legacy flag

  • new baseline format

[1.0.0]

Added

  • Strict by default(--strict and disable dynamic typing)

  • add baseline support(--write-baseline, --baseline-file)

  • Type ignore must specify error code

  • Unused type ignore can be ignored

  • Add error code for unsafe variance(unsafe-variance)