Ideas that Were Not Used

This doc is intended to track ideas that we thought were good at first but later decided against. This way we can remember why we are not doing specific things and track the the circumstances were at the time.

Modification of the Imported Module

When a module is imported Python loads the module object onto sys.modules. The object on the hub is not the module but an object filled with refs to classes functions etc. Early on we decided to make it easy to call functions inside the same module by taking the wrapped function and then overriding the function on the module object loaded into sys.modules. We ran into some issues, like the module being imported outside of pop and then getting changed by pop later on. We felt that it would be better to keep the modules clean. This allows us to have multiple hubs and is less surprising to users. The downside is that if you call a function locally in a module then it is not contracted and the hub needs to be passed in manually.