#!/usr/bin/env python # For python 3.X or 2.X (test both in PyEdit's Run Code: see texConfig.py). # Makes a GUI window, and displays in it assorted runtime context details. # This can be killed by closing the GUI window or the Capture run wimdow. # Also displays a line to stdout stream, despite being a no-console GUI. # See also envtest2.py for args to try and a stdout stream context display. print('contextdump.py ...') # wherever stdout be import sys, os if sys.version[0] >= '3': from tkinter import * from tkinter.scrolledtext import ScrolledText elif sys.version[0] == '2': from Tkinter import * from ScrolledText import ScrolledText wide=90 # initial number text columns root = Tk() Label(root, text='Context Dump').pack(expand=NO, fill=X) text = ScrolledText(width=wide) text.pack(expand=YES, fill=BOTH) show = ['sys.executable', 'sys.version', 'sys.argv', '__file__', 'os.getcwd', 'sys.path', 'os.environ'] text.insert(END, '\n%s\n' % ('-'*wide)) for item in show: text.insert(END, item + '\n') value = eval(item) if isinstance(value, str): text.insert(END, '\t%s\n' % value) elif isinstance(value, list): text.insert(END, '\t--list--\n') for x in value: text.insert(END, '\t%s\n' % x) elif isinstance(value, dict) or hasattr(value, 'keys'): text.insert(END, '\t--dict--\n') for k in sorted(value.keys()): text.insert(END, '\t%s\n\t\t%s\n' % (k, value[k])) elif hasattr(value, '__call__'): text.insert(END, '\t--call--\n') text.insert(END, '\t%s\n' % str(value())) else: text.insert(END, '\t--other--\n') text.insert(END, '\t%s\n' % str(value)) text.insert(END, '%s\n' % ('-'*wide)) root.mainloop()