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,758 +0,0 @@
1
- # This program is free software; you can redistribute it and/or modify it under
2
- # the terms of the GNU Lesser General Public License as published by the Free Software
3
- # Foundation; either version 2 of the License, or (at your option) any later
4
- # version.
5
- #
6
- # This program is distributed in the hope that it will be useful, but WITHOUT
7
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
8
- # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
9
- #
10
- # You should have received a copy of the GNU Lesser General Public License along with
11
- # this program; if not, write to the Free Software Foundation, Inc.,
12
- # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
13
- # copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
14
- # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
15
- # copyright 2003-2010 Sylvain Thenault, all rights reserved.
16
- # contact mailto:thenault@gmail.com
17
- #
18
- # This file is part of logilab-astng.
19
- #
20
- # logilab-astng is free software: you can redistribute it and/or modify it
21
- # under the terms of the GNU Lesser General Public License as published by the
22
- # Free Software Foundation, either version 2.1 of the License, or (at your
23
- # option) any later version.
24
- #
25
- # logilab-astng is distributed in the hope that it will be useful, but
26
- # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
27
- # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
28
- # for more details.
29
- #
30
- # You should have received a copy of the GNU Lesser General Public License along
31
- # with logilab-astng. If not, see <http://www.gnu.org/licenses/>.
32
- """python < 2.5 compiler package compatibility module [1]
33
-
34
-
35
- [1] http://docs.python.org/lib/module-compiler.ast.html
36
-
37
- """
38
-
39
- __docformat__ = "restructuredtext en"
40
-
41
- from compiler.ast import Const, Node, Sliceobj
42
-
43
- # nodes which are not part of astng
44
- from compiler.ast import And as _And, Or as _Or,\
45
- UnaryAdd as _UnaryAdd, UnarySub as _UnarySub, Not as _Not,\
46
- Invert as _Invert, Add as _Add, Div as _Div, FloorDiv as _FloorDiv,\
47
- Mod as _Mod, Mul as _Mul, Power as _Power, Sub as _Sub, Bitand as _Bitand,\
48
- Bitor as _Bitor, Bitxor as _Bitxor, LeftShift as _LeftShift,\
49
- RightShift as _RightShift
50
-
51
-
52
- from logilab.astng import nodes as new
53
- from logilab.astng.rebuilder import RebuildVisitor
54
-
55
-
56
- CONST_NAME_TRANSFORMS = {'None': None,
57
- 'True': True,
58
- 'False': False}
59
-
60
-
61
- def native_repr_tree(node, indent='', _done=None):
62
- """enhanced compiler.ast tree representation"""
63
- if _done is None:
64
- _done = set()
65
- if node in _done:
66
- print ('loop in tree: %r (%s)' % (node, getattr(node, 'lineno', None)))
67
- return
68
- _done.add(node)
69
- print indent + "<%s>" % node.__class__
70
- indent += ' '
71
- if not hasattr(node, "__dict__"): # XXX
72
- return
73
- for field, attr in node.__dict__.items():
74
- if attr is None or field == "_proxied":
75
- continue
76
- if type(attr) is list:
77
- if not attr: continue
78
- print indent + field + ' ['
79
- for elt in attr:
80
- if type(elt) is tuple:
81
- for val in elt:
82
- native_repr_tree(val, indent, _done)
83
- else:
84
- native_repr_tree(elt, indent, _done)
85
- print indent + ']'
86
- continue
87
- if isinstance(attr, Node):
88
- print indent + field
89
- native_repr_tree(attr, indent, _done)
90
- else:
91
- print indent + field, repr(attr)
92
-
93
-
94
- # some astng nodes unexistent in compiler #####################################
95
-
96
- BinOp_OP_CLASSES = {_Add: '+',
97
- _Div: '/',
98
- _FloorDiv: '//',
99
- _Mod: '%',
100
- _Mul: '*',
101
- _Power: '**',
102
- _Sub: '-',
103
- _Bitand: '&',
104
- _Bitor: '|',
105
- _Bitxor: '^',
106
- _LeftShift: '<<',
107
- _RightShift: '>>'
108
- }
109
- BinOp_BIT_CLASSES = {'&': _Bitand,
110
- '|': _Bitor,
111
- '^': _Bitxor
112
- }
113
-
114
-
115
- BoolOp_OP_CLASSES = {_And: 'and',
116
- _Or: 'or'
117
- }
118
-
119
- UnaryOp_OP_CLASSES = {_UnaryAdd: '+',
120
- _UnarySub: '-',
121
- _Not: 'not',
122
- _Invert: '~'
123
- }
124
-
125
-
126
- # compiler rebuilder ##########################################################
127
-
128
- def _filter_none(node):
129
- """transform Const(None) to None"""
130
- if isinstance(node, Const) and node.value is None:
131
- return None
132
- else:
133
- return node
134
-
135
-
136
- class TreeRebuilder(RebuildVisitor):
137
- """Rebuilds the compiler tree to become an ASTNG tree"""
138
-
139
- def _init_else_node(self, node, newnode):
140
- """visit else block; replace None by empty list"""
141
- if not node.else_:
142
- return []
143
- return [self.visit(child, newnode) for child in node.else_.nodes]
144
-
145
- def _set_infos(self, oldnode, newnode, newparent):
146
- newnode.parent = newparent
147
- if hasattr(oldnode, 'lineno'):
148
- newnode.lineno = oldnode.lineno
149
- if hasattr(oldnode, 'fromlineno'):
150
- newnode.fromlineno = oldnode.fromlineno
151
- if hasattr(oldnode, 'tolineno'):
152
- newnode.tolineno = oldnode.tolineno
153
- if hasattr(oldnode, 'blockstart_tolineno'):
154
- newnode.blockstart_tolineno = oldnode.blockstart_tolineno
155
-
156
- def _check_del_node(self, node, parent, targets):
157
- """insert a Delete node if necessary.
158
-
159
- As for assignments we have a Assign (or For or ...) node, this method
160
- is only called in delete contexts. Hence we return a Delete node"""
161
- if self.asscontext is None:
162
- self.asscontext = "Del"
163
- newnode = new.Delete()
164
- self._set_infos(node, newnode, parent)
165
- newnode.targets = [self.visit(elt, newnode) for elt in targets]
166
- self.asscontext = None
167
- return newnode
168
- else:
169
- # this will trigger the visit_ass* methods to create the right nodes
170
- return False
171
-
172
- def _nodify_args(self, parent, values):
173
- """transform arguments and tuples or lists of arguments into astng nodes"""
174
- res = []
175
- for arg in values:
176
- if isinstance(arg, (tuple, list)):
177
- n = new.Tuple()
178
- self._set_infos(parent, n, parent)
179
- n.elts = self._nodify_args(n, arg)
180
- else:
181
- assert isinstance(arg, basestring)
182
- n = new.AssName()
183
- self._set_infos(parent, n, parent)
184
- n.name = arg
185
- self._save_assignment(n, n.name)
186
- res.append(n)
187
- return res
188
-
189
- def visit_arguments(self, node, parent):
190
- """visit an Arguments node by returning a fresh instance of it"""
191
- # /!\ incoming node is Function or Lambda, coming directly from visit_*
192
- if node.flags & 8:
193
- kwarg = node.argnames.pop()
194
- else:
195
- kwarg = None
196
- if node.flags & 4:
197
- vararg = node.argnames.pop()
198
- else:
199
- vararg = None
200
- newnode = new.Arguments(vararg, kwarg)
201
- newnode.parent = parent
202
- newnode.fromlineno = parent.fromlineno
203
- try:
204
- newnode.tolineno = parent.blockstart_tolineno
205
- except AttributeError: # lambda
206
- newnode.tolineno = parent.tolineno
207
- newnode.args = self._nodify_args(newnode, node.argnames)
208
- self._save_argument_name(newnode)
209
- newnode.defaults = [self.visit(n, newnode) for n in node.defaults]
210
- return newnode
211
-
212
- def visit_assattr(self, node, parent):
213
- """visit an AssAttr node by returning a fresh instance of it"""
214
- delnode = self._check_del_node(node, parent, [node])
215
- if delnode:
216
- return delnode
217
- elif self.asscontext == "Del":
218
- return self.visit_delattr(node, parent)
219
- elif self.asscontext in ("Ass", "Aug"):
220
- newnode = new.AssAttr()
221
- self._set_infos(node, newnode, parent)
222
- asscontext, self.asscontext = self.asscontext, None
223
- newnode.expr = self.visit(node.expr, newnode)
224
- self.asscontext = asscontext
225
- newnode.attrname = node.attrname
226
- self._delayed_assattr.append(newnode)
227
- return newnode
228
-
229
- def visit_assname(self, node, parent):
230
- """visit an AssName node by returning a fresh instance of it"""
231
- delnode = self._check_del_node(node, parent, [node])
232
- if delnode:
233
- return delnode
234
- elif self.asscontext == "Del":
235
- return self.visit_delname(node, parent)
236
- assert self.asscontext in ("Ass", "Aug")
237
- newnode = new.AssName()
238
- self._set_infos(node, newnode, parent)
239
- newnode.name = node.name
240
- self._save_assignment(newnode)
241
- return newnode
242
-
243
- def visit_assert(self, node, parent):
244
- """visit an Assert node by returning a fresh instance of it"""
245
- newnode = new.Assert()
246
- self._set_infos(node, newnode, parent)
247
- newnode.test = self.visit(node.test, newnode)
248
- newnode.fail = self.visit(node.fail, newnode)
249
- return newnode
250
-
251
- def visit_assign(self, node, parent):
252
- """visit an Assign node by returning a fresh instance of it"""
253
- newnode = new.Assign()
254
- self._set_infos(node, newnode, parent)
255
- self.asscontext = 'Ass'
256
- newnode.targets = [self.visit(child, newnode) for child in node.nodes]
257
- # /!\ Subscript can appear on both sides,
258
- # so we need 'Ass' in rhs to avoid inserting a Delete node
259
- newnode.value = self.visit(node.expr, newnode)
260
- self.asscontext = None
261
- self._set_assign_infos(newnode)
262
- return newnode
263
-
264
- def visit_asslist(self, node, parent):
265
- # FIXME : use self._check_del_node(node, [node]) more precise ?
266
- delnode = self._check_del_node(node, parent, node.nodes)
267
- if delnode:
268
- return delnode
269
- return self.visit_list(node, parent)
270
-
271
- def visit_asstuple(self, node, parent):
272
- delnode = self._check_del_node(node, parent, node.nodes)
273
- if delnode:
274
- return delnode
275
- return self.visit_tuple(node, parent)
276
-
277
- def visit_augassign(self, node, parent):
278
- """visit an AugAssign node by returning a fresh instance of it"""
279
- newnode = new.AugAssign()
280
- self._set_infos(node, newnode, parent)
281
- self.asscontext = "Aug"
282
- newnode.target = self.visit(node.node, newnode)
283
- self.asscontext = None
284
- newnode.op = node.op
285
- newnode.value = self.visit(node.expr, newnode)
286
- return newnode
287
-
288
- def visit_backquote(self, node, parent):
289
- """visit a Backquote node by returning a fresh instance of it"""
290
- newnode = new.Backquote()
291
- self._set_infos(node, newnode, parent)
292
- newnode.value = self.visit(node.expr, newnode)
293
- return newnode
294
-
295
- def visit_binop(self, node, parent):
296
- """visit a BinOp node by returning a fresh instance of it"""
297
- newnode = new.BinOp()
298
- self._set_infos(node, newnode, parent)
299
- newnode.op = BinOp_OP_CLASSES[node.__class__]
300
- if newnode.op in ('&', '|', '^'):
301
- newnode.right = self.visit(node.nodes[-1], newnode)
302
- bitop = BinOp_BIT_CLASSES[newnode.op]
303
- if len(node.nodes) > 2:
304
- # create a bitop node on the fly and visit it:
305
- # XXX can't we create directly the right node ?
306
- newnode.left = self.visit(bitop(node.nodes[:-1]), newnode)
307
- else:
308
- newnode.left = self.visit(node.nodes[0], newnode)
309
- else:
310
- newnode.left = self.visit(node.left, newnode)
311
- newnode.right = self.visit(node.right, newnode)
312
- return newnode
313
-
314
- def visit_boolop(self, node, parent):
315
- """visit a BoolOp node by returning a fresh instance of it"""
316
- newnode = new.BoolOp()
317
- self._set_infos(node, newnode, parent)
318
- newnode.values = [self.visit(child, newnode) for child in node.nodes]
319
- newnode.op = BoolOp_OP_CLASSES[node.__class__]
320
- return newnode
321
-
322
- def visit_callfunc(self, node, parent):
323
- """visit a CallFunc node by returning a fresh instance of it"""
324
- newnode = new.CallFunc()
325
- self._set_infos(node, newnode, parent)
326
- newnode.func = self.visit(node.node, newnode)
327
- newnode.args = [self.visit(child, newnode) for child in node.args]
328
- if node.star_args:
329
- newnode.starargs = self.visit(node.star_args, newnode)
330
- if node.dstar_args:
331
- newnode.kwargs = self.visit(node.dstar_args, newnode)
332
- return newnode
333
-
334
- def _visit_class(self, node, parent):
335
- """visit a Class node by returning a fresh instance of it"""
336
- newnode = new.Class(node.name, node.doc)
337
- self._set_infos(node, newnode, parent)
338
- newnode.bases = [self.visit(child, newnode) for child in node.bases]
339
- newnode.body = [self.visit(child, newnode) for child in node.code.nodes]
340
- return newnode
341
-
342
- def visit_compare(self, node, parent):
343
- """visit a Compare node by returning a fresh instance of it"""
344
- newnode = new.Compare()
345
- self._set_infos(node, newnode, parent)
346
- newnode.left = self.visit(node.expr, newnode)
347
- newnode.ops = [(op, self.visit(child, newnode)) for op, child in node.ops]
348
- return newnode
349
-
350
- def visit_comprehension(self, node, parent):
351
- """visit a Comprehension node by returning a fresh instance of it"""
352
- newnode = new.Comprehension()
353
- self._set_infos(node, newnode, parent)
354
- self.asscontext = "Ass"
355
- newnode.target = self.visit(node.assign, newnode)
356
- self.asscontext = None
357
- if hasattr(node, 'list'):# ListCompFor
358
- iters = node.list
359
- else:# GenExprFor
360
- iters = node.iter
361
- newnode.iter = self.visit(iters, newnode)
362
- if node.ifs:
363
- newnode.ifs = [self.visit(iff.test, newnode) for iff in node.ifs]
364
- else:
365
- newnode.ifs = []
366
- return newnode
367
-
368
- def visit_decorators(self, node, parent):
369
- """visit a Decorators node by returning a fresh instance of it"""
370
- newnode = new.Decorators()
371
- self._set_infos(node, newnode, parent)
372
- newnode.nodes = [self.visit(child, newnode) for child in node.nodes]
373
- return newnode
374
-
375
- def visit_delattr(self, node, parent):
376
- """visit a DelAttr node by returning a fresh instance of it"""
377
- newnode = new.DelAttr()
378
- self._set_infos(node, newnode, parent)
379
- newnode.expr = self.visit(node.expr, newnode)
380
- newnode.attrname = node.attrname
381
- return newnode
382
-
383
- def visit_delname(self, node, parent):
384
- """visit a DelName node by returning a fresh instance of it"""
385
- newnode = new.DelName()
386
- self._set_infos(node, newnode, parent)
387
- newnode.name = node.name
388
- self._save_assignment(newnode) # ???
389
- return newnode
390
-
391
- def visit_dict(self, node, parent):
392
- """visit a Dict node by returning a fresh instance of it"""
393
- newnode = new.Dict()
394
- self._set_infos(node, newnode, parent)
395
- newnode.items = [(self.visit(key, newnode), self.visit(value, newnode))
396
- for (key, value) in node.items]
397
- return newnode
398
-
399
- def visit_discard(self, node, parent):
400
- """visit a Discard node by returning a fresh instance of it"""
401
- newnode = new.Discard()
402
- if node.lineno is None:
403
- # ignore dummy Discard introduced when a statement
404
- # is ended by a semi-colon: remove it at the end of rebuilding
405
- self._remove_nodes.append((newnode, parent))
406
- self._set_infos(node, newnode, parent)
407
- self.asscontext = "Dis"
408
- newnode.value = self.visit(node.expr, newnode)
409
- self.asscontext = None
410
- return newnode
411
-
412
- def visit_excepthandler(self, node, parent):
413
- """visit an ExceptHandler node by returning a fresh instance of it"""
414
- newnode = new.ExceptHandler()
415
- self._set_infos(node, newnode, parent)
416
- newnode.type = self.visit(node.type, newnode)
417
- newnode.name = self.visit(node.name, newnode)
418
- newnode.body = [self.visit(child, newnode) for child in node.body]
419
- return newnode
420
-
421
- def visit_exec(self, node, parent):
422
- """visit an Exec node by returning a fresh instance of it"""
423
- newnode = new.Exec()
424
- self._set_infos(node, newnode, parent)
425
- newnode.expr = self.visit(node.expr, newnode)
426
- newnode.globals = self.visit(node.locals, newnode)
427
- newnode.locals = self.visit(node.globals, newnode)
428
- return newnode
429
-
430
- def visit_extslice(self, node, parent):
431
- """visit an ExtSlice node by returning a fresh instance of it"""
432
- newnode = new.ExtSlice()
433
- self._set_infos(node, newnode, parent)
434
- newnode.dims = [self.visit(dim, newnode) for dim in node.subs]
435
- return newnode
436
-
437
- def visit_for(self, node, parent):
438
- """visit a For node by returning a fresh instance of it"""
439
- newnode = new.For()
440
- self._set_infos(node, newnode, parent)
441
- self.asscontext = "Ass"
442
- newnode.target = self.visit(node.assign, newnode)
443
- self.asscontext = None
444
- newnode.iter = self.visit(node.list, newnode)
445
- newnode.body = [self.visit(child, newnode) for child in node.body.nodes]
446
- newnode.orelse = self._init_else_node(node, newnode)
447
- return newnode
448
-
449
- def visit_from(self, node, parent):
450
- """visit a From node by returning a fresh instance of it"""
451
- newnode = new.From(node.modname, node.names)
452
- self._set_infos(node, newnode, parent)
453
- self._store_from_node(newnode)
454
- return newnode
455
-
456
- def _visit_function(self, node, parent):
457
- """visit a Function node by returning a fresh instance of it"""
458
- newnode = new.Function(node.name, node.doc)
459
- self._set_infos(node, newnode, parent)
460
- newnode.decorators = self.visit(node.decorators, newnode)
461
- newnode.args = self.visit_arguments(node, newnode)
462
- newnode.body = [self.visit(child, newnode) for child in node.code.nodes]
463
- return newnode
464
-
465
- def visit_genexpr(self, node, parent):
466
- """visit a GenExpr node by returning a fresh instance of it"""
467
- newnode = new.GenExpr()
468
- self._set_infos(node, newnode, parent)
469
- # remove GenExprInner node
470
- newnode.elt = self.visit(node.code.expr, newnode)
471
- newnode.generators = [self.visit(n, newnode) for n in node.code.quals]
472
- return newnode
473
-
474
- def visit_getattr(self, node, parent):
475
- """visit a Getattr node by returning a fresh instance of it"""
476
- newnode = new.Getattr()
477
- self._set_infos(node, newnode, parent)
478
- if self.asscontext == "Aug":
479
- return self.visit_assattr(node, parent)
480
- newnode.expr = self.visit(node.expr, newnode)
481
- newnode.attrname = node.attrname
482
- return newnode
483
-
484
- def visit_if(self, node, parent):
485
- """visit an If node by returning a fresh instance of it"""
486
- newnode = subnode = new.If()
487
- self._set_infos(node, newnode, parent)
488
- test, body = node.tests[0]
489
- newnode.test = self.visit(test, newnode)
490
- newnode.body = [self.visit(child, newnode) for child in body.nodes]
491
- for test, body in node.tests[1:]:# this represents 'elif'
492
- # create successively If nodes and put it in orelse of the previous
493
- subparent, subnode = subnode, new.If()
494
- subnode.parent = subparent
495
- subnode.fromlineno = test.fromlineno
496
- subnode.tolineno = body.nodes[-1].tolineno
497
- subnode.blockstart_tolineno = test.tolineno
498
- subnode.test = self.visit(test, subnode)
499
- subnode.body = [self.visit(child, subnode) for child in body.nodes]
500
- subparent.orelse = [subnode]
501
- # the last subnode gets the else block:
502
- subnode.orelse = self._init_else_node(node, subnode)
503
- return newnode
504
-
505
- def visit_ifexp(self, node, parent):
506
- """visit an IfExp node by returning a fresh instance of it"""
507
- newnode = new.IfExp()
508
- self._set_infos(node, newnode, parent)
509
- newnode.test = self.visit(node.test, newnode)
510
- newnode.body = [self.visit(child, newnode) for child in node.body]
511
- newnode.orelse = self.visit(node.orelse, newnode)
512
- return newnode
513
-
514
- def visit_import(self, node, parent):
515
- """visit an Import node by returning a fresh instance of it"""
516
- newnode = new.Import()
517
- self._set_infos(node, newnode, parent)
518
- newnode.names = node.names
519
- self._save_import_locals(newnode)
520
- return newnode
521
-
522
- def visit_index(self, node, parent):
523
- """visit an Index node by returning a fresh instance of it"""
524
- newnode = new.Index()
525
- self._set_infos(node, newnode, parent)
526
- newnode.value = self.visit(node.subs[0], newnode)
527
- return newnode
528
-
529
- def visit_keyword(self, node, parent):
530
- """visit a Keyword node by returning a fresh instance of it"""
531
- newnode = new.Keyword()
532
- self._set_infos(node, newnode, parent)
533
- newnode.value = self.visit(node.expr, newnode)
534
- newnode.arg = node.name
535
- return newnode
536
-
537
- def visit_lambda(self, node, parent):
538
- """visit a Lambda node by returning a fresh instance of it"""
539
- newnode = new.Lambda()
540
- self._set_infos(node, newnode, parent)
541
- newnode.body = self.visit(node.code, newnode)
542
- newnode.args = self.visit_arguments(node, newnode)
543
- return newnode
544
-
545
- def visit_list(self, node, parent):
546
- """visit a List node by returning a fresh instance of it"""
547
- newnode = new.List()
548
- self._set_infos(node, newnode, parent)
549
- newnode.elts = [self.visit(child, newnode) for child in node.nodes]
550
- return newnode
551
-
552
- def visit_listcomp(self, node, parent):
553
- """visit a ListComp node by returning a fresh instance of it"""
554
- newnode = new.ListComp()
555
- self._set_infos(node, newnode, parent)
556
- newnode.elt = self.visit(node.expr, newnode)
557
- newnode.generators = [self.visit(child, newnode) for child in node.quals]
558
- return newnode
559
-
560
- def visit_module(self, node, modname):
561
- """visit a Module node by returning a fresh instance of it"""
562
- newnode = new.Module(modname, node.doc)
563
- self._set_infos(node, newnode, None)
564
- self._remove_nodes = [] # list of ';' Discard nodes to be removed
565
- newnode.body = [self.visit(child, newnode) for child in node.node.nodes]
566
- for discard, d_parent in self._remove_nodes:
567
- d_parent.child_sequence(discard).remove(discard)
568
- return newnode
569
-
570
- def visit_name(self, node, parent):
571
- """visit a Name node by returning a fresh instance of it"""
572
- if node.name in CONST_NAME_TRANSFORMS:
573
- newnode = new.Const(CONST_NAME_TRANSFORMS[node.name])
574
- self._set_infos(node, newnode, parent)
575
- return newnode
576
- if self.asscontext == "Aug":
577
- return self.visit_assname(node, parent)
578
- newnode = new.Name()
579
- self._set_infos(node, newnode, parent)
580
- newnode.name = node.name
581
- return newnode
582
-
583
- def visit_print(self, node, parent):
584
- """visit a Print node by returning a fresh instance of it"""
585
- newnode = new.Print()
586
- self._set_infos(node, newnode, parent)
587
- newnode.dest = self.visit(node.dest, newnode)
588
- newnode.values = [self.visit(child, newnode) for child in node.nodes]
589
- newnode.nl = False
590
- return newnode
591
-
592
- def visit_printnl(self, node, parent):
593
- newnode = self.visit_print(node, parent)
594
- self._set_infos(node, newnode, parent)
595
- newnode.nl = True
596
- return newnode
597
-
598
- def visit_raise(self, node, parent):
599
- """visit a Raise node by returning a fresh instance of it"""
600
- newnode = new.Raise()
601
- self._set_infos(node, newnode, parent)
602
- newnode.type = self.visit(node.expr1, newnode)
603
- newnode.inst = self.visit(node.expr2, newnode)
604
- newnode.tback = self.visit(node.expr3, newnode)
605
- return newnode
606
-
607
- def visit_return(self, node, parent):
608
- """visit a Return node by returning a fresh instance of it"""
609
- newnode = new.Return()
610
- self._set_infos(node, newnode, parent)
611
- newnode.value = self.visit(_filter_none(node.value), newnode)
612
- return newnode
613
-
614
- def visit_slice(self, node, parent):
615
- """visit a compiler.Slice by returning a astng.Subscript"""
616
- # compiler.Slice nodes represent astng.Subscript nodes
617
- # the astng.Subscript node has a astng.Slice node as child
618
- if node.flags == 'OP_DELETE':
619
- delnode = self._check_del_node(node, parent, [node])
620
- if delnode:
621
- return delnode
622
- newnode = new.Subscript()
623
- self._set_infos(node, newnode, parent)
624
- newnode.value = self.visit(node.expr, newnode)
625
- newnode.slice = self.visit_sliceobj(node, newnode, slice=True)
626
- return newnode
627
-
628
- def visit_sliceobj(self, node, parent, slice=False):
629
- """visit a Slice or Sliceobj; transform Sliceobj into a astng.Slice"""
630
- newnode = new.Slice()
631
- self._set_infos(node, newnode, parent)
632
- if slice:
633
- subs = [node.lower, node.upper, None]
634
- else:
635
- subs = node.nodes
636
- if len(subs) == 2:
637
- subs.append(None)
638
- newnode.lower = self.visit(_filter_none(subs[0]), newnode)
639
- newnode.upper = self.visit(_filter_none(subs[1]), newnode)
640
- newnode.step = self.visit(_filter_none(subs[2]), newnode)
641
- return newnode
642
-
643
- def visit_subscript(self, node, parent):
644
- """visit a Subscript node by returning a fresh instance of it"""
645
- if node.flags == 'OP_DELETE':
646
- delnode = self._check_del_node(node, parent, [node])
647
- if delnode:
648
- return delnode
649
- newnode = new.Subscript()
650
- self._set_infos(node, newnode, parent)
651
- self.asscontext, asscontext = None, self.asscontext
652
- newnode.value = self.visit(node.expr, newnode)
653
- if [n for n in node.subs if isinstance(n, Sliceobj)]:
654
- if len(node.subs) == 1: # Sliceobj -> new.Slice
655
- newnode.slice = self.visit_sliceobj(node.subs[0], newnode)
656
- else: # ExtSlice
657
- newnode.slice = self.visit_extslice(node, newnode)
658
- else: # Index
659
- newnode.slice = self.visit_index(node, newnode)
660
- self.asscontext = asscontext
661
- return newnode
662
-
663
- def visit_tryexcept(self, node, parent):
664
- """visit a TryExcept node by returning a fresh instance of it"""
665
- newnode = new.TryExcept()
666
- self._set_infos(node, newnode, parent)
667
- newnode.body = [self.visit(child, newnode) for child in node.body.nodes]
668
- newnode.handlers = [self._visit_excepthandler(newnode, values)
669
- for values in node.handlers]
670
- newnode.orelse = self._init_else_node(node, newnode)
671
- return newnode
672
-
673
- def _visit_excepthandler(self, parent, values):
674
- """build an ExceptHandler node from given values and visit children"""
675
- newnode = new.ExceptHandler()
676
- newnode.parent = parent
677
- exctype, excobj, body = values
678
- if exctype and exctype.lineno:
679
- newnode.fromlineno = exctype.lineno
680
- else:
681
- newnode.fromlineno = body.nodes[0].fromlineno - 1
682
- newnode.tolineno = body.nodes[-1].tolineno
683
- if excobj:
684
- newnode.blockstart_tolineno = excobj.tolineno
685
- elif exctype:
686
- newnode.blockstart_tolineno = exctype.tolineno
687
- else:
688
- newnode.blockstart_tolineno = newnode.fromlineno
689
- newnode.type = self.visit(exctype, newnode)
690
- self.asscontext = "Ass"
691
- newnode.name = self.visit(excobj, newnode)
692
- self.asscontext = None
693
- newnode.body = [self.visit(child, newnode) for child in body.nodes]
694
- return newnode
695
-
696
- def visit_tryfinally(self, node, parent):
697
- """visit a TryFinally node by returning a fresh instance of it"""
698
- newnode = new.TryFinally()
699
- self._set_infos(node, newnode, parent)
700
- newnode.body = [self.visit(child, newnode) for child in node.body.nodes]
701
- newnode.finalbody = [self.visit(n, newnode) for n in node.final.nodes]
702
- return newnode
703
-
704
- def visit_tuple(self, node, parent):
705
- """visit a Tuple node by returning a fresh instance of it"""
706
- newnode = new.Tuple()
707
- self._set_infos(node, newnode, parent)
708
- newnode.elts = [self.visit(child, newnode) for child in node.nodes]
709
- return newnode
710
-
711
- def visit_unaryop(self, node, parent):
712
- """visit an UnaryOp node by returning a fresh instance of it"""
713
- newnode = new.UnaryOp()
714
- self._set_infos(node, newnode, parent)
715
- newnode.operand = self.visit(node.expr, newnode)
716
- newnode.op = UnaryOp_OP_CLASSES[node.__class__]
717
- return newnode
718
-
719
- def visit_while(self, node, parent):
720
- """visit a While node by returning a fresh instance of it"""
721
- newnode = new.While()
722
- self._set_infos(node, newnode, parent)
723
- newnode.test = self.visit(node.test, newnode)
724
- newnode.body = [self.visit(child, newnode) for child in node.body.nodes]
725
- newnode.orelse = self._init_else_node(node, newnode)
726
- return newnode
727
-
728
- def visit_with(self, node, parent):
729
- """visit a With node by returning a fresh instance of it"""
730
- newnode = new.With()
731
- self._set_infos(node, newnode, parent)
732
- newnode.expr = self.visit(node.expr, newnode)
733
- newnode.vars = self.visit(node.vars, newnode)
734
- newnode.body = [self.visit(child, newnode) for child in node.body]
735
- return newnode
736
-
737
- def visit_yield(self, node, parent):
738
- """visit a Yield node by returning a fresh instance of it"""
739
- discard = self._check_discard(node, parent)
740
- if discard:
741
- return discard
742
- newnode = new.Yield()
743
- self._set_infos(node, newnode, parent)
744
- newnode.value = self.visit(node.value, newnode)
745
- return newnode
746
-
747
- def _check_discard(self, node, parent):
748
- """check if we introduced already a discard node."""
749
- # XXX we should maybe use something else then 'asscontext' here
750
- if self.asscontext is None:
751
- self.asscontext = 'Dis'
752
- newnode = new.Discard()
753
- self._set_infos(node, newnode, parent)
754
- newnode.value = self.visit(node, newnode)
755
- self.asscontext = None
756
- return newnode
757
- return False
758
-