From bddaa7803f08855b49e6e7490dcdf61b81772062 Mon Sep 17 00:00:00 2001 From: chick Date: Mon, 28 Apr 2014 10:50:17 -0700 Subject: [PATCH] big name refactor --- .gitignore | 2 + ast_tool_box | 54 ------------------ ast_tool_box/.DS_Store | Bin 0 -> 6148 bytes ast_tool_box/__init__.py | 16 ++++++ .../controllers/__init__.py | 0 .../controllers/code_presenter.py | 15 +++-- .../controllers/shell.py | 2 +- .../controllers/transform_presenter.py | 8 +-- .../controllers/tree_transform_controller.py | 4 +- .../ast_tool_box.py => ast_tool_box/main.py | 33 +++++------ .../models/__init__.py | 0 .../models/ast_transformer_manager.py | 2 +- .../models/ast_tree_manager.py | 0 .../models/code_models/__init__.py | 0 .../models/code_models/code_model.py | 2 +- .../models/transform_models/__init__.py | 0 .../models/transform_models/transform_file.py | 2 +- .../transform_models/transform_model.py | 2 +- .../transformers/__init__.py | 0 .../transformers/identity_transform.py | 0 .../transformers/tree_chopper.py | 0 {ast_viewer => ast_tool_box}/util.py | 0 .../views/__init__.py | 0 .../views/code_views/__init__.py | 0 .../views/code_views/ast_tree_widget.py | 4 +- .../views/code_views/code_pane.py | 12 ++-- .../views/editor_widget.py | 2 +- .../views/highlighter.py | 0 .../views/search_widget.py | 0 .../views/transform_views/__init__.py | 0 .../views/transform_views/transform_pane.py | 6 +- .../transform_views/transform_tree_widget.py | 13 +++-- ast_viewer/__init__.py | 3 - pyastviewer | 53 ----------------- setup.py | 16 +++--- shell | 25 -------- test/test_ast_trees.py | 6 +- test/test_reload_transformers.py | 8 +-- test/test_transformers.py | 10 ++-- test/test_tree_transform_controller.py | 6 +- test/test_util.py | 14 ++--- 41 files changed, 101 insertions(+), 219 deletions(-) delete mode 100755 ast_tool_box create mode 100644 ast_tool_box/.DS_Store create mode 100644 ast_tool_box/__init__.py rename {ast_viewer => ast_tool_box}/controllers/__init__.py (100%) rename {ast_viewer => ast_tool_box}/controllers/code_presenter.py (93%) rename {ast_viewer => ast_tool_box}/controllers/shell.py (98%) rename {ast_viewer => ast_tool_box}/controllers/transform_presenter.py (93%) rename {ast_viewer => ast_tool_box}/controllers/tree_transform_controller.py (87%) rename ast_viewer/ast_tool_box.py => ast_tool_box/main.py (91%) rename {ast_viewer => ast_tool_box}/models/__init__.py (100%) rename {ast_viewer => ast_tool_box}/models/ast_transformer_manager.py (99%) rename {ast_viewer => ast_tool_box}/models/ast_tree_manager.py (100%) rename {ast_viewer => ast_tool_box}/models/code_models/__init__.py (100%) rename {ast_viewer => ast_tool_box}/models/code_models/code_model.py (96%) rename {ast_viewer => ast_tool_box}/models/transform_models/__init__.py (100%) rename {ast_viewer => ast_tool_box}/models/transform_models/transform_file.py (99%) rename {ast_viewer => ast_tool_box}/models/transform_models/transform_model.py (98%) rename {ast_viewer => ast_tool_box}/transformers/__init__.py (100%) rename {ast_viewer => ast_tool_box}/transformers/identity_transform.py (100%) rename {ast_viewer => ast_tool_box}/transformers/tree_chopper.py (100%) rename {ast_viewer => ast_tool_box}/util.py (100%) rename {ast_viewer => ast_tool_box}/views/__init__.py (100%) rename {ast_viewer => ast_tool_box}/views/code_views/__init__.py (100%) rename {ast_viewer => ast_tool_box}/views/code_views/ast_tree_widget.py (98%) rename {ast_viewer => ast_tool_box}/views/code_views/code_pane.py (96%) rename {ast_viewer => ast_tool_box}/views/editor_widget.py (98%) rename {ast_viewer => ast_tool_box}/views/highlighter.py (100%) rename {ast_viewer => ast_tool_box}/views/search_widget.py (100%) rename {ast_viewer => ast_tool_box}/views/transform_views/__init__.py (100%) rename {ast_viewer => ast_tool_box}/views/transform_views/transform_pane.py (96%) rename {ast_viewer => ast_tool_box}/views/transform_views/transform_tree_widget.py (92%) delete mode 100644 ast_viewer/__init__.py delete mode 100755 pyastviewer delete mode 100755 shell diff --git a/.gitignore b/.gitignore index df8c599..39065fe 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ *.ipynb +.DS_Store + *pyc build diff --git a/ast_tool_box b/ast_tool_box deleted file mode 100755 index ac7a812..0000000 --- a/ast_tool_box +++ /dev/null @@ -1,54 +0,0 @@ -#!python -""" - Program that shows the program on the right and its abstract syntax tree (ast) on the left. -""" -from __future__ import print_function - -import sys -import argparse -import logging - -from PySide import QtGui - -import ast_viewer.ast_tool_box as ast_tool_box - - -logger = logging.getLogger(__name__) - - -def main(): - """ Main program to test stand alone - """ - sys.argv[0] = "AstToolBox" - app = QtGui.QApplication(sys.argv) # to allow for Qt command line arguments - remaining_argv = app.arguments() - - parser = argparse.ArgumentParser(description='Python abstract syntax tree viewer and transformer') - parser.add_argument('file_name', help='Python input file') - parser.add_argument('packages', metavar='P', nargs='*') - - parser.add_argument( - '-l', '--log-level', dest='log_level', default='warn', - choices=('debug', 'info', 'warn', 'error', 'critical'), - help="Log level. Only log messages with a level higher or equal than this " - "will be printed. Default: 'warn'" - ) - - args = parser.parse_args(args = remaining_argv[1:]) - - ast_tool_box.logging_basic_config(args.log_level.upper()) - - logger.info('Started {}'.format(ast_tool_box.PROGRAM_NAME)) - - exit_code = ast_tool_box.view( - file_name=args.file_name, - packages=args.packages, - width=1400, height=900 - ) - - logging.info('Done {}'.format(ast_tool_box.PROGRAM_NAME)) - sys.exit(exit_code) - - -if __name__ == '__main__': - ast_tool_box.main() diff --git a/ast_tool_box/.DS_Store b/ast_tool_box/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7961167542255aedd588b843c87de4ce68ed4af4 GIT binary patch literal 6148 zcmeHKyH3ME5S)b+k)TLPdB4CPoTBgr`~Z)T3a}JI?~3o@)0lk-$#Q6rXwa;*J9q0H zpKc1T7l3Ww_t(G%z?$xe4-ZT8=k5zTtBeupe8-3b1|0E%r$zPYgmW+PM$SE6XZ$0^ z!+v~x7>4K5RAr@r6p#W^Knh5KUnt-;NOQvckG2zVthInVgw+r zm=5DQW(i{R1hE%RiOkR}sl=pOjTn}6=3CYE!YMK7uo^zBPPUp*EKcY9Ta?3kqM{U# z0&@k len(sizes): diff --git a/ast_viewer/views/editor_widget.py b/ast_tool_box/views/editor_widget.py similarity index 98% rename from ast_viewer/views/editor_widget.py rename to ast_tool_box/views/editor_widget.py index 88accf6..a868b82 100644 --- a/ast_viewer/views/editor_widget.py +++ b/ast_tool_box/views/editor_widget.py @@ -1,7 +1,7 @@ __author__ = 'Chick Markley' from PySide import QtGui, QtCore -from ast_viewer.views.highlighter import Highlighter +from ast_tool_box.views.highlighter import Highlighter class EditorPane(QtGui.QPlainTextEdit): diff --git a/ast_viewer/views/highlighter.py b/ast_tool_box/views/highlighter.py similarity index 100% rename from ast_viewer/views/highlighter.py rename to ast_tool_box/views/highlighter.py diff --git a/ast_viewer/views/search_widget.py b/ast_tool_box/views/search_widget.py similarity index 100% rename from ast_viewer/views/search_widget.py rename to ast_tool_box/views/search_widget.py diff --git a/ast_viewer/views/transform_views/__init__.py b/ast_tool_box/views/transform_views/__init__.py similarity index 100% rename from ast_viewer/views/transform_views/__init__.py rename to ast_tool_box/views/transform_views/__init__.py diff --git a/ast_viewer/views/transform_views/transform_pane.py b/ast_tool_box/views/transform_views/transform_pane.py similarity index 96% rename from ast_viewer/views/transform_views/transform_pane.py rename to ast_tool_box/views/transform_views/transform_pane.py index aed0c3d..229608d 100644 --- a/ast_viewer/views/transform_views/transform_pane.py +++ b/ast_tool_box/views/transform_views/transform_pane.py @@ -3,9 +3,9 @@ from PySide import QtGui, QtCore import inspect import os -from ast_viewer.views.editor_widget import EditorPanel -from ast_viewer.views.transform_views.transform_tree_widget import TransformTreeWidget, TransformTreeWidgetItem -from ast_viewer.models.transform_models.transform_file import TransformFile, TransformThing, TransformPackage +from ast_tool_box.views.editor_widget import EditorPanel +from ast_tool_box.views.transform_views.transform_tree_widget import TransformTreeWidget, TransformTreeWidgetItem +from ast_tool_box.models.transform_models.transform_file import TransformFile, TransformThing, TransformPackage class TransformPane(QtGui.QGroupBox): """ diff --git a/ast_viewer/views/transform_views/transform_tree_widget.py b/ast_tool_box/views/transform_views/transform_tree_widget.py similarity index 92% rename from ast_viewer/views/transform_views/transform_tree_widget.py rename to ast_tool_box/views/transform_views/transform_tree_widget.py index 48484b4..474e88f 100644 --- a/ast_viewer/views/transform_views/transform_tree_widget.py +++ b/ast_tool_box/views/transform_views/transform_tree_widget.py @@ -2,10 +2,10 @@ import types import ast -from ast_viewer.views.editor_widget import EditorPane -from ast_viewer.views.search_widget import SearchLineEdit +from ast_tool_box.views.editor_widget import EditorPane +from ast_tool_box.views.search_widget import SearchLineEdit -from ast_viewer.models.transform_models.transform_file import AstTransformItem, CodeGeneratorItem +from ast_tool_box.models.transform_models.transform_file import AstTransformItem, CodeGeneratorItem from PySide import QtGui, QtCore @@ -68,7 +68,12 @@ def clicked(self, item): @QtCore.Slot(TransformTreeWidgetItem) def double_clicked(self, info): print("doubleclick on %s" % info) - if isinstance(self.currentItem(), AstTransformItem) or isinstance(self.currentItem(), CodeGeneratorItem): + print("doubleclick on %s" % self.currentItem()) + print("comparing to %s" % AstTransformItem) + print("comparing to %s" % AstTransformItem) + + if isinstance(self.currentItem().source, AstTransformItem) or\ + isinstance(self.currentItem().source, CodeGeneratorItem): self.transform_presenter.apply_current_transform() else: self.transform_pane.show_error("Only works for Ast Transforms and Code Generators") diff --git a/ast_viewer/__init__.py b/ast_viewer/__init__.py deleted file mode 100644 index e36a0f3..0000000 --- a/ast_viewer/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -__author__ = 'Chick Markley' - -__version__ = "0.5.0" diff --git a/pyastviewer b/pyastviewer deleted file mode 100755 index bb54ac8..0000000 --- a/pyastviewer +++ /dev/null @@ -1,53 +0,0 @@ -#!python -""" - Program that shows the program on the right and its abstract syntax tree (ast) on the left. -""" -from __future__ import print_function - -import sys -import argparse -import logging - -from PySide import QtGui - -from ast_viewer import astviewer - - -logger = logging.getLogger(__name__) - - -def main(): - """ Main program to test stand alone - """ - app = QtGui.QApplication(sys.argv) # to allow for Qt command line arguments - remaining_argv = app.arguments() - - parser = argparse.ArgumentParser(description='Python abstract syntax tree viewer') - parser.add_argument(dest='file_name', help='Python input file', nargs='?') - parser.add_argument('-m', '--mode', dest='mode', default = 'exec', - choices=('exec', 'eval', 'single'), - help="""The mode argument specifies what kind of code must be compiled; - it can be 'exec' if source_text consists of a sequence of statements, - 'eval' if it consists of a single expression, or 'single' if it - consists of a single interactive statement (in the latter case, - expression statements that evaluate to something other than None - will be printed). """) - parser.add_argument('-l', '--log-level', dest='log_level', default = 'warn', - choices=('debug', 'info', 'warn', 'error', 'critical'), - help="Log level. Only log messages with a level higher or equal than this " - "will be printed. Default: 'warn'") - - - args = parser.parse_args(args = remaining_argv[1:]) - - astviewer.logging_basic_config(args.log_level.upper()) - - logger.info('Started {}'.format(astviewer.PROGRAM_NAME)) - exit_code = astviewer.view(file_name=args.file_name, mode = args.mode, - width=1100, height=800) - logging.info('Done {}'.format(astviewer.PROGRAM_NAME)) - sys.exit(exit_code) - - -if __name__ == '__main__': - main() diff --git a/setup.py b/setup.py index 1805c5f..7681901 100644 --- a/setup.py +++ b/setup.py @@ -6,18 +6,16 @@ author="Chick Markley", author_email="chickmarkley@gmail.com", - py_modules=['ast_viewer'], + py_modules=['ast_tool_box'], packages=[ - 'ast_viewer', - 'ast_viewer.models', - 'ast_viewer.views', - 'ast_viewer.controllers', - 'ast_viewer.transformers', + 'ast_tool_box', + 'ast_tool_box.models', + 'ast_tool_box.views', + 'ast_tool_box.controllers', + 'ast_tool_box.transformers', ], - scripts=['ast_tool_box'], - requires=[ 'PySide (>=1.1.2)', 'nose', @@ -25,7 +23,7 @@ ], entry_points={ - 'console_scripts': ['ast_tool_box = ast_viewer.ast_toolbox:main'], + 'console_scripts': ['ast_tool_box = ast_tool_box.ast_toolbox:main'], } ) diff --git a/shell b/shell deleted file mode 100755 index 2f0db9e..0000000 --- a/shell +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/local/bin/python -""" - Program that shows the program on the right and its abstract syntax tree (ast) on the left. -""" -from __future__ import print_function - -import argparse -from ast_viewer.controllers.shell import AstTransformInterpreter - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="AST Transform interpreter") - parser.add_argument( - '-i', '--interactive', help='interactive mode, allows direct communication with device', action="store_true" - ) - parser.add_argument('-f', '--file', help='path to python source_text file') - parser.add_argument('-v', '--verbose', help='show more debug than you like', action="store_true") - - args = parser.parse_args() - - interpreter = AstTransformInterpreter(args.file, verbose=False) - - if args.interactive: - interpreter.interactive_mode() - else: - parser.print_usage() diff --git a/test/test_ast_trees.py b/test/test_ast_trees.py index 98dab82..072ad2f 100644 --- a/test/test_ast_trees.py +++ b/test/test_ast_trees.py @@ -5,9 +5,9 @@ from nose.tools import assert_greater, assert_is_instance, assert_equal, assert_not_equal from nose.tools import assert_is_none, assert_is_not_none -from ast_viewer.models.ast_tree_manager import AstTreeItem, AstLink, AstTreeManager -from ast_viewer.models.ast_transformer_manager import AstTransformerItem -from ast_viewer.transformers.identity_transform import NoisyIdentityTransform, IdentityTransform +from ast_tool_box.models.ast_tree_manager import AstTreeItem, AstLink, AstTreeManager +from ast_tool_box.models.ast_transformer_manager import AstTransformerItem +from ast_tool_box.transformers.identity_transform import NoisyIdentityTransform, IdentityTransform class TestAstTrees(unittest.TestCase): diff --git a/test/test_reload_transformers.py b/test/test_reload_transformers.py index 8dbd47b..6dbe2ac 100644 --- a/test/test_reload_transformers.py +++ b/test/test_reload_transformers.py @@ -4,14 +4,14 @@ import subprocess from sys import modules import imp -from ast_viewer.util import Util +from ast_tool_box.util import Util from pprint import pprint from nose.tools import assert_greater, assert_is_instance, assert_equal, assert_not_equal -from ast_viewer.models.ast_transformer_manager import AstTransformerManager -from ast_viewer.models.ast_transformer_manager import AstTransformerItem -from ast_viewer.transformers.identity_transform import NoisyIdentityTransform, IdentityTransform +from ast_tool_box.models.ast_transformer_manager import AstTransformerManager +from ast_tool_box.models.ast_transformer_manager import AstTransformerItem +from ast_tool_box.transformers.identity_transform import NoisyIdentityTransform, IdentityTransform file1 = """ import ast diff --git a/test/test_transformers.py b/test/test_transformers.py index f470c21..ca2f615 100644 --- a/test/test_transformers.py +++ b/test/test_transformers.py @@ -4,15 +4,15 @@ from nose.tools import assert_greater, assert_is_instance, assert_equal, assert_not_equal -from ast_viewer.models.ast_transformer_manager import AstTransformerManager -from ast_viewer.models.ast_transformer_manager import AstTransformerItem -from ast_viewer.transformers.identity_transform import NoisyIdentityTransform, IdentityTransform +from ast_tool_box.models.ast_transformer_manager import AstTransformerManager +from ast_tool_box.models.ast_transformer_manager import AstTransformerItem +from ast_tool_box.transformers.identity_transform import NoisyIdentityTransform, IdentityTransform class TestTransformers(unittest.TestCase): def test_basic_load(self): ntm = AstTransformerManager() - ntm.get_ast_transformers("ast_viewer.transformers.identity_transform") + ntm.get_ast_transformers("ast_tool_box.transformers.identity_transform") ntm.reload() assert_greater(ntm.count(), 0) @@ -31,7 +31,7 @@ def test_basics(self): nti = AstTransformerItem(IdentityTransform) assert_equal(nti.name(), "IdentityTransform") - assert_equal(nti.package(), "ast_viewer.transformers.identity_transform") + assert_equal(nti.package(), "ast_tool_box.transformers.identity_transform") def test_no_arg_transformer(self): nti = AstTransformerItem(IdentityTransform) diff --git a/test/test_tree_transform_controller.py b/test/test_tree_transform_controller.py index 0bbf8fe..7a7b482 100644 --- a/test/test_tree_transform_controller.py +++ b/test/test_tree_transform_controller.py @@ -3,9 +3,9 @@ from nose.tools import assert_greater, assert_is_instance, assert_equal, assert_not_equal from nose.tools import assert_is_none, assert_is_not_none -from ast_viewer.controllers.tree_transform_controller import TreeTransformController -from ast_viewer.models.ast_tree_manager import AstTreeManager, AstTreeItem, AstLink -from ast_viewer.models.ast_transformer_manager import AstTransformerManager, AstTransformerItem +from ast_tool_box.controllers.tree_transform_controller import TreeTransformController +from ast_tool_box.models.ast_tree_manager import AstTreeManager, AstTreeItem, AstLink +from ast_tool_box.models.ast_transformer_manager import AstTransformerManager, AstTransformerItem class TestTreeTransformController(unittest.TestCase): def test_create(self): diff --git a/test/test_util.py b/test/test_util.py index eb114f0..98e5aa7 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -3,12 +3,12 @@ from nose.tools import assert_equal from nose.tools import assert_true, assert_false -from ast_viewer.util import Util +from ast_tool_box.util import Util class TestUtil(unittest.TestCase): def test_is_package(self): - file_name = "../ast_viewer" + file_name = "../ast_tool_box" assert_true(Util.is_package(file_name)) @@ -17,18 +17,18 @@ def test_is_package(self): assert_false(Util.is_package(file_name)) def test_path_to_path_and_package(self): - file = "ast_viewer/test/sample.py" + file = "ast_tool_box/test/sample.py" path, package = Util.path_to_path_and_package(file) - assert_equal("ast_viewer/test", path) + assert_equal("ast_tool_box/test", path) assert_equal(package, "sample") - file = "../ast_viewer/transformers/identity_transform.py" - # file = "../ast_viewer/models/ast_transformer.py" + file = "../ast_tool_box/transformers/identity_transform.py" + # file = "../ast_tool_box/models/ast_transformer.py" print "file %s" % __file__ path, package = Util.path_to_path_and_package(file) assert_equal("..", path) - assert_equal("ast_viewer.transformers.identity_transform", package) + assert_equal("ast_tool_box.transformers.identity_transform", package)