"standard" is "whatever CPython managed to miss a segfault for today".
And PyEvalFrameEx is the stuff of nightmares that can't be really fixed because it hardcoded spaghetti that, if rewritten, could subtly break python in myriad ways that would make 2->3 migration a cakewalk.
Oh, and there's no real test suite to verify if you didn't break something subtle in implementation.
While parsing Ruby code is well known to be problematic, there is a very good reason why Ruby can have interchangeable implementation while Python pretty much can't.