Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 8th, 2012  |  syntax: None  |  size: 0.97 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Finding the local name of a module from within that module
  2. def install():
  3.     print 'Local module name is %s' % __localModuleName__
  4.        
  5. import myModule as mm
  6. mm.install()
  7.        
  8. Local module name is mm
  9.        
  10. MODULENAME = None
  11. fr = inspect.currentframe()
  12. try:
  13.     while fr and not MODULENAME:
  14.         if fr.f_globals:
  15.             for name, obj in fr.f_globals.iteritems():
  16.                 if hasattr(obj, '__file__') and inspect.ismodule(obj) and obj.__file__ == __file__:
  17.                     MODULENAME = name
  18.         fr = fr.f_back
  19. except:
  20.     pass
  21. finally:
  22.     del fr
  23.        
  24. import module
  25. othername = module
  26. del module
  27.        
  28. __import__("sys").modules["<module_name>"].run()
  29.        
  30. import some.plugin as wanna_have
  31.  
  32. wanna_have.install(globals(), "wanna_have")
  33.        
  34. print 'Local module name is %s'%[key for key in vars() if 'myModule' in str(vars()[key])][0]
  35.        
  36. import numpy as np
  37.        
  38. print 'Local module name is %s',[key for key in vars() if 'numpy' in str(vars()[key])][0]
  39.        
  40. Local module name is np