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.
- data/{build/README → README} +1 -1
- data/egg/egg/build.yml +11 -49
- data/egg/egg.yml +19 -27
- data/egg/http/build.erb +32 -36
- data/egg/http/libhttp.py +102 -0
- data/egg/http/pylint.cfg +236 -0
- data/egg/http/server.py +7 -0
- data/egg/http/test.erb +32 -0
- data/egg/http.yml +33 -29
- data/egg/mysql/mysql.py +8 -9
- data/egg/project/build.erb +21 -53
- data/egg/project/pylint.cfg +236 -0
- data/egg/project/test.py +2 -2
- data/egg/project.yml +23 -31
- data/egg/script/build.erb +18 -23
- data/egg/script/pylint.cfg +236 -0
- data/egg/script.yml +22 -18
- data/egg/source/source.py +6 -6
- data/egg/test/test.py +1 -1
- data/lib/bee_task_python.rb +3 -34
- data/python.yml +123 -0
- metadata +61 -503
- data/test/build.yml +0 -16
- data/test/tc_bee_task_python.rb +0 -27
- data/test/test_build.rb +0 -26
- data/test/test_build_listener.rb +0 -110
- data/test/ts_bee_python.rb +0 -26
- data/tools/common/__init__.py +0 -5
- data/tools/common/common/__init__.py +0 -140
- data/tools/common/common/__pkginfo__.py +0 -43
- data/tools/common/common/adbh.py +0 -35
- data/tools/common/common/cache.py +0 -114
- data/tools/common/common/changelog.py +0 -234
- data/tools/common/common/clcommands.py +0 -181
- data/tools/common/common/cli.py +0 -212
- data/tools/common/common/compat.py +0 -328
- data/tools/common/common/configuration.py +0 -1087
- data/tools/common/common/contexts.py +0 -58
- data/tools/common/common/corbautils.py +0 -117
- data/tools/common/common/daemon.py +0 -171
- data/tools/common/common/date.py +0 -279
- data/tools/common/common/db.py +0 -49
- data/tools/common/common/dbf.py +0 -229
- data/tools/common/common/debugger.py +0 -208
- data/tools/common/common/decorators.py +0 -190
- data/tools/common/common/deprecation.py +0 -118
- data/tools/common/common/fileutils.py +0 -409
- data/tools/common/common/graph.py +0 -259
- data/tools/common/common/html.py +0 -142
- data/tools/common/common/interface.py +0 -76
- data/tools/common/common/logging_ext.py +0 -166
- data/tools/common/common/modutils.py +0 -670
- data/tools/common/common/optik_ext.py +0 -383
- data/tools/common/common/optparser.py +0 -92
- data/tools/common/common/pdf_ext.py +0 -111
- data/tools/common/common/proc.py +0 -276
- data/tools/common/common/pyro_ext.py +0 -146
- data/tools/common/common/pytest.py +0 -754
- data/tools/common/common/shellutils.py +0 -383
- data/tools/common/common/sphinx_ext.py +0 -87
- data/tools/common/common/sphinxutils.py +0 -122
- data/tools/common/common/sqlgen.py +0 -31
- data/tools/common/common/table.py +0 -930
- data/tools/common/common/tasksqueue.py +0 -97
- data/tools/common/common/test/__init__.py +0 -1
- data/tools/common/common/test/data/ChangeLog +0 -184
- data/tools/common/common/test/data/MyPyPa-0.1.0-py2.5.egg +0 -0
- data/tools/common/common/test/data/__init__.py +0 -1
- data/tools/common/common/test/data/content_differ_dir/NOTHING +0 -0
- data/tools/common/common/test/data/content_differ_dir/README +0 -1
- data/tools/common/common/test/data/content_differ_dir/subdir/coin +0 -1
- data/tools/common/common/test/data/content_differ_dir/subdir/toto.txt +0 -53
- data/tools/common/common/test/data/file_differ_dir/NOTHING +0 -0
- data/tools/common/common/test/data/file_differ_dir/README +0 -1
- data/tools/common/common/test/data/file_differ_dir/subdir/toto.txt +0 -53
- data/tools/common/common/test/data/file_differ_dir/subdirtwo/Hello +0 -0
- data/tools/common/common/test/data/find_test/__init__.py +0 -0
- data/tools/common/common/test/data/find_test/foo.txt +0 -0
- data/tools/common/common/test/data/find_test/module.py +0 -0
- data/tools/common/common/test/data/find_test/module2.py +0 -0
- data/tools/common/common/test/data/find_test/newlines.txt +0 -0
- data/tools/common/common/test/data/find_test/noendingnewline.py +0 -0
- data/tools/common/common/test/data/find_test/nonregr.py +0 -0
- data/tools/common/common/test/data/find_test/normal_file.txt +0 -0
- data/tools/common/common/test/data/find_test/spam.txt +0 -0
- data/tools/common/common/test/data/find_test/sub/doc.txt +0 -0
- data/tools/common/common/test/data/find_test/sub/momo.py +0 -0
- data/tools/common/common/test/data/find_test/test.ini +0 -0
- data/tools/common/common/test/data/find_test/test1.msg +0 -0
- data/tools/common/common/test/data/find_test/test2.msg +0 -0
- data/tools/common/common/test/data/find_test/write_protected_file.txt +0 -0
- data/tools/common/common/test/data/foo.txt +0 -9
- data/tools/common/common/test/data/module.py +0 -88
- data/tools/common/common/test/data/module2.py +0 -77
- data/tools/common/common/test/data/newlines.txt +0 -3
- data/tools/common/common/test/data/noendingnewline.py +0 -36
- data/tools/common/common/test/data/nonregr.py +0 -14
- data/tools/common/common/test/data/normal_file.txt +0 -0
- data/tools/common/common/test/data/reference_dir/NOTHING +0 -0
- data/tools/common/common/test/data/reference_dir/README +0 -1
- data/tools/common/common/test/data/reference_dir/subdir/coin +0 -1
- data/tools/common/common/test/data/reference_dir/subdir/toto.txt +0 -53
- data/tools/common/common/test/data/same_dir/NOTHING +0 -0
- data/tools/common/common/test/data/same_dir/README +0 -1
- data/tools/common/common/test/data/same_dir/subdir/coin +0 -1
- data/tools/common/common/test/data/same_dir/subdir/toto.txt +0 -53
- data/tools/common/common/test/data/spam.txt +0 -9
- data/tools/common/common/test/data/sub/doc.txt +0 -1
- data/tools/common/common/test/data/sub/momo.py +0 -1
- data/tools/common/common/test/data/subdir_differ_dir/NOTHING +0 -0
- data/tools/common/common/test/data/subdir_differ_dir/README +0 -1
- data/tools/common/common/test/data/subdir_differ_dir/subdir/coin +0 -1
- data/tools/common/common/test/data/subdir_differ_dir/subdir/toto.txt +0 -53
- data/tools/common/common/test/data/test.ini +0 -20
- data/tools/common/common/test/data/test1.msg +0 -30
- data/tools/common/common/test/data/test2.msg +0 -42
- data/tools/common/common/test/data/write_protected_file.txt +0 -0
- data/tools/common/common/test/foomod.py +0 -17
- data/tools/common/common/test/unittest_cache.py +0 -129
- data/tools/common/common/test/unittest_changelog.py +0 -37
- data/tools/common/common/test/unittest_compat.py +0 -239
- data/tools/common/common/test/unittest_configuration.py +0 -348
- data/tools/common/common/test/unittest_date.py +0 -154
- data/tools/common/common/test/unittest_decorators.py +0 -62
- data/tools/common/common/test/unittest_deprecation.py +0 -76
- data/tools/common/common/test/unittest_fileutils.py +0 -133
- data/tools/common/common/test/unittest_graph.py +0 -50
- data/tools/common/common/test/unittest_html.py +0 -76
- data/tools/common/common/test/unittest_interface.py +0 -87
- data/tools/common/common/test/unittest_modutils.py +0 -244
- data/tools/common/common/test/unittest_pytest.py +0 -50
- data/tools/common/common/test/unittest_shellutils.py +0 -248
- data/tools/common/common/test/unittest_table.py +0 -448
- data/tools/common/common/test/unittest_taskqueue.py +0 -71
- data/tools/common/common/test/unittest_testlib.py +0 -956
- data/tools/common/common/test/unittest_textutils.py +0 -247
- data/tools/common/common/test/unittest_tree.py +0 -248
- data/tools/common/common/test/unittest_umessage.py +0 -55
- data/tools/common/common/test/unittest_ureports_html.py +0 -64
- data/tools/common/common/test/unittest_ureports_text.py +0 -105
- data/tools/common/common/test/unittest_xmlutils.py +0 -75
- data/tools/common/common/test/utils.py +0 -87
- data/tools/common/common/testlib.py +0 -1927
- data/tools/common/common/textutils.py +0 -476
- data/tools/common/common/tree.py +0 -372
- data/tools/common/common/umessage.py +0 -161
- data/tools/common/common/ureports/__init__.py +0 -174
- data/tools/common/common/ureports/docbook_writer.py +0 -139
- data/tools/common/common/ureports/html_writer.py +0 -131
- data/tools/common/common/ureports/nodes.py +0 -201
- data/tools/common/common/ureports/text_writer.py +0 -140
- data/tools/common/common/vcgutils.py +0 -216
- data/tools/common/common/visitor.py +0 -107
- data/tools/common/common/xmlrpcutils.py +0 -136
- data/tools/common/common/xmlutils.py +0 -61
- data/tools/coverage/coverage.py +0 -602
- data/tools/epydoc/__init__.py +0 -227
- data/tools/epydoc/__init__.pyc +0 -0
- data/tools/epydoc/apidoc.py +0 -2203
- data/tools/epydoc/apidoc.pyc +0 -0
- data/tools/epydoc/checker.py +0 -349
- data/tools/epydoc/checker.pyc +0 -0
- data/tools/epydoc/cli.py +0 -1470
- data/tools/epydoc/cli.pyc +0 -0
- data/tools/epydoc/compat.py +0 -250
- data/tools/epydoc/compat.pyc +0 -0
- data/tools/epydoc/docbuilder.py +0 -1358
- data/tools/epydoc/docbuilder.pyc +0 -0
- data/tools/epydoc/docintrospecter.py +0 -1056
- data/tools/epydoc/docintrospecter.pyc +0 -0
- data/tools/epydoc/docparser.py +0 -2113
- data/tools/epydoc/docparser.pyc +0 -0
- data/tools/epydoc/docstringparser.py +0 -1111
- data/tools/epydoc/docstringparser.pyc +0 -0
- data/tools/epydoc/docwriter/__init__.py +0 -12
- data/tools/epydoc/docwriter/__init__.pyc +0 -0
- data/tools/epydoc/docwriter/dotgraph.py +0 -1351
- data/tools/epydoc/docwriter/dotgraph.pyc +0 -0
- data/tools/epydoc/docwriter/html.py +0 -3491
- data/tools/epydoc/docwriter/html.pyc +0 -0
- data/tools/epydoc/docwriter/html_colorize.py +0 -909
- data/tools/epydoc/docwriter/html_colorize.pyc +0 -0
- data/tools/epydoc/docwriter/html_css.py +0 -550
- data/tools/epydoc/docwriter/html_css.pyc +0 -0
- data/tools/epydoc/docwriter/html_help.py +0 -190
- data/tools/epydoc/docwriter/html_help.pyc +0 -0
- data/tools/epydoc/docwriter/latex.py +0 -1187
- data/tools/epydoc/docwriter/latex.pyc +0 -0
- data/tools/epydoc/docwriter/plaintext.py +0 -276
- data/tools/epydoc/docwriter/plaintext.pyc +0 -0
- data/tools/epydoc/docwriter/xlink.py +0 -505
- data/tools/epydoc/docwriter/xlink.pyc +0 -0
- data/tools/epydoc/gui.py +0 -1148
- data/tools/epydoc/gui.pyc +0 -0
- data/tools/epydoc/log.py +0 -204
- data/tools/epydoc/log.pyc +0 -0
- data/tools/epydoc/markup/__init__.py +0 -623
- data/tools/epydoc/markup/__init__.pyc +0 -0
- data/tools/epydoc/markup/doctest.py +0 -311
- data/tools/epydoc/markup/doctest.pyc +0 -0
- data/tools/epydoc/markup/epytext.py +0 -2116
- data/tools/epydoc/markup/epytext.pyc +0 -0
- data/tools/epydoc/markup/javadoc.py +0 -250
- data/tools/epydoc/markup/javadoc.pyc +0 -0
- data/tools/epydoc/markup/plaintext.py +0 -78
- data/tools/epydoc/markup/plaintext.pyc +0 -0
- data/tools/epydoc/markup/pyval_repr.py +0 -532
- data/tools/epydoc/markup/pyval_repr.pyc +0 -0
- data/tools/epydoc/markup/restructuredtext.py +0 -906
- data/tools/epydoc/markup/restructuredtext.pyc +0 -0
- data/tools/epydoc/test/__init__.py +0 -97
- data/tools/epydoc/test/__init__.pyc +0 -0
- data/tools/epydoc/test/util.py +0 -226
- data/tools/epydoc/test/util.pyc +0 -0
- data/tools/epydoc/util.py +0 -289
- data/tools/epydoc/util.pyc +0 -0
- data/tools/logilab/logilab/__init__.py +0 -5
- data/tools/logilab/logilab/astng/__init__.py +0 -82
- data/tools/logilab/logilab/astng/__pkginfo__.py +0 -76
- data/tools/logilab/logilab/astng/_exceptions.py +0 -64
- data/tools/logilab/logilab/astng/_nodes_ast.py +0 -667
- data/tools/logilab/logilab/astng/_nodes_compiler.py +0 -758
- data/tools/logilab/logilab/astng/bases.py +0 -608
- data/tools/logilab/logilab/astng/builder.py +0 -239
- data/tools/logilab/logilab/astng/inference.py +0 -426
- data/tools/logilab/logilab/astng/inspector.py +0 -289
- data/tools/logilab/logilab/astng/manager.py +0 -421
- data/tools/logilab/logilab/astng/mixins.py +0 -165
- data/tools/logilab/logilab/astng/node_classes.py +0 -848
- data/tools/logilab/logilab/astng/nodes.py +0 -85
- data/tools/logilab/logilab/astng/nodes_as_string.py +0 -389
- data/tools/logilab/logilab/astng/patchcomptransformer.py +0 -159
- data/tools/logilab/logilab/astng/protocols.py +0 -333
- data/tools/logilab/logilab/astng/raw_building.py +0 -212
- data/tools/logilab/logilab/astng/rebuilder.py +0 -307
- data/tools/logilab/logilab/astng/scoped_nodes.py +0 -951
- data/tools/logilab/logilab/astng/test/__init__.py +0 -19
- data/tools/logilab/logilab/astng/test/data/MyPyPa-0.1.0-py2.5.egg +0 -0
- data/tools/logilab/logilab/astng/test/data/MyPyPa-0.1.0-py2.5.zip +0 -0
- data/tools/logilab/logilab/astng/test/data/SSL1/Connection1.py +0 -33
- data/tools/logilab/logilab/astng/test/data/SSL1/__init__.py +0 -20
- data/tools/logilab/logilab/astng/test/data/__init__.py +0 -20
- data/tools/logilab/logilab/astng/test/data/all.py +0 -29
- data/tools/logilab/logilab/astng/test/data/appl/__init__.py +0 -23
- data/tools/logilab/logilab/astng/test/data/appl/myConnection.py +0 -30
- data/tools/logilab/logilab/astng/test/data/format.py +0 -34
- data/tools/logilab/logilab/astng/test/data/module.py +0 -90
- data/tools/logilab/logilab/astng/test/data/module2.py +0 -112
- data/tools/logilab/logilab/astng/test/data/noendingnewline.py +0 -57
- data/tools/logilab/logilab/astng/test/data/nonregr.py +0 -76
- data/tools/logilab/logilab/astng/test/data/notall.py +0 -28
- data/tools/logilab/logilab/astng/test/data2/__init__.py +0 -20
- data/tools/logilab/logilab/astng/test/data2/clientmodule_test.py +0 -51
- data/tools/logilab/logilab/astng/test/data2/suppliermodule_test.py +0 -32
- data/tools/logilab/logilab/astng/test/regrtest.py +0 -135
- data/tools/logilab/logilab/astng/test/regrtest_data/absimport.py +0 -22
- data/tools/logilab/logilab/astng/test/regrtest_data/descriptor_crash.py +0 -31
- data/tools/logilab/logilab/astng/test/regrtest_data/import_package_subpackage_module.py +0 -68
- data/tools/logilab/logilab/astng/test/regrtest_data/package/__init__.py +0 -24
- data/tools/logilab/logilab/astng/test/regrtest_data/package/subpackage/__init__.py +0 -20
- data/tools/logilab/logilab/astng/test/regrtest_data/package/subpackage/module.py +0 -20
- data/tools/logilab/logilab/astng/test/unittest_builder.py +0 -684
- data/tools/logilab/logilab/astng/test/unittest_inference.py +0 -1112
- data/tools/logilab/logilab/astng/test/unittest_inspector.py +0 -105
- data/tools/logilab/logilab/astng/test/unittest_lookup.py +0 -302
- data/tools/logilab/logilab/astng/test/unittest_manager.py +0 -98
- data/tools/logilab/logilab/astng/test/unittest_nodes.py +0 -302
- data/tools/logilab/logilab/astng/test/unittest_scoped_nodes.py +0 -501
- data/tools/logilab/logilab/astng/test/unittest_utils.py +0 -104
- data/tools/logilab/logilab/astng/utils.py +0 -342
- data/tools/logilab/logilab/common/__init__.py +0 -140
- data/tools/logilab/logilab/common/__pkginfo__.py +0 -43
- data/tools/logilab/logilab/common/adbh.py +0 -35
- data/tools/logilab/logilab/common/cache.py +0 -114
- data/tools/logilab/logilab/common/changelog.py +0 -234
- data/tools/logilab/logilab/common/clcommands.py +0 -181
- data/tools/logilab/logilab/common/cli.py +0 -212
- data/tools/logilab/logilab/common/compat.py +0 -328
- data/tools/logilab/logilab/common/configuration.py +0 -1087
- data/tools/logilab/logilab/common/contexts.py +0 -58
- data/tools/logilab/logilab/common/corbautils.py +0 -117
- data/tools/logilab/logilab/common/daemon.py +0 -171
- data/tools/logilab/logilab/common/date.py +0 -279
- data/tools/logilab/logilab/common/db.py +0 -49
- data/tools/logilab/logilab/common/dbf.py +0 -229
- data/tools/logilab/logilab/common/debugger.py +0 -208
- data/tools/logilab/logilab/common/decorators.py +0 -190
- data/tools/logilab/logilab/common/deprecation.py +0 -118
- data/tools/logilab/logilab/common/fileutils.py +0 -409
- data/tools/logilab/logilab/common/graph.py +0 -259
- data/tools/logilab/logilab/common/html.py +0 -142
- data/tools/logilab/logilab/common/interface.py +0 -76
- data/tools/logilab/logilab/common/logging_ext.py +0 -166
- data/tools/logilab/logilab/common/modutils.py +0 -670
- data/tools/logilab/logilab/common/optik_ext.py +0 -383
- data/tools/logilab/logilab/common/optparser.py +0 -92
- data/tools/logilab/logilab/common/pdf_ext.py +0 -111
- data/tools/logilab/logilab/common/proc.py +0 -276
- data/tools/logilab/logilab/common/pyro_ext.py +0 -146
- data/tools/logilab/logilab/common/pytest.py +0 -754
- data/tools/logilab/logilab/common/shellutils.py +0 -383
- data/tools/logilab/logilab/common/sphinx_ext.py +0 -87
- data/tools/logilab/logilab/common/sphinxutils.py +0 -122
- data/tools/logilab/logilab/common/sqlgen.py +0 -31
- data/tools/logilab/logilab/common/table.py +0 -930
- data/tools/logilab/logilab/common/tasksqueue.py +0 -97
- data/tools/logilab/logilab/common/test/__init__.py +0 -1
- data/tools/logilab/logilab/common/test/data/ChangeLog +0 -184
- data/tools/logilab/logilab/common/test/data/MyPyPa-0.1.0-py2.5.egg +0 -0
- data/tools/logilab/logilab/common/test/data/__init__.py +0 -1
- data/tools/logilab/logilab/common/test/data/content_differ_dir/NOTHING +0 -0
- data/tools/logilab/logilab/common/test/data/content_differ_dir/README +0 -1
- data/tools/logilab/logilab/common/test/data/content_differ_dir/subdir/coin +0 -1
- data/tools/logilab/logilab/common/test/data/content_differ_dir/subdir/toto.txt +0 -53
- data/tools/logilab/logilab/common/test/data/file_differ_dir/NOTHING +0 -0
- data/tools/logilab/logilab/common/test/data/file_differ_dir/README +0 -1
- data/tools/logilab/logilab/common/test/data/file_differ_dir/subdir/toto.txt +0 -53
- data/tools/logilab/logilab/common/test/data/file_differ_dir/subdirtwo/Hello +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/__init__.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/foo.txt +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/module.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/module2.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/newlines.txt +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/noendingnewline.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/nonregr.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/normal_file.txt +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/spam.txt +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/sub/doc.txt +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/sub/momo.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/test.ini +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/test1.msg +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/test2.msg +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/write_protected_file.txt +0 -0
- data/tools/logilab/logilab/common/test/data/foo.txt +0 -9
- data/tools/logilab/logilab/common/test/data/module.py +0 -88
- data/tools/logilab/logilab/common/test/data/module2.py +0 -77
- data/tools/logilab/logilab/common/test/data/newlines.txt +0 -3
- data/tools/logilab/logilab/common/test/data/noendingnewline.py +0 -36
- data/tools/logilab/logilab/common/test/data/nonregr.py +0 -14
- data/tools/logilab/logilab/common/test/data/normal_file.txt +0 -0
- data/tools/logilab/logilab/common/test/data/reference_dir/NOTHING +0 -0
- data/tools/logilab/logilab/common/test/data/reference_dir/README +0 -1
- data/tools/logilab/logilab/common/test/data/reference_dir/subdir/coin +0 -1
- data/tools/logilab/logilab/common/test/data/reference_dir/subdir/toto.txt +0 -53
- data/tools/logilab/logilab/common/test/data/same_dir/NOTHING +0 -0
- data/tools/logilab/logilab/common/test/data/same_dir/README +0 -1
- data/tools/logilab/logilab/common/test/data/same_dir/subdir/coin +0 -1
- data/tools/logilab/logilab/common/test/data/same_dir/subdir/toto.txt +0 -53
- data/tools/logilab/logilab/common/test/data/spam.txt +0 -9
- data/tools/logilab/logilab/common/test/data/sub/doc.txt +0 -1
- data/tools/logilab/logilab/common/test/data/sub/momo.py +0 -1
- data/tools/logilab/logilab/common/test/data/subdir_differ_dir/NOTHING +0 -0
- data/tools/logilab/logilab/common/test/data/subdir_differ_dir/README +0 -1
- data/tools/logilab/logilab/common/test/data/subdir_differ_dir/subdir/coin +0 -1
- data/tools/logilab/logilab/common/test/data/subdir_differ_dir/subdir/toto.txt +0 -53
- data/tools/logilab/logilab/common/test/data/test.ini +0 -20
- data/tools/logilab/logilab/common/test/data/test1.msg +0 -30
- data/tools/logilab/logilab/common/test/data/test2.msg +0 -42
- data/tools/logilab/logilab/common/test/data/write_protected_file.txt +0 -0
- data/tools/logilab/logilab/common/test/foomod.py +0 -17
- data/tools/logilab/logilab/common/test/unittest_cache.py +0 -129
- data/tools/logilab/logilab/common/test/unittest_changelog.py +0 -37
- data/tools/logilab/logilab/common/test/unittest_compat.py +0 -239
- data/tools/logilab/logilab/common/test/unittest_configuration.py +0 -348
- data/tools/logilab/logilab/common/test/unittest_date.py +0 -154
- data/tools/logilab/logilab/common/test/unittest_decorators.py +0 -62
- data/tools/logilab/logilab/common/test/unittest_deprecation.py +0 -76
- data/tools/logilab/logilab/common/test/unittest_fileutils.py +0 -133
- data/tools/logilab/logilab/common/test/unittest_graph.py +0 -50
- data/tools/logilab/logilab/common/test/unittest_html.py +0 -76
- data/tools/logilab/logilab/common/test/unittest_interface.py +0 -87
- data/tools/logilab/logilab/common/test/unittest_modutils.py +0 -244
- data/tools/logilab/logilab/common/test/unittest_pytest.py +0 -50
- data/tools/logilab/logilab/common/test/unittest_shellutils.py +0 -248
- data/tools/logilab/logilab/common/test/unittest_table.py +0 -448
- data/tools/logilab/logilab/common/test/unittest_taskqueue.py +0 -71
- data/tools/logilab/logilab/common/test/unittest_testlib.py +0 -956
- data/tools/logilab/logilab/common/test/unittest_textutils.py +0 -247
- data/tools/logilab/logilab/common/test/unittest_tree.py +0 -248
- data/tools/logilab/logilab/common/test/unittest_umessage.py +0 -55
- data/tools/logilab/logilab/common/test/unittest_ureports_html.py +0 -64
- data/tools/logilab/logilab/common/test/unittest_ureports_text.py +0 -105
- data/tools/logilab/logilab/common/test/unittest_xmlutils.py +0 -75
- data/tools/logilab/logilab/common/test/utils.py +0 -87
- data/tools/logilab/logilab/common/testlib.py +0 -1927
- data/tools/logilab/logilab/common/textutils.py +0 -476
- data/tools/logilab/logilab/common/tree.py +0 -372
- data/tools/logilab/logilab/common/umessage.py +0 -161
- data/tools/logilab/logilab/common/ureports/__init__.py +0 -174
- data/tools/logilab/logilab/common/ureports/docbook_writer.py +0 -139
- data/tools/logilab/logilab/common/ureports/html_writer.py +0 -131
- data/tools/logilab/logilab/common/ureports/nodes.py +0 -201
- data/tools/logilab/logilab/common/ureports/text_writer.py +0 -140
- data/tools/logilab/logilab/common/vcgutils.py +0 -216
- data/tools/logilab/logilab/common/visitor.py +0 -107
- data/tools/logilab/logilab/common/xmlrpcutils.py +0 -136
- data/tools/logilab/logilab/common/xmlutils.py +0 -61
- data/tools/pychecker/COPYRIGHT +0 -31
- data/tools/pychecker/ChangeLog +0 -349
- data/tools/pychecker/CodeChecks.py +0 -1969
- data/tools/pychecker/CodeChecks.pyc +0 -0
- data/tools/pychecker/CodeChecks.pyo +0 -0
- data/tools/pychecker/Config.py +0 -475
- data/tools/pychecker/Config.pyc +0 -0
- data/tools/pychecker/Config.pyo +0 -0
- data/tools/pychecker/KNOWN_BUGS +0 -100
- data/tools/pychecker/MAINTAINERS +0 -81
- data/tools/pychecker/NEWS +0 -406
- data/tools/pychecker/OP.py +0 -131
- data/tools/pychecker/OP.pyc +0 -0
- data/tools/pychecker/OP.pyo +0 -0
- data/tools/pychecker/OptionTypes.py +0 -117
- data/tools/pychecker/OptionTypes.pyc +0 -0
- data/tools/pychecker/OptionTypes.pyo +0 -0
- data/tools/pychecker/README +0 -152
- data/tools/pychecker/Stack.py +0 -115
- data/tools/pychecker/Stack.pyc +0 -0
- data/tools/pychecker/Stack.pyo +0 -0
- data/tools/pychecker/TODO +0 -101
- data/tools/pychecker/VERSION +0 -1
- data/tools/pychecker/Warning.py +0 -50
- data/tools/pychecker/Warning.pyc +0 -0
- data/tools/pychecker/Warning.pyo +0 -0
- data/tools/pychecker/__init__.py +0 -17
- data/tools/pychecker/__init__.pyc +0 -0
- data/tools/pychecker/__init__.pyo +0 -0
- data/tools/pychecker/checker.py +0 -961
- data/tools/pychecker/checker.pyc +0 -0
- data/tools/pychecker/checker.pyo +0 -0
- data/tools/pychecker/function.py +0 -159
- data/tools/pychecker/function.pyc +0 -0
- data/tools/pychecker/function.pyo +0 -0
- data/tools/pychecker/msgs.py +0 -175
- data/tools/pychecker/msgs.pyc +0 -0
- data/tools/pychecker/msgs.pyo +0 -0
- data/tools/pychecker/options.py +0 -275
- data/tools/pychecker/options.pyc +0 -0
- data/tools/pychecker/options.pyo +0 -0
- data/tools/pychecker/pcmodules.py +0 -19
- data/tools/pychecker/pcmodules.pyc +0 -0
- data/tools/pychecker/pcmodules.pyo +0 -0
- data/tools/pychecker/printer.py +0 -47
- data/tools/pychecker/printer.pyc +0 -0
- data/tools/pychecker/printer.pyo +0 -0
- data/tools/pychecker/python.py +0 -427
- data/tools/pychecker/python.pyc +0 -0
- data/tools/pychecker/python.pyo +0 -0
- data/tools/pychecker/utils.py +0 -102
- data/tools/pychecker/utils.pyc +0 -0
- data/tools/pychecker/utils.pyo +0 -0
- data/tools/pychecker/warn.py +0 -778
- data/tools/pychecker/warn.pyc +0 -0
- data/tools/pychecker/warn.pyo +0 -0
- data/tools/pylint2/pylint/__init__.py +0 -16
- data/tools/pylint2/pylint/__pkginfo__.py +0 -67
- data/tools/pylint2/pylint/checkers/__init__.py +0 -155
- data/tools/pylint2/pylint/checkers/base.py +0 -749
- data/tools/pylint2/pylint/checkers/classes.py +0 -527
- data/tools/pylint2/pylint/checkers/design_analysis.py +0 -344
- data/tools/pylint2/pylint/checkers/exceptions.py +0 -183
- data/tools/pylint2/pylint/checkers/format.py +0 -367
- data/tools/pylint2/pylint/checkers/imports.py +0 -379
- data/tools/pylint2/pylint/checkers/logging.py +0 -98
- data/tools/pylint2/pylint/checkers/misc.py +0 -128
- data/tools/pylint2/pylint/checkers/newstyle.py +0 -107
- data/tools/pylint2/pylint/checkers/raw_metrics.py +0 -125
- data/tools/pylint2/pylint/checkers/similar.py +0 -333
- data/tools/pylint2/pylint/checkers/string_format.py +0 -239
- data/tools/pylint2/pylint/checkers/typecheck.py +0 -364
- data/tools/pylint2/pylint/checkers/utils.py +0 -208
- data/tools/pylint2/pylint/checkers/variables.py +0 -498
- data/tools/pylint2/pylint/config.py +0 -149
- data/tools/pylint2/pylint/epylint.py +0 -149
- data/tools/pylint2/pylint/gui.py +0 -433
- data/tools/pylint2/pylint/interfaces.py +0 -98
- data/tools/pylint2/pylint/lint.py +0 -914
- data/tools/pylint2/pylint/pyreverse/__init__.py +0 -5
- data/tools/pylint2/pylint/pyreverse/diadefslib.py +0 -229
- data/tools/pylint2/pylint/pyreverse/diagrams.py +0 -247
- data/tools/pylint2/pylint/pyreverse/main.py +0 -123
- data/tools/pylint2/pylint/pyreverse/utils.py +0 -131
- data/tools/pylint2/pylint/pyreverse/writer.py +0 -196
- data/tools/pylint2/pylint/reporters/__init__.py +0 -67
- data/tools/pylint2/pylint/reporters/guireporter.py +0 -36
- data/tools/pylint2/pylint/reporters/html.py +0 -69
- data/tools/pylint2/pylint/reporters/text.py +0 -156
- data/tools/pylint2/pylint/utils.py +0 -518
- 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
|
-
|