Advertisement
Guest User

Untitled

a guest
Aug 1st, 2015
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.21 KB | None | 0 0
  1. : user@debian:~/devel/dev3; cat modtree.py
  2. #!/usr/bin/python
  3. import sys
  4.  
  5. def main((_, modname,)):
  6. showed = set()
  7. for depth, name, filename in mod_tree(__import__(modname)):
  8. print ' ' * 4 * depth, name, filename if name not in showed else ''
  9. showed.add(name)
  10.  
  11. def mod_tree(mod, seen=set()):
  12. yield 0, mod.__name__, getattr(mod, '__file__', None)
  13. if mod not in seen:
  14. seen.add(mod)
  15. for item in ((depth+1, name, filename)
  16. for submod in (getattr(mod, dep) for dep in dir(mod))
  17. if type(submod) is type(mod)
  18. for depth, name, filename in mod_tree(submod, seen)):
  19. yield item
  20.  
  21. if __name__ == '__main__':
  22. main(sys.argv)
  23. : user@debian:~/devel/dev3; ./modtree.py email.parser
  24. email /usr/lib/python2.7/email/__init__.pyc
  25. email._parseaddr /usr/lib/python2.7/email/_parseaddr.pyc
  26. calendar /usr/lib/python2.7/calendar.pyc
  27. locale /usr/lib/python2.7/locale.pyc
  28. encodings /usr/lib/python2.7/encodings/__init__.pyc
  29. __builtin__ None
  30. encodings.aliases /usr/lib/python2.7/encodings/aliases.pyc
  31. codecs /usr/lib/python2.7/codecs.pyc
  32. __builtin__
  33. sys None
  34. encodings.utf_8 /usr/lib/python2.7/encodings/utf_8.pyc
  35. codecs
  36. functools /usr/lib/python2.7/functools.pyc
  37. operator None
  38. re /usr/lib/python2.7/re.pyc
  39. copy_reg /usr/lib/python2.7/copy_reg.pyc
  40. sre_compile /usr/lib/python2.7/sre_compile.pyc
  41. _sre None
  42. sre_parse /usr/lib/python2.7/sre_parse.pyc
  43. sys
  44. sys
  45. sre_parse
  46. sys
  47. sys
  48. datetime /usr/lib/python2.7/lib-dynload/datetime.so
  49. sys
  50. time None
  51. email.base64mime /usr/lib/python2.7/email/base64mime.pyc
  52. email.charset /usr/lib/python2.7/email/charset.pyc
  53. codecs
  54. email
  55. email.errors /usr/lib/python2.7/email/errors.pyc
  56. email
  57. email.encoders /usr/lib/python2.7/email/encoders.pyc
  58. base64 /usr/lib/python2.7/base64.pyc
  59. binascii None
  60. re
  61. struct /usr/lib/python2.7/struct.pyc
  62. email.errors
  63. email.feedparser /usr/lib/python2.7/email/feedparser.pyc
  64. email.errors
  65. email.message /usr/lib/python2.7/email/message.pyc
  66. binascii
  67. email
  68. email.errors
  69. re
  70. email.utils /usr/lib/python2.7/email/utils.pyc
  71. base64
  72. os /usr/lib/python2.7/os.pyc
  73. UserDict /usr/lib/python2.7/UserDict.pyc
  74. _abcoll /usr/lib/python2.7/_abcoll.pyc
  75. sys
  76. copy_reg
  77. errno None
  78. posixpath /usr/lib/python2.7/posixpath.pyc
  79. genericpath /usr/lib/python2.7/genericpath.pyc
  80. os
  81. stat /usr/lib/python2.7/stat.pyc
  82. os
  83. stat
  84. sys
  85. warnings /usr/lib/python2.7/warnings.pyc
  86. linecache /usr/lib/python2.7/linecache.pyc
  87. os
  88. sys
  89. sys
  90. types /usr/lib/python2.7/types.pyc
  91. sys
  92. random /usr/lib/python2.7/random.pyc
  93. hashlib /usr/lib/python2.7/hashlib.pyc
  94. _hashlib /usr/lib/python2.7/lib-dynload/_hashlib.so
  95. _random None
  96. re
  97. socket /usr/lib/python2.7/socket.pyc
  98. _socket None
  99. _ssl /usr/lib/python2.7/lib-dynload/_ssl.so
  100. errno
  101. os
  102. sys
  103. warnings
  104. time
  105. urllib /usr/lib/python2.7/urllib.pyc
  106. base64
  107. os
  108. socket
  109. ssl /usr/lib/python2.7/ssl.pyc
  110. _ssl
  111. base64
  112. errno
  113. textwrap /usr/lib/python2.7/textwrap.pyc
  114. re
  115. string /usr/lib/python2.7/string.pyc
  116. re
  117. string
  118. sys
  119. time
  120. warnings
  121. uu /usr/lib/python2.7/uu.pyc
  122. binascii
  123. os
  124. sys
  125. warnings
  126. re
  127. email.iterators /usr/lib/python2.7/email/iterators.pyc
  128. sys
  129. email.message
  130. email.mime /usr/lib/python2.7/email/mime/__init__.pyc
  131. email.parser /usr/lib/python2.7/email/parser.pyc
  132. warnings
  133. email.quoprimime /usr/lib/python2.7/email/quoprimime.pyc
  134. re
  135. sys
  136. email.utils
  137. : user@debian:~/devel/dev3;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement