Browse Source

Deleted some stuff. added some stuff. Forgot to commit regularly

pull/1/head
Chris Kiehl 11 years ago
parent
commit
5cb6038eaa
27 changed files with 84 additions and 378 deletions
  1. 18
      src/app/dialogs/advanced_config_integration_test.py
  2. 26
      src/app/dialogs/body.py
  3. BIN
      src/app/dialogs/body.pyc
  4. 5
      src/app/dialogs/component_register.py
  5. 45
      src/app/dialogs/controller.py
  6. 51
      src/app/dialogs/experiments.py
  7. 1
      src/app/dialogs/header.py
  8. BIN
      src/app/dialogs/header.pyc
  9. 85
      src/app/dialogs/model.py
  10. 21
      src/app/dialogs/runtime_display_panel.py
  11. 28
      src/app/dialogs/segoe_statictext.py
  12. 55
      src/app/dialogs/simple_config_panel.py
  13. 15
      src/app/dialogs/test.py
  14. BIN
      src/app/images/alessandro_rei_checkmark.png
  15. 1
      src/app/images/image_store.py
  16. BIN
      src/app/images/image_store.pyc
  17. 21
      src/app/testrun.py
  18. 0
      src/app/widgets/__init__.py
  19. 49
      src/experiments/command.py
  20. 12
      src/languages/eng.py
  21. 6
      src/languages/english.json
  22. 1
      src/mockapplication/mockapp.py
  23. 8
      src/model/integration_test.py
  24. 0
      src/parser/MultiChoiceOption.py
  25. 0
      src/parser/RequiredOption.py
  26. 0
      src/parser/__init__.py
  27. 14
      src/parser/option.py

18
src/app/dialogs/advanced_config_integration_test.py

@ -1,18 +0,0 @@
'''
Created on Jan 19, 2014
@author: Chris
'''
import argparse_test_data
client_parser_obj = argparse_test_data.parser
frame = MainWindow(client_parser_obj)
if __name__ == '__main__':
pass

26
src/app/dialogs/body.py

@ -1,26 +0,0 @@
'''
Created on Dec 23, 2013
@author: Chris
'''
import wx
class BasicDisplayPanel(wx.Panel):
def __init__(self, parent, **kwargs):
wx.Panel.__init__(self, parent, **kwargs)
self.SetBackgroundColour('#F0F0F0')
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.AddSpacer(10)
text = wx.StaticText(self, label="Running bla bla bla")
sizer.Add(text, 0, wx.LEFT, 20)
sizer.AddSpacer(10)
self.cmd_textbox = wx.TextCtrl(
self, -1, "",
style=wx.TE_MULTILINE | wx.TE_READONLY)
sizer.Add(self.cmd_textbox, 1, wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND, 20)
self.SetSizer(sizer)

BIN
src/app/dialogs/body.pyc

5
src/app/dialogs/component_register.py

