File: pyedit-products/unzipped/docetc/examples/RunCode-examples/contextdump.pyw
#!/usr/bin/env python
# For python 3.X or 2.X (test both in PyEdit's Run Code: see texConfig.py).
# A .pyw variant: see .py for more details.
print('contextdump.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()