bee_python 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. data/{build/README → README} +1 -1
  2. data/egg/egg/build.yml +11 -49
  3. data/egg/egg.yml +19 -27
  4. data/egg/http/build.erb +32 -36
  5. data/egg/http/libhttp.py +102 -0
  6. data/egg/http/pylint.cfg +236 -0
  7. data/egg/http/server.py +7 -0
  8. data/egg/http/test.erb +32 -0
  9. data/egg/http.yml +33 -29
  10. data/egg/mysql/mysql.py +8 -9
  11. data/egg/project/build.erb +21 -53
  12. data/egg/project/pylint.cfg +236 -0
  13. data/egg/project/test.py +2 -2
  14. data/egg/project.yml +23 -31
  15. data/egg/script/build.erb +18 -23
  16. data/egg/script/pylint.cfg +236 -0
  17. data/egg/script.yml +22 -18
  18. data/egg/source/source.py +6 -6
  19. data/egg/test/test.py +1 -1
  20. data/lib/bee_task_python.rb +3 -34
  21. data/python.yml +123 -0
  22. metadata +61 -503
  23. data/test/build.yml +0 -16
  24. data/test/tc_bee_task_python.rb +0 -27
  25. data/test/test_build.rb +0 -26
  26. data/test/test_build_listener.rb +0 -110
  27. data/test/ts_bee_python.rb +0 -26
  28. data/tools/common/__init__.py +0 -5
  29. data/tools/common/common/__init__.py +0 -140
  30. data/tools/common/common/__pkginfo__.py +0 -43
  31. data/tools/common/common/adbh.py +0 -35
  32. data/tools/common/common/cache.py +0 -114
  33. data/tools/common/common/changelog.py +0 -234
  34. data/tools/common/common/clcommands.py +0 -181
  35. data/tools/common/common/cli.py +0 -212
  36. data/tools/common/common/compat.py +0 -328
  37. data/tools/common/common/configuration.py +0 -1087
  38. data/tools/common/common/contexts.py +0 -58
  39. data/tools/common/common/corbautils.py +0 -117
  40. data/tools/common/common/daemon.py +0 -171
  41. data/tools/common/common/date.py +0 -279
  42. data/tools/common/common/db.py +0 -49
  43. data/tools/common/common/dbf.py +0 -229
  44. data/tools/common/common/debugger.py +0 -208
  45. data/tools/common/common/decorators.py +0 -190
  46. data/tools/common/common/deprecation.py +0 -118
  47. data/tools/common/common/fileutils.py +0 -409
  48. data/tools/common/common/graph.py +0 -259
  49. data/tools/common/common/html.py +0 -142
  50. data/tools/common/common/interface.py +0 -76
  51. data/tools/common/common/logging_ext.py +0 -166
  52. data/tools/common/common/modutils.py +0 -670
  53. data/tools/common/common/optik_ext.py +0 -383
  54. data/tools/common/common/optparser.py +0 -92
  55. data/tools/common/common/pdf_ext.py +0 -111
  56. data/tools/common/common/proc.py +0 -276
  57. data/tools/common/common/pyro_ext.py +0 -146
  58. data/tools/common/common/pytest.py +0 -754
  59. data/tools/common/common/shellutils.py +0 -383
  60. data/tools/common/common/sphinx_ext.py +0 -87
  61. data/tools/common/common/sphinxutils.py +0 -122
  62. data/tools/common/common/sqlgen.py +0 -31
  63. data/tools/common/common/table.py +0 -930
  64. data/tools/common/common/tasksqueue.py +0 -97
  65. data/tools/common/common/test/__init__.py +0 -1
  66. data/tools/common/common/test/data/ChangeLog +0 -184
  67. data/tools/common/common/test/data/MyPyPa-0.1.0-py2.5.egg +0 -0
  68. data/tools/common/common/test/data/__init__.py +0 -1
  69. data/tools/common/common/test/data/content_differ_dir/NOTHING +0 -0
  70. data/tools/common/common/test/data/content_differ_dir/README +0 -1
  71. data/tools/common/common/test/data/content_differ_dir/subdir/coin +0 -1
  72. data/tools/common/common/test/data/content_differ_dir/subdir/toto.txt +0 -53
  73. data/tools/common/common/test/data/file_differ_dir/NOTHING +0 -0
  74. data/tools/common/common/test/data/file_differ_dir/README +0 -1
  75. data/tools/common/common/test/data/file_differ_dir/subdir/toto.txt +0 -53
  76. data/tools/common/common/test/data/file_differ_dir/subdirtwo/Hello +0 -0
  77. data/tools/common/common/test/data/find_test/__init__.py +0 -0
  78. data/tools/common/common/test/data/find_test/foo.txt +0 -0
  79. data/tools/common/common/test/data/find_test/module.py +0 -0
  80. data/tools/common/common/test/data/find_test/module2.py +0 -0
  81. data/tools/common/common/test/data/find_test/newlines.txt +0 -0
  82. data/tools/common/common/test/data/find_test/noendingnewline.py +0 -0
  83. data/tools/common/common/test/data/find_test/nonregr.py +0 -0
  84. data/tools/common/common/test/data/find_test/normal_file.txt +0 -0
  85. data/tools/common/common/test/data/find_test/spam.txt +0 -0
  86. data/tools/common/common/test/data/find_test/sub/doc.txt +0 -0
  87. data/tools/common/common/test/data/find_test/sub/momo.py +0 -0
  88. data/tools/common/common/test/data/find_test/test.ini +0 -0
  89. data/tools/common/common/test/data/find_test/test1.msg +0 -0
  90. data/tools/common/common/test/data/find_test/test2.msg +0 -0
  91. data/tools/common/common/test/data/find_test/write_protected_file.txt +0 -0
  92. data/tools/common/common/test/data/foo.txt +0 -9
  93. data/tools/common/common/test/data/module.py +0 -88
  94. data/tools/common/common/test/data/module2.py +0 -77
  95. data/tools/common/common/test/data/newlines.txt +0 -3
  96. data/tools/common/common/test/data/noendingnewline.py +0 -36
  97. data/tools/common/common/test/data/nonregr.py +0 -14
  98. data/tools/common/common/test/data/normal_file.txt +0 -0
  99. data/tools/common/common/test/data/reference_dir/NOTHING +0 -0
  100. data/tools/common/common/test/data/reference_dir/README +0 -1
  101. data/tools/common/common/test/data/reference_dir/subdir/coin +0 -1
  102. data/tools/common/common/test/data/reference_dir/subdir/toto.txt +0 -53
  103. data/tools/common/common/test/data/same_dir/NOTHING +0 -0
  104. data/tools/common/common/test/data/same_dir/README +0 -1
  105. data/tools/common/common/test/data/same_dir/subdir/coin +0 -1
  106. data/tools/common/common/test/data/same_dir/subdir/toto.txt +0 -53
  107. data/tools/common/common/test/data/spam.txt +0 -9
  108. data/tools/common/common/test/data/sub/doc.txt +0 -1
  109. data/tools/common/common/test/data/sub/momo.py +0 -1
  110. data/tools/common/common/test/data/subdir_differ_dir/NOTHING +0 -0
  111. data/tools/common/common/test/data/subdir_differ_dir/README +0 -1
  112. data/tools/common/common/test/data/subdir_differ_dir/subdir/coin +0 -1
  113. data/tools/common/common/test/data/subdir_differ_dir/subdir/toto.txt +0 -53
  114. data/tools/common/common/test/data/test.ini +0 -20
  115. data/tools/common/common/test/data/test1.msg +0 -30
  116. data/tools/common/common/test/data/test2.msg +0 -42
  117. data/tools/common/common/test/data/write_protected_file.txt +0 -0
  118. data/tools/common/common/test/foomod.py +0 -17
  119. data/tools/common/common/test/unittest_cache.py +0 -129
  120. data/tools/common/common/test/unittest_changelog.py +0 -37
  121. data/tools/common/common/test/unittest_compat.py +0 -239
  122. data/tools/common/common/test/unittest_configuration.py +0 -348
  123. data/tools/common/common/test/unittest_date.py +0 -154
  124. data/tools/common/common/test/unittest_decorators.py +0 -62
  125. data/tools/common/common/test/unittest_deprecation.py +0 -76
  126. data/tools/common/common/test/unittest_fileutils.py +0 -133
  127. data/tools/common/common/test/unittest_graph.py +0 -50
  128. data/tools/common/common/test/unittest_html.py +0 -76
  129. data/tools/common/common/test/unittest_interface.py +0 -87
  130. data/tools/common/common/test/unittest_modutils.py +0 -244
  131. data/tools/common/common/test/unittest_pytest.py +0 -50
  132. data/tools/common/common/test/unittest_shellutils.py +0 -248
  133. data/tools/common/common/test/unittest_table.py +0 -448
  134. data/tools/common/common/test/unittest_taskqueue.py +0 -71
  135. data/tools/common/common/test/unittest_testlib.py +0 -956
  136. data/tools/common/common/test/unittest_textutils.py +0 -247
  137. data/tools/common/common/test/unittest_tree.py +0 -248
  138. data/tools/common/common/test/unittest_umessage.py +0 -55
  139. data/tools/common/common/test/unittest_ureports_html.py +0 -64
  140. data/tools/common/common/test/unittest_ureports_text.py +0 -105
  141. data/tools/common/common/test/unittest_xmlutils.py +0 -75
  142. data/tools/common/common/test/utils.py +0 -87
  143. data/tools/common/common/testlib.py +0 -1927
  144. data/tools/common/common/textutils.py +0 -476
  145. data/tools/common/common/tree.py +0 -372
  146. data/tools/common/common/umessage.py +0 -161
  147. data/tools/common/common/ureports/__init__.py +0 -174
  148. data/tools/common/common/ureports/docbook_writer.py +0 -139
  149. data/tools/common/common/ureports/html_writer.py +0 -131
  150. data/tools/common/common/ureports/nodes.py +0 -201
  151. data/tools/common/common/ureports/text_writer.py +0 -140
  152. data/tools/common/common/vcgutils.py +0 -216
  153. data/tools/common/common/visitor.py +0 -107
  154. data/tools/common/common/xmlrpcutils.py +0 -136
  155. data/tools/common/common/xmlutils.py +0 -61
  156. data/tools/coverage/coverage.py +0 -602
  157. data/tools/epydoc/__init__.py +0 -227
  158. data/tools/epydoc/__init__.pyc +0 -0
  159. data/tools/epydoc/apidoc.py +0 -2203
  160. data/tools/epydoc/apidoc.pyc +0 -0
  161. data/tools/epydoc/checker.py +0 -349
  162. data/tools/epydoc/checker.pyc +0 -0
  163. data/tools/epydoc/cli.py +0 -1470
  164. data/tools/epydoc/cli.pyc +0 -0
  165. data/tools/epydoc/compat.py +0 -250
  166. data/tools/epydoc/compat.pyc +0 -0
  167. data/tools/epydoc/docbuilder.py +0 -1358
  168. data/tools/epydoc/docbuilder.pyc +0 -0
  169. data/tools/epydoc/docintrospecter.py +0 -1056
  170. data/tools/epydoc/docintrospecter.pyc +0 -0
  171. data/tools/epydoc/docparser.py +0 -2113
  172. data/tools/epydoc/docparser.pyc +0 -0
  173. data/tools/epydoc/docstringparser.py +0 -1111
  174. data/tools/epydoc/docstringparser.pyc +0 -0
  175. data/tools/epydoc/docwriter/__init__.py +0 -12
  176. data/tools/epydoc/docwriter/__init__.pyc +0 -0
  177. data/tools/epydoc/docwriter/dotgraph.py +0 -1351
  178. data/tools/epydoc/docwriter/dotgraph.pyc +0 -0
  179. data/tools/epydoc/docwriter/html.py +0 -3491
  180. data/tools/epydoc/docwriter/html.pyc +0 -0
  181. data/tools/epydoc/docwriter/html_colorize.py +0 -909
  182. data/tools/epydoc/docwriter/html_colorize.pyc +0 -0
  183. data/tools/epydoc/docwriter/html_css.py +0 -550
  184. data/tools/epydoc/docwriter/html_css.pyc +0 -0
  185. data/tools/epydoc/docwriter/html_help.py +0 -190
  186. data/tools/epydoc/docwriter/html_help.pyc +0 -0
  187. data/tools/epydoc/docwriter/latex.py +0 -1187
  188. data/tools/epydoc/docwriter/latex.pyc +0 -0
  189. data/tools/epydoc/docwriter/plaintext.py +0 -276
  190. data/tools/epydoc/docwriter/plaintext.pyc +0 -0
  191. data/tools/epydoc/docwriter/xlink.py +0 -505
  192. data/tools/epydoc/docwriter/xlink.pyc +0 -0
  193. data/tools/epydoc/gui.py +0 -1148
  194. data/tools/epydoc/gui.pyc +0 -0
  195. data/tools/epydoc/log.py +0 -204
  196. data/tools/epydoc/log.pyc +0 -0
  197. data/tools/epydoc/markup/__init__.py +0 -623
  198. data/tools/epydoc/markup/__init__.pyc +0 -0
  199. data/tools/epydoc/markup/doctest.py +0 -311
  200. data/tools/epydoc/markup/doctest.pyc +0 -0
  201. data/tools/epydoc/markup/epytext.py +0 -2116
  202. data/tools/epydoc/markup/epytext.pyc +0 -0
  203. data/tools/epydoc/markup/javadoc.py +0 -250
  204. data/tools/epydoc/markup/javadoc.pyc +0 -0
  205. data/tools/epydoc/markup/plaintext.py +0 -78
  206. data/tools/epydoc/markup/plaintext.pyc +0 -0
  207. data/tools/epydoc/markup/pyval_repr.py +0 -532
  208. data/tools/epydoc/markup/pyval_repr.pyc +0 -0
  209. data/tools/epydoc/markup/restructuredtext.py +0 -906
  210. data/tools/epydoc/markup/restructuredtext.pyc +0 -0
  211. data/tools/epydoc/test/__init__.py +0 -97
  212. data/tools/epydoc/test/__init__.pyc +0 -0
  213. data/tools/epydoc/test/util.py +0 -226
  214. data/tools/epydoc/test/util.pyc +0 -0
  215. data/tools/epydoc/util.py +0 -289
  216. data/tools/epydoc/util.pyc +0 -0
  217. data/tools/logilab/logilab/__init__.py +0 -5
  218. data/tools/logilab/logilab/astng/__init__.py +0 -82
  219. data/tools/logilab/logilab/astng/__pkginfo__.py +0 -76
  220. data/tools/logilab/logilab/astng/_exceptions.py +0 -64
  221. data/tools/logilab/logilab/astng/_nodes_ast.py +0 -667
  222. data/tools/logilab/logilab/astng/_nodes_compiler.py +0 -758
  223. data/tools/logilab/logilab/astng/bases.py +0 -608
  224. data/tools/logilab/logilab/astng/builder.py +0 -239
  225. data/tools/logilab/logilab/astng/inference.py +0 -426
  226. data/tools/logilab/logilab/astng/inspector.py +0 -289
  227. data/tools/logilab/logilab/astng/manager.py +0 -421
  228. data/tools/logilab/logilab/astng/mixins.py +0 -165
  229. data/tools/logilab/logilab/astng/node_classes.py +0 -848
  230. data/tools/logilab/logilab/astng/nodes.py +0 -85
  231. data/tools/logilab/logilab/astng/nodes_as_string.py +0 -389
  232. data/tools/logilab/logilab/astng/patchcomptransformer.py +0 -159
  233. data/tools/logilab/logilab/astng/protocols.py +0 -333
  234. data/tools/logilab/logilab/astng/raw_building.py +0 -212
  235. data/tools/logilab/logilab/astng/rebuilder.py +0 -307
  236. data/tools/logilab/logilab/astng/scoped_nodes.py +0 -951
  237. data/tools/logilab/logilab/astng/test/__init__.py +0 -19
  238. data/tools/logilab/logilab/astng/test/data/MyPyPa-0.1.0-py2.5.egg +0 -0
  239. data/tools/logilab/logilab/astng/test/data/MyPyPa-0.1.0-py2.5.zip +0 -0
  240. data/tools/logilab/logilab/astng/test/data/SSL1/Connection1.py +0 -33
  241. data/tools/logilab/logilab/astng/test/data/SSL1/__init__.py +0 -20
  242. data/tools/logilab/logilab/astng/test/data/__init__.py +0 -20
  243. data/tools/logilab/logilab/astng/test/data/all.py +0 -29
  244. data/tools/logilab/logilab/astng/test/data/appl/__init__.py +0 -23
  245. data/tools/logilab/logilab/astng/test/data/appl/myConnection.py +0 -30
  246. data/tools/logilab/logilab/astng/test/data/format.py +0 -34
  247. data/tools/logilab/logilab/astng/test/data/module.py +0 -90
  248. data/tools/logilab/logilab/astng/test/data/module2.py +0 -112
  249. data/tools/logilab/logilab/astng/test/data/noendingnewline.py +0 -57
  250. data/tools/logilab/logilab/astng/test/data/nonregr.py +0 -76
  251. data/tools/logilab/logilab/astng/test/data/notall.py +0 -28
  252. data/tools/logilab/logilab/astng/test/data2/__init__.py +0 -20
  253. data/tools/logilab/logilab/astng/test/data2/clientmodule_test.py +0 -51
  254. data/tools/logilab/logilab/astng/test/data2/suppliermodule_test.py +0 -32
  255. data/tools/logilab/logilab/astng/test/regrtest.py +0 -135
  256. data/tools/logilab/logilab/astng/test/regrtest_data/absimport.py +0 -22
  257. data/tools/logilab/logilab/astng/test/regrtest_data/descriptor_crash.py +0 -31
  258. data/tools/logilab/logilab/astng/test/regrtest_data/import_package_subpackage_module.py +0 -68
  259. data/tools/logilab/logilab/astng/test/regrtest_data/package/__init__.py +0 -24
  260. data/tools/logilab/logilab/astng/test/regrtest_data/package/subpackage/__init__.py +0 -20
  261. data/tools/logilab/logilab/astng/test/regrtest_data/package/subpackage/module.py +0 -20
  262. data/tools/logilab/logilab/astng/test/unittest_builder.py +0 -684
  263. data/tools/logilab/logilab/astng/test/unittest_inference.py +0 -1112
  264. data/tools/logilab/logilab/astng/test/unittest_inspector.py +0 -105
  265. data/tools/logilab/logilab/astng/test/unittest_lookup.py +0 -302
  266. data/tools/logilab/logilab/astng/test/unittest_manager.py +0 -98
  267. data/tools/logilab/logilab/astng/test/unittest_nodes.py +0 -302
  268. data/tools/logilab/logilab/astng/test/unittest_scoped_nodes.py +0 -501
  269. data/tools/logilab/logilab/astng/test/unittest_utils.py +0 -104
  270. data/tools/logilab/logilab/astng/utils.py +0 -342
  271. data/tools/logilab/logilab/common/__init__.py +0 -140
  272. data/tools/logilab/logilab/common/__pkginfo__.py +0 -43
  273. data/tools/logilab/logilab/common/adbh.py +0 -35
  274. data/tools/logilab/logilab/common/cache.py +0 -114
  275. data/tools/logilab/logilab/common/changelog.py +0 -234
  276. data/tools/logilab/logilab/common/clcommands.py +0 -181
  277. data/tools/logilab/logilab/common/cli.py +0 -212
  278. data/tools/logilab/logilab/common/compat.py +0 -328
  279. data/tools/logilab/logilab/common/configuration.py +0 -1087
  280. data/tools/logilab/logilab/common/contexts.py +0 -58
  281. data/tools/logilab/logilab/common/corbautils.py +0 -117
  282. data/tools/logilab/logilab/common/daemon.py +0 -171
  283. data/tools/logilab/logilab/common/date.py +0 -279
  284. data/tools/logilab/logilab/common/db.py +0 -49
  285. data/tools/logilab/logilab/common/dbf.py +0 -229
  286. data/tools/logilab/logilab/common/debugger.py +0 -208
  287. data/tools/logilab/logilab/common/decorators.py +0 -190
  288. data/tools/logilab/logilab/common/deprecation.py +0 -118
  289. data/tools/logilab/logilab/common/fileutils.py +0 -409
  290. data/tools/logilab/logilab/common/graph.py +0 -259
  291. data/tools/logilab/logilab/common/html.py +0 -142
  292. data/tools/logilab/logilab/common/interface.py +0 -76
  293. data/tools/logilab/logilab/common/logging_ext.py +0 -166
  294. data/tools/logilab/logilab/common/modutils.py +0 -670
  295. data/tools/logilab/logilab/common/optik_ext.py +0 -383
  296. data/tools/logilab/logilab/common/optparser.py +0 -92
  297. data/tools/logilab/logilab/common/pdf_ext.py +0 -111
  298. data/tools/logilab/logilab/common/proc.py +0 -276
  299. data/tools/logilab/logilab/common/pyro_ext.py +0 -146
  300. data/tools/logilab/logilab/common/pytest.py +0 -754
  301. data/tools/logilab/logilab/common/shellutils.py +0 -383
  302. data/tools/logilab/logilab/common/sphinx_ext.py +0 -87
  303. data/tools/logilab/logilab/common/sphinxutils.py +0 -122
  304. data/tools/logilab/logilab/common/sqlgen.py +0 -31
  305. data/tools/logilab/logilab/common/table.py +0 -930
  306. data/tools/logilab/logilab/common/tasksqueue.py +0 -97
  307. data/tools/logilab/logilab/common/test/__init__.py +0 -1
  308. data/tools/logilab/logilab/common/test/data/ChangeLog +0 -184
  309. data/tools/logilab/logilab/common/test/data/MyPyPa-0.1.0-py2.5.egg +0 -0
  310. data/tools/logilab/logilab/common/test/data/__init__.py +0 -1
  311. data/tools/logilab/logilab/common/test/data/content_differ_dir/NOTHING +0 -0
  312. data/tools/logilab/logilab/common/test/data/content_differ_dir/README +0 -1
  313. data/tools/logilab/logilab/common/test/data/content_differ_dir/subdir/coin +0 -1
  314. data/tools/logilab/logilab/common/test/data/content_differ_dir/subdir/toto.txt +0 -53
  315. data/tools/logilab/logilab/common/test/data/file_differ_dir/NOTHING +0 -0
  316. data/tools/logilab/logilab/common/test/data/file_differ_dir/README +0 -1
  317. data/tools/logilab/logilab/common/test/data/file_differ_dir/subdir/toto.txt +0 -53
  318. data/tools/logilab/logilab/common/test/data/file_differ_dir/subdirtwo/Hello +0 -0
  319. data/tools/logilab/logilab/common/test/data/find_test/__init__.py +0 -0
  320. data/tools/logilab/logilab/common/test/data/find_test/foo.txt +0 -0
  321. data/tools/logilab/logilab/common/test/data/find_test/module.py +0 -0
  322. data/tools/logilab/logilab/common/test/data/find_test/module2.py +0 -0
  323. data/tools/logilab/logilab/common/test/data/find_test/newlines.txt +0 -0
  324. data/tools/logilab/logilab/common/test/data/find_test/noendingnewline.py +0 -0
  325. data/tools/logilab/logilab/common/test/data/find_test/nonregr.py +0 -0
  326. data/tools/logilab/logilab/common/test/data/find_test/normal_file.txt +0 -0
  327. data/tools/logilab/logilab/common/test/data/find_test/spam.txt +0 -0
  328. data/tools/logilab/logilab/common/test/data/find_test/sub/doc.txt +0 -0
  329. data/tools/logilab/logilab/common/test/data/find_test/sub/momo.py +0 -0
  330. data/tools/logilab/logilab/common/test/data/find_test/test.ini +0 -0
  331. data/tools/logilab/logilab/common/test/data/find_test/test1.msg +0 -0
  332. data/tools/logilab/logilab/common/test/data/find_test/test2.msg +0 -0
  333. data/tools/logilab/logilab/common/test/data/find_test/write_protected_file.txt +0 -0
  334. data/tools/logilab/logilab/common/test/data/foo.txt +0 -9
  335. data/tools/logilab/logilab/common/test/data/module.py +0 -88
  336. data/tools/logilab/logilab/common/test/data/module2.py +0 -77
  337. data/tools/logilab/logilab/common/test/data/newlines.txt +0 -3
  338. data/tools/logilab/logilab/common/test/data/noendingnewline.py +0 -36
  339. data/tools/logilab/logilab/common/test/data/nonregr.py +0 -14
  340. data/tools/logilab/logilab/common/test/data/normal_file.txt +0 -0
  341. data/tools/logilab/logilab/common/test/data/reference_dir/NOTHING +0 -0
  342. data/tools/logilab/logilab/common/test/data/reference_dir/README +0 -1
  343. data/tools/logilab/logilab/common/test/data/reference_dir/subdir/coin +0 -1
  344. data/tools/logilab/logilab/common/test/data/reference_dir/subdir/toto.txt +0 -53
  345. data/tools/logilab/logilab/common/test/data/same_dir/NOTHING +0 -0
  346. data/tools/logilab/logilab/common/test/data/same_dir/README +0 -1
  347. data/tools/logilab/logilab/common/test/data/same_dir/subdir/coin +0 -1
  348. data/tools/logilab/logilab/common/test/data/same_dir/subdir/toto.txt +0 -53
  349. data/tools/logilab/logilab/common/test/data/spam.txt +0 -9
  350. data/tools/logilab/logilab/common/test/data/sub/doc.txt +0 -1
  351. data/tools/logilab/logilab/common/test/data/sub/momo.py +0 -1
  352. data/tools/logilab/logilab/common/test/data/subdir_differ_dir/NOTHING +0 -0
  353. data/tools/logilab/logilab/common/test/data/subdir_differ_dir/README +0 -1
  354. data/tools/logilab/logilab/common/test/data/subdir_differ_dir/subdir/coin +0 -1
  355. data/tools/logilab/logilab/common/test/data/subdir_differ_dir/subdir/toto.txt +0 -53
  356. data/tools/logilab/logilab/common/test/data/test.ini +0 -20
  357. data/tools/logilab/logilab/common/test/data/test1.msg +0 -30
  358. data/tools/logilab/logilab/common/test/data/test2.msg +0 -42
  359. data/tools/logilab/logilab/common/test/data/write_protected_file.txt +0 -0
  360. data/tools/logilab/logilab/common/test/foomod.py +0 -17
  361. data/tools/logilab/logilab/common/test/unittest_cache.py +0 -129
  362. data/tools/logilab/logilab/common/test/unittest_changelog.py +0 -37
  363. data/tools/logilab/logilab/common/test/unittest_compat.py +0 -239
  364. data/tools/logilab/logilab/common/test/unittest_configuration.py +0 -348
  365. data/tools/logilab/logilab/common/test/unittest_date.py +0 -154
  366. data/tools/logilab/logilab/common/test/unittest_decorators.py +0 -62
  367. data/tools/logilab/logilab/common/test/unittest_deprecation.py +0 -76
  368. data/tools/logilab/logilab/common/test/unittest_fileutils.py +0 -133
  369. data/tools/logilab/logilab/common/test/unittest_graph.py +0 -50
  370. data/tools/logilab/logilab/common/test/unittest_html.py +0 -76
  371. data/tools/logilab/logilab/common/test/unittest_interface.py +0 -87
  372. data/tools/logilab/logilab/common/test/unittest_modutils.py +0 -244
  373. data/tools/logilab/logilab/common/test/unittest_pytest.py +0 -50
  374. data/tools/logilab/logilab/common/test/unittest_shellutils.py +0 -248
  375. data/tools/logilab/logilab/common/test/unittest_table.py +0 -448
  376. data/tools/logilab/logilab/common/test/unittest_taskqueue.py +0 -71
  377. data/tools/logilab/logilab/common/test/unittest_testlib.py +0 -956
  378. data/tools/logilab/logilab/common/test/unittest_textutils.py +0 -247
  379. data/tools/logilab/logilab/common/test/unittest_tree.py +0 -248
  380. data/tools/logilab/logilab/common/test/unittest_umessage.py +0 -55
  381. data/tools/logilab/logilab/common/test/unittest_ureports_html.py +0 -64
  382. data/tools/logilab/logilab/common/test/unittest_ureports_text.py +0 -105
  383. data/tools/logilab/logilab/common/test/unittest_xmlutils.py +0 -75
  384. data/tools/logilab/logilab/common/test/utils.py +0 -87
  385. data/tools/logilab/logilab/common/testlib.py +0 -1927
  386. data/tools/logilab/logilab/common/textutils.py +0 -476
  387. data/tools/logilab/logilab/common/tree.py +0 -372
  388. data/tools/logilab/logilab/common/umessage.py +0 -161
  389. data/tools/logilab/logilab/common/ureports/__init__.py +0 -174
  390. data/tools/logilab/logilab/common/ureports/docbook_writer.py +0 -139
  391. data/tools/logilab/logilab/common/ureports/html_writer.py +0 -131
  392. data/tools/logilab/logilab/common/ureports/nodes.py +0 -201
  393. data/tools/logilab/logilab/common/ureports/text_writer.py +0 -140
  394. data/tools/logilab/logilab/common/vcgutils.py +0 -216
  395. data/tools/logilab/logilab/common/visitor.py +0 -107
  396. data/tools/logilab/logilab/common/xmlrpcutils.py +0 -136
  397. data/tools/logilab/logilab/common/xmlutils.py +0 -61
  398. data/tools/pychecker/COPYRIGHT +0 -31
  399. data/tools/pychecker/ChangeLog +0 -349
  400. data/tools/pychecker/CodeChecks.py +0 -1969
  401. data/tools/pychecker/CodeChecks.pyc +0 -0
  402. data/tools/pychecker/CodeChecks.pyo +0 -0
  403. data/tools/pychecker/Config.py +0 -475
  404. data/tools/pychecker/Config.pyc +0 -0
  405. data/tools/pychecker/Config.pyo +0 -0
  406. data/tools/pychecker/KNOWN_BUGS +0 -100
  407. data/tools/pychecker/MAINTAINERS +0 -81
  408. data/tools/pychecker/NEWS +0 -406
  409. data/tools/pychecker/OP.py +0 -131
  410. data/tools/pychecker/OP.pyc +0 -0
  411. data/tools/pychecker/OP.pyo +0 -0
  412. data/tools/pychecker/OptionTypes.py +0 -117
  413. data/tools/pychecker/OptionTypes.pyc +0 -0
  414. data/tools/pychecker/OptionTypes.pyo +0 -0
  415. data/tools/pychecker/README +0 -152
  416. data/tools/pychecker/Stack.py +0 -115
  417. data/tools/pychecker/Stack.pyc +0 -0
  418. data/tools/pychecker/Stack.pyo +0 -0
  419. data/tools/pychecker/TODO +0 -101
  420. data/tools/pychecker/VERSION +0 -1
  421. data/tools/pychecker/Warning.py +0 -50
  422. data/tools/pychecker/Warning.pyc +0 -0
  423. data/tools/pychecker/Warning.pyo +0 -0
  424. data/tools/pychecker/__init__.py +0 -17
  425. data/tools/pychecker/__init__.pyc +0 -0
  426. data/tools/pychecker/__init__.pyo +0 -0
  427. data/tools/pychecker/checker.py +0 -961
  428. data/tools/pychecker/checker.pyc +0 -0
  429. data/tools/pychecker/checker.pyo +0 -0
  430. data/tools/pychecker/function.py +0 -159
  431. data/tools/pychecker/function.pyc +0 -0
  432. data/tools/pychecker/function.pyo +0 -0
  433. data/tools/pychecker/msgs.py +0 -175
  434. data/tools/pychecker/msgs.pyc +0 -0
  435. data/tools/pychecker/msgs.pyo +0 -0
  436. data/tools/pychecker/options.py +0 -275
  437. data/tools/pychecker/options.pyc +0 -0
  438. data/tools/pychecker/options.pyo +0 -0
  439. data/tools/pychecker/pcmodules.py +0 -19
  440. data/tools/pychecker/pcmodules.pyc +0 -0
  441. data/tools/pychecker/pcmodules.pyo +0 -0
  442. data/tools/pychecker/printer.py +0 -47
  443. data/tools/pychecker/printer.pyc +0 -0
  444. data/tools/pychecker/printer.pyo +0 -0
  445. data/tools/pychecker/python.py +0 -427
  446. data/tools/pychecker/python.pyc +0 -0
  447. data/tools/pychecker/python.pyo +0 -0
  448. data/tools/pychecker/utils.py +0 -102
  449. data/tools/pychecker/utils.pyc +0 -0
  450. data/tools/pychecker/utils.pyo +0 -0
  451. data/tools/pychecker/warn.py +0 -778
  452. data/tools/pychecker/warn.pyc +0 -0
  453. data/tools/pychecker/warn.pyo +0 -0
  454. data/tools/pylint2/pylint/__init__.py +0 -16
  455. data/tools/pylint2/pylint/__pkginfo__.py +0 -67
  456. data/tools/pylint2/pylint/checkers/__init__.py +0 -155
  457. data/tools/pylint2/pylint/checkers/base.py +0 -749
  458. data/tools/pylint2/pylint/checkers/classes.py +0 -527
  459. data/tools/pylint2/pylint/checkers/design_analysis.py +0 -344
  460. data/tools/pylint2/pylint/checkers/exceptions.py +0 -183
  461. data/tools/pylint2/pylint/checkers/format.py +0 -367
  462. data/tools/pylint2/pylint/checkers/imports.py +0 -379
  463. data/tools/pylint2/pylint/checkers/logging.py +0 -98
  464. data/tools/pylint2/pylint/checkers/misc.py +0 -128
  465. data/tools/pylint2/pylint/checkers/newstyle.py +0 -107
  466. data/tools/pylint2/pylint/checkers/raw_metrics.py +0 -125
  467. data/tools/pylint2/pylint/checkers/similar.py +0 -333
  468. data/tools/pylint2/pylint/checkers/string_format.py +0 -239
  469. data/tools/pylint2/pylint/checkers/typecheck.py +0 -364
  470. data/tools/pylint2/pylint/checkers/utils.py +0 -208
  471. data/tools/pylint2/pylint/checkers/variables.py +0 -498
  472. data/tools/pylint2/pylint/config.py +0 -149
  473. data/tools/pylint2/pylint/epylint.py +0 -149
  474. data/tools/pylint2/pylint/gui.py +0 -433
  475. data/tools/pylint2/pylint/interfaces.py +0 -98
  476. data/tools/pylint2/pylint/lint.py +0 -914
  477. data/tools/pylint2/pylint/pyreverse/__init__.py +0 -5
  478. data/tools/pylint2/pylint/pyreverse/diadefslib.py +0 -229
  479. data/tools/pylint2/pylint/pyreverse/diagrams.py +0 -247
  480. data/tools/pylint2/pylint/pyreverse/main.py +0 -123
  481. data/tools/pylint2/pylint/pyreverse/utils.py +0 -131
  482. data/tools/pylint2/pylint/pyreverse/writer.py +0 -196
  483. data/tools/pylint2/pylint/reporters/__init__.py +0 -67
  484. data/tools/pylint2/pylint/reporters/guireporter.py +0 -36
  485. data/tools/pylint2/pylint/reporters/html.py +0 -69
  486. data/tools/pylint2/pylint/reporters/text.py +0 -156
  487. data/tools/pylint2/pylint/utils.py +0 -518
  488. data/tools/pylint2/pylint.py +0 -16
