As described here, in python it is possible to replace a current module implementation using sys.modules:
import somemodule
import sys
del sys.modules['somemodule']
sys.modules['somemodule'] = __import__('somefakemodule')
But it doesn't work if import somemodule is done in the code of another imported module:

In this example:
CustomModule
import somemodule
def f():
print(somemodule.someFunction())
ClientCode
from CustomModule import f
import sys
del sys.modules['somemodule']
sys.modules['somemodule'] = __import__('somefakemodule')
f() #Will use `somemodule.someFunction`
The call to f will use somemodule.someFunction, not somefakemodule.someFunction
Is it possible to make CustomModule replace its use of somemodule for somefakemodule without changing its code? That is, from ClientCode.