Closed
Description
Regardless of whether run in py2/py3, cython supports modern type annotations. A lot of _libs could be made valid python by using these.
Upsides:
- linting!
- get experience with these, will help in deciding if we want to use them in the non-cython code-base.
- may lower barrier-to-entry for contributors not comfortable with cython
Downsides:
- If it works, don't fix it
- Until fully implemented, we'd have mix-and-match conventions
- cython's pure-python mode has more rough edges than its regular mode
- in some cases the valid-python versions get pretty verbose:
cdef inline bint is_integer_object(object obj) nogil:
cdef:
int foo
vs.
@cython.cfunc
@cython.inline
@cython.nogil
def is_integer_object(tz: object) -> bint:
foo: int
The main upside I see is the linting. My inclination is to try to implement it in a subset of files where we can get close to pure-python as a test run.
Thoughts?