Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/op/console_python.py')
-rw-r--r--release/scripts/op/console_python.py37
1 files changed, 23 insertions, 14 deletions
diff --git a/release/scripts/op/console_python.py b/release/scripts/op/console_python.py
index 601fab23617..98d3f3f74a3 100644
--- a/release/scripts/op/console_python.py
+++ b/release/scripts/op/console_python.py
@@ -83,6 +83,9 @@ def get_console(console_id):
namespace["bpy"] = bpy
namespace["C"] = bpy.context
+ namespace.update(__import__("mathutils").__dict__) # from mathutils import *
+ namespace.update(__import__("math").__dict__) # from math import *
+
console = InteractiveConsole(locals=namespace, filename="<blender_console>")
if _BPY_MAIN_OWN:
@@ -110,9 +113,6 @@ def execute(context):
except:
return {'CANCELLED'}
- if sc.console_type != 'PYTHON':
- return {'CANCELLED'}
-
console, stdout, stderr = get_console(hash(context.region))
# redirect output
@@ -161,6 +161,10 @@ def execute(context):
stdout.truncate(0)
stderr.truncate(0)
+ # special exception. its possible the command loaded a new user interface
+ if hash(sc) != hash(context.space_data):
+ return
+
bpy.ops.console.scrollback_append(text=sc.prompt + line, type='INPUT')
if is_multiline:
@@ -183,8 +187,14 @@ def execute(context):
# restore the stdin
sys.stdin = stdin_backup
+ # execute any hooks
+ for func, args in execute.hooks:
+ func(*args)
+
return {'FINISHED'}
+execute.hooks = []
+
def autocomplete(context):
from console import intellisense
@@ -196,9 +206,6 @@ def autocomplete(context):
if not console:
return {'CANCELLED'}
- if sc.console_type != 'PYTHON':
- return {'CANCELLED'}
-
# dont allow the stdin to be used, can lock blender.
# note: unlikely stdin would be used for autocomp. but its possible.
stdin_backup = sys.stdin
@@ -257,14 +264,16 @@ def banner(context):
sc = context.space_data
version_string = sys.version.strip().replace('\n', ' ')
- add_scrollback(" * Python Interactive Console %s *" % version_string, 'OUTPUT')
- add_scrollback("Command History: Up/Down Arrow", 'OUTPUT')
- add_scrollback("Cursor: Left/Right Home/End", 'OUTPUT')
- add_scrollback("Remove: Backspace/Delete", 'OUTPUT')
- add_scrollback("Execute: Enter", 'OUTPUT')
- add_scrollback("Autocomplete: Ctrl+Space", 'OUTPUT')
- add_scrollback("Ctrl +/- Wheel: Zoom", 'OUTPUT')
- add_scrollback("Builtin Modules: bpy, bpy.data, bpy.ops, bpy.props, bpy.types, bpy.context, bgl, blf, mathutils, geometry", 'OUTPUT')
+ add_scrollback("PYTHON INTERACTIVE CONSOLE %s" % version_string, 'OUTPUT')
+ add_scrollback("", 'OUTPUT')
+ add_scrollback("Command History: Up/Down Arrow", 'OUTPUT')
+ add_scrollback("Cursor: Left/Right Home/End", 'OUTPUT')
+ add_scrollback("Remove: Backspace/Delete", 'OUTPUT')
+ add_scrollback("Execute: Enter", 'OUTPUT')
+ add_scrollback("Autocomplete: Ctrl+Space", 'OUTPUT')
+ add_scrollback("Ctrl +/- Wheel: Zoom", 'OUTPUT')
+ add_scrollback("Builtin Modules: bpy, bpy.data, bpy.ops, bpy.props, bpy.types, bpy.context, bgl, blf, mathutils", 'OUTPUT')
+ add_scrollback("Convenience Imports: from mathutils import *; from math import *", 'OUTPUT')
add_scrollback("", 'OUTPUT')
add_scrollback(" WARNING!!! Blender 2.5 API is subject to change, see API reference for more info.", 'ERROR')
add_scrollback("", 'OUTPUT')