Enhancing Decorators with Type Annotations: Techniques and Best Practices — Koudai Aono

Conference: EuroPython 2024

Year: 2024

[EuroPython 2024 — South Hall 2A on 2024-07-10] Enhancing Decorators with Type Annotations: Techniques and Best Practices by Koudai Aono https://ep2024.europython.eu/session/enhancing-decorators-with-type-annotations-techniques-and-best-practices Decorators are powerful, magical syntax sugar, offering a convenient way to wrap and enhance functions. But sometimes, it's not clear how to use a defined decorator. What arguments should we pass to a given decorator? What functions does it target? Does it change the return type of the wrapped function? Have you ever faced these questions? If proper type hints are defined for decorators, static type checkers like mypy and pyright IDEs will point out the errors in usage. Thus, guiding you on the right path by catching bugs earlier, reducing unnecessary debugging and unexpected runtime behaviour. This talk will step you through type definitions utilizing `typing.TypeVarTuple`, `typing.Protocol`, `typing.ParamSpec`, `typing.Concatenate`, `Type Parameter Syntax`, and more, all of which are practical to implement and can make your project robust! --- This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/