@ -5,10 +5,9 @@ Created on Jan 20, 2014
'''
class ComponentRegister(object):
''' Mixin class for attaching controllers to objects '''
def __init__(self, params):
pass
def Registercontroller(self, controller):
''' Assigns a Controller to a view (usually panel or frame) object'''
if self._controller in None:
self._controller = controller

45
src/app/dialogs/controller.py

@ -6,8 +6,9 @@ Created on Dec 22, 2013
import wx
import sys
from app.dialogs.config_model import Model
from multiprocessing.dummy import Pool
import traceback
from multiprocessing.dummy import Pool, Process
from model.i18n import I18N
YES = 5103
NO = 5104
@ -34,16 +35,22 @@ class Controller(object):
self._foot = footer_panel
self._model = model
self._payload_runner = Process(target=self.RunClientCode).start
self._translator = I18N()
def OnCancelButton(self, event):
msg = "Are you sure you want to exit?"
dlg = wx.MessageDialog(None, msg, "Close Program?", wx.YES_NO)
msg = self._translator['sure_you_want_to_exit']
dlg = wx.MessageDialog(None, msg,
self._translator['close_program'], wx.YES_NO)
result = dlg.ShowModal()
print result
if result == YES:
dlg.Destroy()
self._base.Destroy()
sys.exit()
dlg.Destroy()
def OnStartButton(self, event):
cmd_line_args = self._body.GetOptions()
@ -53,18 +60,36 @@ class Controller(object):
return
self._model.AddToArgv(cmd_line_args)
self._base.NextPage()
self.RunClientCode()
self._payload_runner()
def OnCancelRunButton(self, event):
pass
def ShowArgumentErrorDlg(self, error):
a = wx.MessageDialog(None, error, 'Argument Error')
a.ShowModal()
a.Destroy()
def RunClientCode(self):
pool = Pool(1)
pool.apply_async(self._base._payload)
try:
pool.apply(self._base._payload)
self.ShowGoodFinishedDialog()
except:
self.ShowBadFinishedDialog(traceback.format_exc())
def ShowDialog(self, title, content, style):
a = wx.MessageDialog(None, content, title, style)
a.ShowModal()
a.Destroy()
def ShowGoodFinishedDialog(self):
self.ShowDialog(self._translator["execution_finished"],
self._translator['success_message'],
wx.ICON_INFORMATION)
def ShowBadFinishedDialog(self, error_msg):
msg = self._translator['uh_oh'].format(error_msg)
self.ShowDialog(self._translator['error_title'], msg, wx.ICON_ERROR)

51
src/app/dialogs/experiments.py

@ -1,51 +0,0 @@
'''
Created on Dec 28, 2013
@author: Chris
'''
import os
import wx
from wx.lib import scrolledpanel
from app.dialogs.advanced_config import AdvancedConfigPanel
class MainWindow(wx.Frame):
def __init__(self):
wx.Frame.__init__(
self,
parent=None,
id=-1,
title=os.path.basename(__file__),
size=(640,480)
)
self._init_components()
def _init_components(self):
# init components
self.SetMinSize((400,300))
panel = AdvancedConfigPanel(self)
sizer = wx.BoxSizer(wx.VERTICAL)
# for i in range(40):
# t = wx.TextCtrl(panel, -1)
# sizer.Add(t, 0)
panel.SetSizer(sizer)
_sizer = wx.BoxSizer(wx.VERTICAL)
_sizer.Add(panel, 1, wx.EXPAND)
self.SetSizer(_sizer)
def _draw_horizontal_line(self):
line = wx.StaticLine(self, -1, style=wx.LI_HORIZONTAL)
line.SetSize((10, 10))
self.sizer.Add(line, 0, wx.EXPAND)
if __name__ == '__main__':
app = wx.App(False)
frame = MainWindow()
frame.Show(True) # Show the frame.
app.MainLoop()

1
src/app/dialogs/header.py

@ -6,7 +6,6 @@ Created on Dec 23, 2013
import wx
import imageutil
from app.dialogs.segoe_statictext import SegoeText
from app.images import image_store
PAD_SIZE = 10

BIN
src/app/dialogs/header.pyc

85
src/app/dialogs/model.py

@ -1,85 +0,0 @@
'''
Created on Jan 23, 2014
@author: Chris
'''
import sys
import types
from app.dialogs.action_sorter import ActionSorter
class ArgumentError(Exception):
pass
class Model(object):
_instance = None
def __init__(self, parser=None):
self._parser = parser
self.description = parser.description
self.action_groups = ActionSorter(self._parser._actions)
# monkey patch
print self._parser.error
self._parser.error = types.MethodType(
self.ErrorAsString,
self._parser)
print self._parser.error
Model._instance = self
def HasPositionals(self):
if self.action_groups._positionals:
return True
return False
def IsValidArgString(self, arg_string):
if isinstance(self._Parse(arg_string), str):
return False
return True
def _Parse(self, arg_string):
try:
print self._parser.error
self._parser.parse_args(arg_string.split())
return True
except ArgumentError as e:
return str(e)
def GetErrorMsg(self, arg_string):
return self._FormatMsg(self._Parse(arg_string))
def _FormatMsg(self, msg):
output = list(msg)
if ':' in output:
output[output.index(':')] = ':\n '
return ''.join(output)
def AddToArgv(self, arg_string):
sys.argv.append(arg_string.split())
@staticmethod
def ErrorAsString(self, msg):
'''
Monkey patch for parser.error
Returns the error string rather than
printing and silently exiting.
'''
raise ArgumentError(msg)
@classmethod
def GetInstance(cls):
return cls._instance
if __name__ == '__main__':
pass
# print m2

21
src/app/dialogs/runtime_display_panel.py

@ -29,16 +29,8 @@ class RuntimeDisplay(wx.Panel):
self._init_properties()
self._init_components()
self._do_layout()
# self.queue = Queue.Queue()
_stdout = sys.stdout
_stdout_write = _stdout.write
sys.stdout = MessagePump()
sys.stdout.write = self.WriteToDisplayBox
# listener = Listener(self.queue, self.cmd_textbox)
# listener.start()
self._HookStdout()
def _init_properties(self):
self.SetBackgroundColour('#F0F0F0')
@ -56,9 +48,16 @@ class RuntimeDisplay(wx.Panel):
sizer.Add(self.cmd_textbox, 1, wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND, 30)
sizer.AddSpacer(20)
self.SetSizer(sizer)
def _HookStdout(self):
_stdout = sys.stdout
_stdout_write = _stdout.write
sys.stdout = MessagePump()
sys.stdout.write = self.WriteToDisplayBox
def AppendText(self, txt):
self.cmd_textbox.AppendText(txt)
self.cmd_textbox.AppendText(txt)
def WriteToDisplayBox(self, txt):
if txt is not '':

28
src/app/dialogs/segoe_statictext.py

@ -1,28 +0,0 @@
'''
Created on Jan 20, 2014
@author: Chris
'''
import wx
class SegoeText(wx.StaticText):
'''
Convenience subclass of wx.StaticText.
Sets the default font to Segoe UI and
has methods fow easily changing size and weight
'''
def __init__(self, parent, label):
wx.StaticText.__init__(self, parent, label=label)
self._font = wx.Font(20, wx.FONTFAMILY_DEFAULT,
wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_BOLD, False,
'Segoe UI Light')
self.SetFont(self._font)
def SetWeight(self, weight):
pass

55
src/app/dialogs/simple_config_panel.py

@ -1,55 +0,0 @@
'''
Created on Dec 9, 2013
@author: Chris
'''
import wx
import os
class BodyDisplayPanel(wx.Panel):
def __init__(self, parent, **kwargs):
wx.Panel.__init__(self, parent, **kwargs)
self.SetBackgroundColour('#F0F0F0')
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.AddSpacer(10)
# about_header = wx.StaticText(self, label="About")
# about_header = self._bold_static_text("About")
# about_body = wx.StaticText(self, label="This program does bla. Enter the command line args of your choice to control bla and bla.")
#
# sizer.Add(about_header, 0, wx.LEFT | wx.RIGHT, 20)
# sizer.AddSpacer(5)
# sizer.Add(about_body, 0, wx.LEFT | wx.RIGHT, 20)
sizer.AddSpacer(40)
text = self._bold_static_text("Enter Command Line Arguments")
#
sizer.Add(text, 0, wx.LEFT, 20)
sizer.AddSpacer(10)
h_sizer = wx.BoxSizer(wx.HORIZONTAL)
self.cmd_textbox = wx.TextCtrl(
self, -1, "")
h_sizer.Add(self.cmd_textbox, 1, wx.ALL | wx.EXPAND)
sizer.Add(h_sizer, 0, wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND, 20)
self.SetSizer(sizer)
def get_contents(self):
return self.cmd_textbox.GetValue()
def _bold_static_text(self, text_label):
text = wx.StaticText(self, label=text_label)
font_size = text.GetFont().GetPointSize()
bold = wx.Font(font_size, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD)
text.SetFont(bold)
return text

15
src/app/dialogs/test.py

@ -1,15 +0,0 @@
'''
Created on Dec 8, 2013
@author: Chris
'''
# im = Image.open(images.computer)

BIN
src/app/images/alessandro_rei_checkmark.png

Before After
Width: 128  |  Height: 128  |  Size: 13 KiB

1
src/app/images/image_store.py

@ -7,6 +7,7 @@ Convenience module for keeping the filepaths in one place.
"""
alessandro_rei_checkmark = r"C:\Users\Chris\Dropbox\pretty_gui\Gooey\src\app\images\alessandro_rei_checkmark.png"
computer = r"C:\Users\Chris\Dropbox\pretty_gui\Gooey\src\app\images\computer.png"
computer2 = r"C:\Users\Chris\Dropbox\pretty_gui\Gooey\src\app\images\computer2.png"
computer3 = r"C:\Users\Chris\Dropbox\pretty_gui\Gooey\src\app\images\computer3.png"

BIN
src/app/images/image_store.pyc

21
src/app/testrun.py

@ -1,21 +0,0 @@
'''
Created on Dec 8, 2013
@author: Chris
'''
import wx
import Queue
from dialogs.display_main import MainWindow
if __name__ == '__main__':
queue = Queue.Queue()
# stdoutput = sys.stdout
# out = TestObj(queue)
# sys.stdout = out
app = wx.App(False)
frame = MainWindow(queue)
frame.Show(True) # Show the frame.
app.MainLoop()

0
src/app/widgets/__init__.py

49
src/experiments/command.py

@ -8,33 +8,22 @@ Created on Jan 7, 2014
import sys
import time
_time = time.time
class MessagePump(object):
def __init__(self):
# self.queue = queue
self.stdout = sys.stdout
self.asdf = []
# Overrides stdout's write method
def write(self, text):
self.asdf.append((text, _time()))
# if text != '':
# self.queue.put(text)
# self.queue = Queue.Queue()
_stdout = sys.stdout
sys.stdout = MessagePump()
# listener = Listener(self.queue, self.cmd_textbox)
# listener.start()
print 'hello!'
time.sleep(1)
print 'Jello!'
output = sys.stdout.asdf
sys.stdout = _stdout
for i in output:
print i
print _time()
from multiprocessing.dummy import Process, Pool
def myFunc():
time.sleep(2)
print 'whoo!'
raise ValueError("Graaaaaaahhhhh")
if __name__ == '__main__':
pool = Pool(1)
try:
pool.apply(myFunc)
except:
print 'Yo, shit is broken, son!'

12
src/languages/eng.py

@ -18,7 +18,17 @@ if __name__ == '__main__':
'running':'Running',
"sure_you_want_to_exit":"Are you sure you want to exit?",
'close_program': 'Close Program?',
'status':'Status'
'status':'Status',
'uh_oh': '''
Uh oh! Looks like there was a problem.
Copy the below error to let your developer know what went wrong.
{}
''',
'error_title':"Error",
'execution_finished':'Execution Finished',
'success_message': 'Program completed Sucessfully!\nPress the OK button to exit',
}
with open('english.json', 'wb') as f:

6
src/languages/english.json

@ -1,6 +1,8 @@
{
"cancel": "Cancel",
"close_program": "Close Program?",
"error_title": "Error",
"execution_finished": "Execution Finished",
"next": "Next",
"optional_args_msg": "Optional Arguments",
"required_args_msg": "Required Arguments",
@ -8,5 +10,7 @@
"settings": "Settings",
"simple_config": "Enter Command Line Arguments",
"status": "Status",
"sure_you_want_to_exit": "Are you sure you want to exit?"
"success_message": "Program completed Sucessfully!\nPress the OK button to exit",
"sure_you_want_to_exit": "Are you sure you want to exit?",
"uh_oh": "\nUh oh! Looks like there was a problem. \nCopy the below error to let your developer know what went wrong.\n\n{} \t\t\n\t\t"
}

1
src/mockapplication/mockapp.py

@ -39,6 +39,7 @@ def main():
print 'printing message at: %s' % hashlib.md5(str(_time())).hexdigest()
_sleep(.5)
print 'Finished running the program. Byeeeeesss!'
# raise ValueError("Something has gone wrong! AHHHHHHHHHHH")
if __name__ == '__main__':
# sys.argv.extend('asdf -c 5 -s'.split())

8
src/model/integration_test.py

@ -1,8 +0,0 @@
'''
Created on Jan 24, 2014
@author: Chris
'''
if __name__ == '__main__':
pass

0
src/parser/MultiChoiceOption.py

0
src/parser/RequiredOption.py

0
src/parser/__init__.py

14
src/parser/option.py

@ -1,14 +0,0 @@
'''
Created on Dec 12, 2013
@author: Chris
'''
# parser.add_argument("-r", "--recursive", dest="recurse", action="store_true", help="recurse into subfolders [default: %(default)s]")
class Option(object):
def __init__(self, arg_option):
self.arg_option = arg_option
@classmethod
def
Loading…
Cancel
Save