Skip to content

Releases: agronholm/typeguard

4.5.1

19 Feb 16:09

Choose a tag to compare

  • Fixed iterable unpacking incorrectly calculating the cut-off offset of the item list when assigning remaining values to the star variable (#546)

4.5.0

15 Feb 13:55

Choose a tag to compare

  • Restored the check_argument_types() and check_return_type() functions that were dropped in v3.0.0, for users who want more fine-grained control over run-time type checking (#437)
  • Added support for extra_items in TypedDict, allowing users to specify the types for the values of "leftover" keys in a typed dict (keys that weren't explicitly defined in the TypedDict subclass) (#538)
  • Fixed NameError when evaluating forward references on Python 3.14 (#536; PR by @dionhaefner)
  • Fixed protocol check incorrectly rejecting inherited classmethods and staticmethods (#539)
  • Fixed missing TypeCheckError when checking TypedDict with Required[...] annotations (#533; PR by @dionhaefner)
  • Fixed type aliases (e.g. type Foo = list[int]) not being resolved during type checking (#526)
  • Fixed type-checked assignments to a single tuple target (e.g. x, = ("foo",)) falsely raising TypeCheckedError (#535)

4.4.4

18 Jun 09:56

Choose a tag to compare

  • Fixed IndexError when using @typechecked on more than one function with the same name under certain circumstances (#527)
  • Fixed TypeError during type checking when the value to check is a parametrized generic class (#526)

4.4.3

04 Jun 21:47

Choose a tag to compare

  • Fixed @typechecked unable to find the target function or method if it or the containing class had PEP 695 type parameters on them (#500)
  • Fixed handling of union types on Python 3.14 (#522)
  • Fixed __type_params__ getting lost when a function is instrumented

4.4.2

16 Feb 16:28

Choose a tag to compare

  • Fixed TypeCheckError in unpacking assignment involving properties of a parameter of the function (#506; regression introduced in v4.4.1)
  • Fixed display of module name for forward references (#492; PR by @JelleZijlstra)
  • Fixed TypeError when using an assignment expression (#510; PR by @JohannesK71083)
  • Fixed ValueError: no signature found for builtin when checking against a protocol and a matching attribute in the subject is a built-in function (#504)

4.4.1

03 Nov 12:14

Choose a tag to compare

  • Dropped Python 3.8 support
  • Changed the signature of typeguard_ignore() to be compatible with typing.no_type_check() (PR by @jolaf)
  • Avoid creating reference cycles when type checking uniontypes and classes
  • Fixed checking of variable assignments involving tuple unpacking (#486)
  • Fixed TypeError when checking a class against type[Self] (#481)
  • Fixed checking of protocols on the class level (against type[SomeProtocol]) (#498)
  • Fixed Self checks in instance/class methods that have positional-only arguments
  • Fixed explicit checks of PEP 604 unions against types.UnionType (#467)
  • Fixed checks against annotations wrapped in NotRequired not being run unless the NotRequired is a forward reference (#454)

4.4.0

27 Oct 10:57

Choose a tag to compare

  • Added proper checking for method signatures in protocol checks (#465)
  • Fixed basic support for intersection protocols (#490; PR by @antonagestam)
  • Fixed protocol checks running against the class of an instance and not the instance itself (this produced wrong results for non-method member checks)

4.3.0

27 May 09:45

Choose a tag to compare

  • Added support for checking against static protocols
  • Fixed some compatibility problems when running on Python 3.13 (#460; PR by @JelleZijlstra)
  • Fixed test suite incompatibility with pytest 8.2 (#461)
  • Fixed pytest plugin crashing on pytest version older than v7.0.0 (even if it's just present) (#343)

4.2.1

24 Mar 08:06

Choose a tag to compare

  • Fixed missing typing_extensions dependency for Python 3.12 (#444)
  • Fixed deprecation warning in the test suite on Python 3.13 (#444)

4.2.0

23 Mar 21:53

Choose a tag to compare

  • Added support for specifying options for the pytest plugin via pytest config files (#440)
  • Avoid creating reference cycles when type checking unions (PR by Shantanu)
  • Fixed Optional[...] being removed from the AST if it was located within a subscript (#442)
  • Fixed TypedDict from typing_extensions not being recognized as one (#443)
  • Fixed typing types (dict[str, int], List[str], etc.) not passing checks against type or Type (#432, PR by Yongxin Wang)
  • Fixed detection of optional fields (NotRequired[...]) in TypedDict when using forward references (#424)
  • Fixed mapping checks against Django's MultiValueDict (#419)