Cython 3.0 Checklist
Collecting TODOs for once we bump to cython3:

- [ ] use conditional nogil e.g. [here](https://github.com/pandas-dev/pandas/blob/master/pandas/_libs/algos.pyx#L901)
- [ ] change labels.shape[0] -> len(labels) e.g. groupbyL965
- [ ] update `searchsorted` usages to use fixed [cython](https://github.com/cython/cython/pull/3606) version
- [ ] Move Timestamp methods to _Timestamp, assuming https://github.com/cython/cython/pull/3605 is merged
- [ ] in `_libs.internals` use `from cpython.pyport cimport PY_SSIZE_T_MAX` instead of `cdef extern ...`
- [x] in `_libs.util` use `from numpy cimport PyArray_CLEARFLAGS, NPY_ARRAY_C_CONTIGUOUS, NPY_ARRAY_F_CONTIGUOUS` instead of `cdef extern ...`
- [ ] in `_libs.parsers` use `from cpython.unicode cimport PyUnicode_FromString` instead of `cdef extern ...`
- [ ]  in `tslibs.parsing` replace `PyObject_Str` with `str` (xref https://github.com/cython/cython/pull/3478)

@WillAyd am i missing anything (const object[:]?)?  If so, go ahead and edit the OP.