Advertisement
Woobinda

Перезагрузка вложеных модулей

Jul 29th, 2015
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.66 KB | None | 0 0
  1. """
  2. reload.py: транзитивная перезагрузка вложенных модулей
  3. """
  4.  
  5. import types
  6. from imp import reload
  7.  
  8. def status(module):
  9.     print('reloading '+ module.__name__)
  10.  
  11. def transitive_reload(module, visited):
  12.     if not module in visited:
  13.         status(module)
  14.         reload(module)
  15.         visited[module] = None
  16.         for attrobj in module.__dict__.values():
  17.             if type(attrobj) == types.ModuleType:
  18.                 transitive_reload(attrobj, visited)
  19.  
  20. def reload_all(*args):
  21.     visited = {}
  22.     for arg in args:
  23.         if type(arg) == types.ModuleType:
  24.             transitive_reload(arg, visited)
  25.  
  26.  
  27. if __name__ == '__main__':
  28.     import reloadall
  29.     reload_all(reloadall)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement