For old code written against Python2, plus some tiny useful functions
December 2022 - No longer points to Python2 modules.
future or six are hard to use: It is easy to google how to import an object in Python2, or Python3, but finding the full path to the same in these compatibility libraries is difficult.
All the modules and types required for compatibility are put into the mo-future top-level module so they are easy to find.
Instead of
from future.utils import textyou get the same, but without having to discover what sub-module the text is hiding:
from mo_future import textInstead of writing conditional imports like
try:
from io import StringIO
except:
from StringIO import StringIOor
if PY3:
from io import StringIO
else:
from StringIO import StringIOyou can use mo-future:
from mo_future import StringIO