@@ -1,5 +0,0 @@
1
- """
2
- pyreverse.extensions
3
- """
4
-
5
- __revision__ = "$Id $"
@@ -1,229 +0,0 @@
1
- # Copyright (c) 2000-2010 LOGILAB S.A. (Paris, FRANCE).
2
- # http://www.logilab.fr/ -- mailto:contact@logilab.fr
3
- #
4
- # This program is free software; you can redistribute it and/or modify it under
5
- # the terms of the GNU General Public License as published by the Free Software
6
- # Foundation; either version 2 of the License, or (at your option) any later
7
- # version.
8
- #
9
- # This program is distributed in the hope that it will be useful, but WITHOUT
10
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11
- # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along with
14
- # this program; if not, write to the Free Software Foundation, Inc.,
15
- # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16
- """handle diagram generation options for class diagram or default diagrams
17
- """
18
-
19
- from logilab import astng
20
- from logilab.astng.utils import LocalsVisitor
21
-
22
- from pylint.pyreverse.diagrams import PackageDiagram, ClassDiagram
23
-
24
- # diagram generators ##########################################################
25
-
26
- class DiaDefGenerator:
27
- """handle diagram generation options
28
- """
29
- def __init__(self, linker, handler):
30
- """common Diagram Handler initialization"""
31
- self.config = handler.config
32
- self._set_default_options()
33
- self.linker = linker
34
- self.classdiagram = None # defined by subclasses
35
-
36
- def get_title(self, node):
37
- """get title for objects"""
38
- title = node.name
39
- if self.module_names:
40
- title = '%s.%s' % (node.root().name, title)
41
- return title
42
-
43
- def _set_option(self, option):
44
- """activate some options if not explicitly deactivated"""
45
- # if we have a class diagram, we want more information by default;
46
- # so if the option is None, we return True
47
- if option is None:
48
- if self.config.classes:
49
- return True
50
- else:
51
- return False
52
- return option
53
-
54
- def _set_default_options(self):
55
- """set different default options with _default dictionary"""
56
- self.module_names = self._set_option(self.config.module_names)
57
- all_ancestors = self._set_option(self.config.all_ancestors)
58
- all_associated = self._set_option(self.config.all_associated)
59
- anc_level, ass_level = (0, 0)
60
- if all_ancestors:
61
- anc_level = -1
62
- if all_associated:
63
- ass_level = -1
64
- if self.config.show_ancestors is not None:
65
- anc_level = self.config.show_ancestors
66
- if self.config.show_associated is not None:
67
- ass_level = self.config.show_associated
68
- self.anc_level, self.ass_level = anc_level, ass_level
69
-
70
- def _get_levels(self):
71
- """help function for search levels"""
72
- return self.anc_level, self.ass_level
73
-
74
- def show_node(self, node):
75
- """true if builtins and not show_builtins"""
76
- if self.config.show_builtin:
77
- return True
78
- return node.root().name != '__builtin__'
79
-
80
- def add_class(self, node):
81
- """visit one class and add it to diagram"""
82
- self.linker.visit(node)
83
- self.classdiagram.add_object(self.get_title(node), node)
84
-
85
- def get_ancestors(self, node, level):
86
- """return ancestor nodes of a class node"""
87
- if level == 0:
88
- return
89
- for ancestor in node.ancestors(recurs=False):
90
- if not self.show_node(ancestor):
91
- continue
92
- yield ancestor
93
-
94
- def get_associated(self, klass_node, level):
95
- """return associated nodes of a class node"""
96
- if level == 0:
97
- return
98
- for ass_nodes in klass_node.instance_attrs_type.values() + \
99
- klass_node.locals_type.values():
100
- for ass_node in ass_nodes:
101
- if isinstance(ass_node, astng.Instance):
102
- ass_node = ass_node._proxied
103
- if not (isinstance(ass_node, astng.Class)
104
- and self.show_node(ass_node)):
105
- continue
106
- yield ass_node
107
-
108
- def extract_classes(self, klass_node, anc_level, ass_level):
109
- """extract recursively classes related to klass_node"""
110
- if self.classdiagram.has_node(klass_node) or not self.show_node(klass_node):
111
- return
112
- self.add_class(klass_node)
113
-
114
- for ancestor in self.get_ancestors(klass_node, anc_level):
115
- self.extract_classes(ancestor, anc_level-1, ass_level)
116
-
117
- for ass_node in self.get_associated(klass_node, ass_level):
118
- self.extract_classes(ass_node, anc_level, ass_level-1)
119
-
120
-
121
- class DefaultDiadefGenerator(LocalsVisitor, DiaDefGenerator):
122
- """generate minimum diagram definition for the project :
123
-
124
- * a package diagram including project's modules
125
- * a class diagram including project's classes
126
- """
127
-
128
- def __init__(self, linker, handler):
129
- DiaDefGenerator.__init__(self, linker, handler)
130
- LocalsVisitor.__init__(self)
131
-
132
- def visit_project(self, node):
133
- """visit an astng.Project node
134
-
135
- create a diagram definition for packages
136
- """
137
- mode = self.config.mode
138
- if len(node.modules) > 1:
139
- self.pkgdiagram = PackageDiagram('packages %s' % node.name, mode)
140
- else:
141
- self.pkgdiagram = None
142
- self.classdiagram = ClassDiagram('classes %s' % node.name, mode)
143
-
144
- def leave_project(self, node):
145
- """leave the astng.Project node
146
-
147
- return the generated diagram definition
148
- """
149
- if self.pkgdiagram:
150
- return self.pkgdiagram, self.classdiagram
151
- return self.classdiagram,
152
-
153
- def visit_module(self, node):
154
- """visit an astng.Module node
155
-
156
- add this class to the package diagram definition
157
- """
158
- if self.pkgdiagram:
159
- self.linker.visit(node)
160
- self.pkgdiagram.add_object(node.name, node)
161
-
162
- def visit_class(self, node):
163
- """visit an astng.Class node
164
-
165
- add this class to the class diagram definition
166
- """
167
- anc_level, ass_level = self._get_levels()
168
- self.extract_classes(node, anc_level, ass_level)
169
-
170
- def visit_from(self, node):
171
- """visit astng.From and catch modules for package diagram
172
- """
173
- if self.pkgdiagram:
174
- self.pkgdiagram.add_from_depend(node, node.modname)
175
-
176
-
177
- class ClassDiadefGenerator(DiaDefGenerator):
178
- """generate a class diagram definition including all classes related to a
179
- given class
180
- """
181
-
182
- def __init__(self, linker, handler):
183
- DiaDefGenerator.__init__(self, linker, handler)
184
-
185
- def class_diagram(self, project, klass):
186
- """return a class diagram definition for the given klass and its
187
- related klasses
188
- """
189
-
190
- self.classdiagram = ClassDiagram(klass, self.config.mode)
191
- if len(project.modules) > 1:
192
- module, klass = klass.rsplit('.', 1)
193
- module = project.get_module(module)
194
- else:
195
- module = project.modules[0]
196
- klass = klass.split('.')[-1]
197
- klass = module.ilookup(klass).next()
198
-
199
- anc_level, ass_level = self._get_levels()
200
- self.extract_classes(klass, anc_level, ass_level)
201
- return self.classdiagram
202
-
203
- # diagram handler #############################################################
204
-
205
- class DiadefsHandler:
206
- """handle diagram definitions :
207
-
208
- get it from user (i.e. xml files) or generate them
209
- """
210
-
211
- def __init__(self, config):
212
- self.config = config
213
-
214
- def get_diadefs(self, project, linker):
215
- """get the diagrams configuration data
216
- :param linker: astng.inspector.Linker(IdGeneratorMixIn, LocalsVisitor)
217
- :param project: astng.manager.Project
218
- """
219
-
220
- # read and interpret diagram definitions (Diadefs)
221
- diagrams = []
222
- generator = ClassDiadefGenerator(linker, self)
223
- for klass in self.config.classes:
224
- diagrams.append(generator.class_diagram(project, klass))
225
- if not diagrams:
226
- diagrams = DefaultDiadefGenerator(linker, self).visit(project)
227
- for diagram in diagrams:
228
- diagram.extract_relationships()
229
- return diagrams
@@ -1,247 +0,0 @@
1
- # Copyright (c) 2004-2010 LOGILAB S.A. (Paris, FRANCE).
2
- # http://www.logilab.fr/ -- mailto:contact@logilab.fr
3
- #
4
- # This program is free software; you can redistribute it and/or modify it under
5
- # the terms of the GNU General Public License as published by the Free Software
6
- # Foundation; either version 2 of the License, or (at your option) any later
7
- # version.
8
- #
9
- # This program is distributed in the hope that it will be useful, but WITHOUT
10
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11
- # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along with
14
- # this program; if not, write to the Free Software Foundation, Inc.,
15
- # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16
- """diagram objects
17
- """
18
-
19
- from logilab import astng
20
- from pylint.pyreverse.utils import is_interface, FilterMixIn
21
-
22
- def set_counter(value):
23
- """Figure counter (re)set"""
24
- Figure._UID_COUNT = value
25
-
26
- class Figure:
27
- """base class for counter handling"""
28
- _UID_COUNT = 0
29
- def __init__(self):
30
- Figure._UID_COUNT += 1
31
- self.fig_id = Figure._UID_COUNT
32
-
33
- class Relationship(Figure):
34
- """a relation ship from an object in the diagram to another
35
- """
36
- def __init__(self, from_object, to_object, relation_type, name=None):
37
- Figure.__init__(self)
38
- self.from_object = from_object
39
- self.to_object = to_object
40
- self.type = relation_type
41
- self.name = name
42
-
43
-
44
- class DiagramEntity(Figure):
45
- """a diagram object, i.e. a label associated to an astng node
46
- """
47
- def __init__(self, title='No name', node=None):
48
- Figure.__init__(self)
49
- self.title = title
50
- self.node = node
51
-
52
- class ClassDiagram(Figure, FilterMixIn):
53
- """main class diagram handling
54
- """
55
- TYPE = 'class'
56
- def __init__(self, title, mode):
57
- FilterMixIn.__init__(self, mode)
58
- Figure.__init__(self)
59
- self.title = title
60
- self.objects = []
61
- self.relationships = {}
62
- self._nodes = {}
63
- self.depends = []
64
-
65
- def add_relationship(self, from_object, to_object,
66
- relation_type, name=None):
67
- """create a relation ship
68
- """
69
- rel = Relationship(from_object, to_object, relation_type, name)
70
- self.relationships.setdefault(relation_type, []).append(rel)
71
-
72
- def get_relationship(self, from_object, relation_type):
73
- """return a relation ship or None
74
- """
75
- for rel in self.relationships.get(relation_type, ()):
76
- if rel.from_object is from_object:
77
- return rel
78
- raise KeyError(relation_type)
79
-
80
- def get_attrs(self, node):
81
- """return visible attributes, possibly with class name"""
82
- attrs = []
83
- for node_name, ass_nodes in node.instance_attrs_type.items() + \
84
- node.locals_type.items():
85
- if not self.show_attr(node_name):
86
- continue
87
- names = self.class_names(ass_nodes)
88
- if names:
89
- node_name = "%s : %s" % (node_name, ", ".join(names))
90
- attrs.append(node_name)
91
- return attrs
92
-
93
- def get_methods(self, node):
94
- """return visible methods"""
95
- return [m for m in node.values()
96
- if isinstance(m, astng.Function) and self.show_attr(m.name)]
97
-
98
- def add_object(self, title, node):
99
- """create a diagram object
100
- """
101
- assert not self._nodes.has_key(node)
102
- ent = DiagramEntity(title, node)
103
- self._nodes[node] = ent
104
- self.objects.append(ent)
105
-
106
- def class_names(self, nodes):
107
- """return class names if needed in diagram"""
108
- names = []
109
- for ass_node in nodes:
110
- if isinstance(ass_node, astng.Instance):
111
- ass_node = ass_node._proxied
112
- if isinstance(ass_node, astng.Class) \
113
- and hasattr(ass_node, "name") and not self.has_node(ass_node):
114
- if ass_node.name not in names:
115
- ass_name = ass_node.name
116
- names.append(ass_name)
117
- return names
118
-
119
- def nodes(self):
120
- """return the list of underlying nodes
121
- """
122
- return self._nodes.keys()
123
-
124
- def has_node(self, node):
125
- """return true if the given node is included in the diagram
126
- """
127
- return self._nodes.has_key(node)
128
-
129
- def object_from_node(self, node):
130
- """return the diagram object mapped to node
131
- """
132
- return self._nodes[node]
133
-
134
- def classes(self):
135
- """return all class nodes in the diagram"""
136
- return [o for o in self.objects if isinstance(o.node, astng.Class)]
137
-
138
- def classe(self, name):
139
- """return a class by its name, raise KeyError if not found
140
- """
141
- for klass in self.classes():
142
- if klass.node.name == name:
143
- return klass
144
- raise KeyError(name)
145
-
146
- def extract_relationships(self):
147
- """extract relation ships between nodes in the diagram
148
- """
149
- for obj in self.classes():
150
- node = obj.node
151
- obj.attrs = self.get_attrs(node)
152
- obj.methods = self.get_methods(node)
153
- # shape
154
- if is_interface(node):
155
- obj.shape = 'interface'
156
- else:
157
- obj.shape = 'class'
158
- # inheritance link
159
- for par_node in node.ancestors(recurs=False):
160
- try:
161
- par_obj = self.object_from_node(par_node)
162
- self.add_relationship(obj, par_obj, 'specialization')
163
- except KeyError:
164
- continue
165
- # implements link
166
- for impl_node in node.implements:
167
- try:
168
- impl_obj = self.object_from_node(impl_node)
169
- self.add_relationship(obj, impl_obj, 'implements')
170
- except KeyError:
171
- continue
172
- # associations link
173
- for name, values in node.instance_attrs_type.items() + \
174
- node.locals_type.items():
175
- for value in values:
176
- if value is astng.YES:
177
- continue
178
- if isinstance( value, astng.Instance):
179
- value = value._proxied
180
- try:
181
- ass_obj = self.object_from_node(value)
182
- self.add_relationship(ass_obj, obj, 'association', name)
183
- except KeyError:
184
- continue
185
-
186
-
187
- class PackageDiagram(ClassDiagram):
188
- """package diagram handling
189
- """
190
- TYPE = 'package'
191
-
192
- def modules(self):
193
- """return all module nodes in the diagram"""
194
- return [o for o in self.objects if isinstance(o.node, astng.Module)]
195
-
196
- def module(self, name):
197
- """return a module by its name, raise KeyError if not found
198
- """
199
- for mod in self.modules():
200
- if mod.node.name == name:
201
- return mod
202
- raise KeyError(name)
203
-
204
- def get_module(self, name, node):
205
- """return a module by its name, looking also for relative imports;
206
- raise KeyError if not found
207
- """
208
- for mod in self.modules():
209
- mod_name = mod.node.name
210
- if mod_name == name:
211
- return mod
212
- #search for fullname of relative import modules
213
- package = node.root().name
214
- if mod_name == "%s.%s" % (package, name):
215
- return mod
216
- if mod_name == "%s.%s" % (package.rsplit('.', 1)[0], name):
217
- return mod
218
- raise KeyError(name)
219
-
220
- def add_from_depend(self, node, from_module):
221
- """add dependencies created by from-imports
222
- """
223
- mod_name = node.root().name
224
- obj = self.module( mod_name )
225
- if from_module not in obj.node.depends:
226
- obj.node.depends.append(from_module)
227
-
228
- def extract_relationships(self):
229
- """extract relation ships between nodes in the diagram
230
- """
231
- ClassDiagram.extract_relationships(self)
232
- for obj in self.classes():
233
- # ownership
234
- try:
235
- mod = self.object_from_node(obj.node.root())
236
- self.add_relationship(obj, mod, 'ownership')
237
- except KeyError:
238
- continue
239
- for obj in self.modules():
240
- obj.shape = 'package'
241
- # dependencies
242
- for dep_name in obj.node.depends:
243
- try:
244
- dep = self.get_module(dep_name, obj.node)
245
- except KeyError:
246
- continue
247
- self.add_relationship(obj, dep, 'depends')
@@ -1,123 +0,0 @@
1
- # # Copyright (c) 2000-2010 LOGILAB S.A. (Paris, FRANCE).
2
- # http://www.logilab.fr/ -- mailto:contact@logilab.fr
3
- #
4
- # This program is free software; you can redistribute it and/or modify it under
5
- # the terms of the GNU General Public License as published by the Free Software
6
- # Foundation; either version 2 of the License, or (at your option) any later
7
- # version.
8
- #
9
- # This program is distributed in the hope that it will be useful, but WITHOUT
10
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11
- # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along with
14
- # this program; if not, write to the Free Software Foundation, Inc.,
15
- # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16
- """
17
- %prog [options] <packages>
18
-
19
- create UML diagrams for classes and modules in <packages>
20
- """
21
-
22
- import sys
23
- from logilab.common.configuration import ConfigurationMixIn
24
- from logilab.astng.manager import astng_wrapper, ASTNGManager
25
- from logilab.astng.inspector import Linker
26
-
27
- from pylint.pyreverse.diadefslib import DiadefsHandler
28
- from pylint.pyreverse import writer
29
- from pylint.pyreverse.utils import insert_default_options
30
-
31
- OPTIONS = (
32
- ("filter-mode",
33
- dict(short='f', default='PUB_ONLY', dest='mode', type='string',
34
- action='store', metavar='<mode>',
35
- help="""filter attributes and functions according to
36
- <mode>. Correct modes are :
37
- 'PUB_ONLY' filter all non public attributes
38
- [DEFAULT], equivalent to PRIVATE+SPECIAL_A
39
- 'ALL' no filter
40
- 'SPECIAL' filter Python special functions
41
- except constructor
42
- 'OTHER' filter protected and private
43
- attributes""")),
44
-
45
- ("class",
46
- dict(short='c', action="append", metavar="<class>", dest="classes", default=[],
47
- help="create a class diagram with all classes related to <class>;\
48
- this uses by default the options -ASmy")),
49
-
50
- ("show-ancestors",
51
- dict(short="a", action="store", metavar='<ancestor>', type='int',
52
- help='show <ancestor> generations of ancestor classes not in <projects>')),
53
- ("all-ancestors",
54
- dict(short="A", default=None,
55
- help="show all ancestors off all classes in <projects>") ),
56
- ("show-associated",
57
- dict(short='s', action="store", metavar='<ass_level>', type='int',
58
- help='show <ass_level> levels of associated classes not in <projects>')),
59
- ("all-associated",
60
- dict(short='S', default=None,
61
- help='show recursively all associated off all associated classes')),
62
-
63
- ("show-builtin",
64
- dict(short="b", action="store_true", default=False,
65
- help='include builtin objects in representation of classes')),
66
-
67
- ("module-names",
68
- dict(short="m", default=None, type='yn', metavar='[yn]',
69
- help='include module name in representation of classes')),
70
- # TODO : generate dependencies like in pylint
71
- #("package-dependencies",
72
- #dict(short="M", action="store", metavar='<package_depth>', type='int',
73
- #help='show <package_depth> module dependencies beyond modules in \
74
- #<projects> (for the package diagram)')),
75
- ("only-classnames",
76
- dict(short='k', action="store_true", default=False,
77
- help="don't show attributes and methods in the class boxes; \
78
- this disables -f values")),
79
- ("output", dict(short="o", dest="output_format", action="store",
80
- default="dot", metavar="<format>",
81
- help="create a *.<format> output file if format available.")),
82
- )
83
- # FIXME : quiet mode
84
- #( ('quiet',
85
- #dict(help='run quietly', action='store_true', short='q')), )
86
-
87
-
88
- class PyreverseCommand(ConfigurationMixIn):
89
- """base class providing common behaviour for pyreverse commands"""
90
-
91
- options = OPTIONS
92
-
93
- def __init__(self, args):
94
- ConfigurationMixIn.__init__(self, usage=__doc__)
95
- insert_default_options()
96
- self.manager = ASTNGManager()
97
- self.register_options_provider(self.manager)
98
- args = self.load_command_line_configuration()
99
- self.run(args)
100
-
101
- def run(self, args):
102
- """checking arguments and run project"""
103
- if not args:
104
- print self.help()
105
- return
106
- project = self.manager.project_from_files(args, astng_wrapper)
107
- linker = Linker(project, tag=True)
108
- handler = DiadefsHandler(self.config)
109
- diadefs = handler.get_diadefs(project, linker)
110
- if self.config.output_format == "vcg":
111
- writer.VCGWriter(self.config).write(diadefs)
112
- else:
113
- writer.DotWriter(self.config).write(diadefs)
114
-
115
-
116
- class Run:
117
- """pyreverse main class"""
118
- def __init__(self, args):
119
- """run pyreverse"""
120
- PyreverseCommand(args)
121
-
122
- if __name__ == '__main__':
123
- Run(sys.argv[1:])