Advertisement
gregwa

FCM #152 Support file - depickle_support.py

Dec 6th, 2019
444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.04 KB | None | 0 0
  1. #! /usr/bin/env python
  2. #  -*- coding: utf-8 -*-
  3. #
  4. # Support module generated by PAGE version 4.27f
  5. #  in conjunction with Tcl version 8.6
  6. #    Nov 26, 2019 04:38:18 PM CST  platform: Linux
  7. #    Nov 30, 2019 06:12:05 AM CST  platform: Linux
  8.  
  9. import sys
  10. import pickle as pkl
  11. from datetime import datetime
  12. import platform
  13. import os
  14.  
  15. try:  # Just in case the user is running Python 2.x
  16.     import Tkinter as tk
  17.     import tkFileDialog as filedialog
  18.     import tkMessageBox as messagebox
  19.     import tkFont as font
  20. except ImportError:
  21.     import tkinter as tk
  22.     from tkinter import messagebox
  23.     from tkinter import font
  24.     from tkinter import filedialog
  25.  
  26. try:
  27.     import ttk
  28.     py3 = False
  29. except ImportError:
  30.     import tkinter.ttk as ttk
  31.     py3 = True
  32.  
  33.  
  34. def set_Tk_var():
  35.     global pickleType
  36.     pickleType = tk.StringVar()
  37.     pickleType.set('')
  38.     global entry_var
  39.     entry_var = tk.StringVar()
  40.  
  41.  
  42. def on_btnExit():
  43.     # print('depickle1_support.on_btnExit')
  44.     # sys.stdout.flush()
  45.     destroy_window()
  46.  
  47.  
  48. def on_btnFile():
  49.     # print('depickle1_support.on_btnFile')
  50.     # sys.stdout.flush()
  51.     global fn, progpath
  52.     title = "Select Pickle File"
  53.     ft = (("Pickle files", "*.pkl"), ("all files", "*.*"))
  54.     fn = filedialog.askopenfilename(initialdir=progpath,
  55.                                     title=title,
  56.                                     filetypes=ft)
  57.     entry_var.set(fn)
  58.  
  59.  
  60. def on_btnGo():
  61.     # print('depickle1_support.on_btnGo')
  62.     # sys.stdout.flush()
  63.     clear_stw()
  64.     global fn
  65.     with open(fn, 'rb') as f:
  66.         try:
  67.             data = pkl.load(f)
  68.         except UnicodeDecodeError:
  69.             f.seek(0)  # in case the offset of the file is not in the beginning
  70.             data = pkl.load(f, encoding='bytes')   # encoding='latin1')
  71.     print(type(data))
  72.     pickleType.set(type(data))
  73.     if type(data) is dict:
  74.         for key, val in data.items():
  75.             # print(f'key: {key} - value: {val}')
  76.             w.Scrolledtext1.insert('end', f'key:{key} - value: {val}\n')
  77.     elif type(data) is list:
  78.         for d in data:
  79.             w.Scrolledtext1.insert('end', f'{d}\n')
  80.     else:
  81.         w.Scrolledtext1.insert('end', f'{data}\n')
  82.  
  83.  
  84. def clear_stw():
  85.     # Clear the ScrolledText Widget
  86.     w.Scrolledtext1.delete('1.0', 'end')
  87.  
  88.  
  89. def init(top, gui, *args, **kwargs):
  90.     global w, top_level, root
  91.     w = gui
  92.     top_level = top
  93.     root = top
  94.     # ======================================================
  95.     # My init code starts here...
  96.     # ======================================================
  97.     pv = platform.python_version()
  98.     print("Running under Python {0}".format(pv))
  99.     # Get the current program path
  100.     global progpath
  101.     progpath = os.getcwd()
  102.     print(progpath)
  103.     # Set the main form title...
  104.     root.title('Depickle')
  105.  
  106.  
  107. def destroy_window():
  108.     # Function which closes the window.
  109.     global top_level
  110.     top_level.destroy()
  111.     top_level = None
  112.  
  113.  
  114. if __name__ == '__main__':
  115.     import depickle1
  116.     depickle1.vp_start_gui()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement