Also, it should have read
from menagerie.cat import models as cat_models
from menagerie.dog import models as dog_models
from menagerie.mouse import models as mouse_models
Because otherwise it doesn't match the code in the first example for #3, and also because if your packages are ordered that way, then why not just from menagerie.models import cat, dog, mouse
and forget about changing the local module name.