From 1de9124a7af7802db43e86891d99b5eaed564c19 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Fri, 01 Nov 2013 22:08:51 +0000 Subject: only import plugins we use --- diff --git a/TurtleArt/taexportpython.py b/TurtleArt/taexportpython.py index 49bde06..458b886 100644 --- a/TurtleArt/taexportpython.py +++ b/TurtleArt/taexportpython.py @@ -33,7 +33,7 @@ from talogo import LogoCode from taprimitive import (ast_yield_true, Primitive, PyExportError, value_to_ast) from tautils import (debug_output, find_group, find_top_block, get_stack_name) -from tawindow import global_objects +from tawindow import (global_objects, plugins_in_use) _SETUP_CODE_START = """\ @@ -128,11 +128,8 @@ def _action_stack_to_python(block, tw, name="start"): name_id = _make_identifier(name) if name == 'start': pre_preamble = _START_STACK_START_ADD - # TODO: only add the objects we are using - for k in global_objects.keys(): - if k not in ['window', 'canvas', 'logo', 'turtles']: - pre_preamble += " %s = global_objects['%s']\n" % ( - k.lower(), k) + for k in plugins_in_use: + pre_preamble += " %s = global_objects['%s']\n" % (k.lower(), k) else: pre_preamble = '' generated_code = _indent(generated_code, 1) diff --git a/TurtleArt/taprimitive.py b/TurtleArt/taprimitive.py index 3f922b4..7ffc2ef 100644 --- a/TurtleArt/taprimitive.py +++ b/TurtleArt/taprimitive.py @@ -33,7 +33,7 @@ from talogo import (LogoCode, logoerror, NegativeRootError) from taturtle import (Turtle, Turtles) from tatype import * from tautils import debug_output -from tawindow import TurtleArtWindow, global_objects +from tawindow import (TurtleArtWindow, global_objects, plugins_in_use) from util import ast_extensions @@ -143,6 +143,8 @@ class Primitive(object): if results: for k in global_objects.keys(): if k == plugin: + if k not in plugins_in_use: + plugins_in_use.append(k) func_name = k.lower() + '.' break diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py index 7f9bde0..6d9ca0a 100644 --- a/TurtleArt/tawindow.py +++ b/TurtleArt/tawindow.py @@ -99,6 +99,7 @@ _MACROS_SUBPATH = 'macros' # the global instances of single-instance classes global_objects = {} +plugins_in_use = [] class TurtleArtWindow(): -- cgit v0.9.1