Now uproot is supported on PyPy v5.9 and up because this version of PyPy has a working Numpy implementation.
The only missing piece was `sys.getsizeof`, which `MemoryCache` uses to determine when to evict old entries from the cache, but PyPy refuses to implement because it's not well defined. (It's admittedly heuristic for `MemoryCache`, but errs on the side of being conservative.) I added a work-around `sys.getsizeof` for PyPy so that `MemoryCache` behaves the same way as it does in CPython, even if the actual memory use before evicting is only approximate.