If
the pattern is really going to be the hasattr check you posted
earlier, can we just do it for people and save them writing
code that won't work on different OSs?
No. That's what got us into this mess in the first place.
3.5.0 and 3.5.1 *already* changed to the new behavior, and it
resulted in the situation where CPython blocked forever at startup
in these certain edge cases. os.urandom() has been around for more
than a decade, we can't unilaterally change its semantics now.
os.urandom() in 3.5 has to go back to how it behaved on Linux in
3.4. And if I were release manager for 3.6, I'd say "it has to stay
that way in 3.6 too".
However, Guido's already said "don't add os.getrandom() in 3.5", so
the debate is somewhat irrelevant.