[ https://issues.apache.org/jira/browse/THRIFT-5139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jens Geyer resolved THRIFT-5139. -------------------------------- Fix Version/s: 0.21.0 Assignee: Jens Geyer Resolution: Duplicate > Type hinting for Python library > ------------------------------- > > Key: THRIFT-5139 > URL: https://issues.apache.org/jira/browse/THRIFT-5139 > Project: Thrift > Issue Type: Improvement > Components: Python - Library > Reporter: Neil Williams > Assignee: Jens Geyer > Priority: Major > Fix For: 0.21.0 > > Time Spent: 11h 20m > Remaining Estimate: 0h > > Similarly to THRIFT-4181, it'd be useful to have type hints for the Python > Thrift library itself. > There are a few possible approaches: > 1) Add type stubs to the [typeshed|[https://github.com/python/typeshed]]. > This would require no changes to the library itself but also would mean the > types are always potentially out of sync with the library and come from > different places. > 2) Add type stubs in separate .pyi files within the main library codebase. > This allows the library to maintain compatibility with Python versions lower > than 3.5 while also providing proper annotations to modern implementations. > Like with typeshed it runs the risk of types and implementations being out of > sync, but the risk should be lower because the code lives side-by-side. > 3) Add type annotations directly to the Python code. The code and types would > be combined and so would always stay in sync. This would essentially break > compatibility with Python 3.4 and lower (incl. Python 2.7). While this sounds > drastic, [Python 3.4 went end-of-life in March 2019 and Python 2.7 in January > 2020|https://devguide.python.org/devcycle/#end-of-life-branches]. This is the > most drastic option, but explicitly dropping support for those versions would > also open up a bunch of cleanups in the code so might be desirable for other > reasons. > Do you all have any suggestion for which approach to take? I'd be happy to do > the type hinting itself if I know the direction to take. -- This message was sent by Atlassian Jira (v8.20.10#820010)