Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- try:
- import Tkinter as tk
- from pathlib import Path, WindowsPath
- import string
- import os, sys
- from copy import copy
- except ImportError:
- Import()
- def Import():
- try:
- import Tkinter as tk
- from pathlib import Path, WindowsPath, PurePath
- import string
- import os, sys
- from copy import copy
- except ImportError as e:
- e = str(e).split()
- print e
- import pip
- print 'Missing: ' + e[len(e)-1]
- pip.main(['install', e[len(e)-1]])
- pause = raw_input('Press Enter to continue')
- del pause
- Import()
- class MainApp(tk.Frame):
- def __init__(self,parent,*args,**kwargs):
- tk.Frame.__init__(self,parent,*args,**kwargs)
- self.parent = parent
- self.entrys = []
- self.height, self.width = k + 1, len(pL)
- print self.height, self.width
- a = 0
- self.parent.title('Version Manager')
- for j in range(self.width): #Columns
- for i in range(self.height): #Rows
- exec('sv{} = tk.StringVar()'.format(a))
- exec('sv{}.trace("w",changeDir)'.format(a))
- self.grid_rowconfigure(i,weight=1); self.grid_columnconfigure(j,weight=1)
- exec('self.entrys.append(tk.Entry(self, text="",justify=tk.CENTER,textvariable={}))'.format(a))
- self.entrys[a].grid(row=i, column=j, sticky='NWSE')
- if i == 0:
- p = pL[j]
- self.entrys[a].insert(0,p)
- else:
- try:
- self.entrys[a].insert(0,projects[p][i-1])
- except:
- pass
- a += 1
- class Script(object):
- def __init__(self,path,project='Unsorted'):
- if not path == WindowsPath or not path == PurePath:
- path = Path(path)
- self.path = path
- self.project = project
- def __repr__(self):
- return str(self.path.name)
- def changeDir(name):
- sys.stdout.write(name)
- def updateProj():
- global projects, pL, k; k = 1
- projects = {}
- pL = []
- for i in scripts:
- if not i.project in pL:
- pL.append(i.project)
- d = 0
- try:
- projects[i.project].append(str(i))
- d += 1
- except:
- projects[i.project] = [str(i)]
- d += 1
- if d >= k:
- k = copy(d)
- print projects
- def getProj(path,project='Unsorted',inst=0):
- p = Path(path)
- for i in p.iterdir():
- if str(i) == os.path.basename(__file__):
- pass
- elif str(i).endswith(".py"):
- scripts.append(Script(i,project))
- elif i.is_dir():
- if inst != 1:
- getProj(i,project=str(i),inst=1)
- if __name__ == '__main__':
- global scripts
- scripts = []
- path = "./"
- getProj(path)
- updateProj()
- root = tk.Tk()
- MainApp(root).pack(side="top", fill="both", expand=True)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement