Update some calls and missing functions needed in Python 3.
Review Request #9736 — Created March 4, 2018 and submitted
There's a handful of legacy calls, or legacy forms of calls, that needed
to be updated to be compatible with Python 2.x and 3.x. These have to do
with module reloading and importing and generator iteration. There's
also a missing
__hash__needed for an object in a unit test that
otherwise prevented its storage in a dictionary.
Unit tests pass on Python 2.7, 3.4, 3.5, and 3.6.