Changeset 226
- Timestamp:
- 06/10/09 11:02:47 (3 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 2 edited
-
avango-inspector/src/avango/inspector/__init__.py (modified) (6 diffs)
-
examples/inspector/SConscript (modified) (1 diff)
-
examples/inspector/gvim-foreground.sh (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/avango-inspector/src/avango/inspector/__init__.py
r225 r226 6 6 import sys 7 7 import cStringIO 8 import subprocess 9 import os 10 import tempfile 8 11 9 12 import avango.nodefactory 10 13 nodes = avango.nodefactory.NodeFactory(module=__name__) 14 15 def _edit(data = ""): 16 result = data 17 editor = os.environ.get('AVANGO_EDITOR', '') 18 if not editor: 19 return result 20 try: 21 buffer = tempfile.mkstemp(suffix = '.py') 22 os.write(buffer[0], data) 23 os.close(buffer[0]) 24 subprocess.call([editor, buffer[1]]) 25 file = open(buffer[1]) 26 result = file.read() 27 finally: 28 os.unlink(buffer[1]) 29 return result 11 30 12 31 class Instances(object): … … 21 40 self.always_evaluate(True) 22 41 23 self.sandbox = { 'inst': Instances() }42 self.sandbox = { 'inst': Instances(), 'edit': self._edit } 24 43 25 44 self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) … … 85 104 self.sandbox['field'] = field 86 105 106 self._exec(self.entry_field.get_text()) 107 self.entry_field.set_text("") 108 109 self.update_model() 110 111 def _exec(self, cmd): 112 self.output.insert_with_tags(self.output.get_end_iter(), cmd+"\n", self.output_command_tag) 113 87 114 stdout = sys.stdout 88 115 redirected_stdout = cStringIO.StringIO() … … 93 120 94 121 try: 95 exec self.entry_field.get_text()in globals(), self.sandbox122 exec cmd in globals(), self.sandbox 96 123 except: 97 124 cls, obj, traceback = sys.exc_info() … … 101 128 sys.stderr = stderr 102 129 103 self.output.insert_with_tags(self.output.get_end_iter(), self.entry_field.get_text()+"\n", self.output_command_tag)104 130 self.output.insert_with_tags(self.output.get_end_iter(), redirected_stderr.getvalue(), self.output_error_tag) 105 131 self.output.insert(self.output.get_end_iter(), redirected_stdout.getvalue()) 106 self.entry_field.set_text("")107 108 self.update_model()109 132 110 133 def handle_output_scroll(self, widget, data=None): … … 132 155 self.view.expand_all() 133 156 157 def _edit(self): 158 cmds = _edit() 159 self._exec(cmds) 160 134 161 135 162 @avango.script.field_has_changed(Children) -
trunk/examples/inspector/SConscript
r136 r226 30 30 files = Split(''' 31 31 inspector.py 32 gvim-foreground.sh 32 33 ''') 33 34
Note: See TracChangeset
for help on using the changeset viewer.
