#!/usr/bin/env python # For python 3.X or 2.X (test both in PyEdit's Run Code: see texConfig.py). # contextdump.py, but test as a .pyw, and with spaces in name requiring quotes. # Run Code supports shell syntax for arguments, and quotes or escapes the names # of the file and the Python executable as required for the host platform. print('context dump.pyw ...') # 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()