Overseer partly worked
This commit is contained in:
		@@ -10,6 +10,10 @@ ID_DUPLICATE_MODEL  = wx.NewId()
 | 
				
			|||||||
ID_DELETE_MODEL     = wx.NewId()
 | 
					ID_DELETE_MODEL     = wx.NewId()
 | 
				
			||||||
ID_PROCESS_MODEL    = wx.NewId()
 | 
					ID_PROCESS_MODEL    = wx.NewId()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MyTreeListCtrl(wx.gizmos.TreeListCtrl):
 | 
				
			||||||
 | 
					    def Refresh(self, erase, rect):
 | 
				
			||||||
 | 
					        wx.gizmos.TreeListCtrl.Refresh(False, rect)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class MainFrame (wx.Frame):
 | 
					class MainFrame (wx.Frame):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, parent):
 | 
					    def __init__(self, parent):
 | 
				
			||||||
@@ -27,8 +31,10 @@ class MainFrame (wx.Frame):
 | 
				
			|||||||
        bSizer4 = wx.BoxSizer(wx.VERTICAL)
 | 
					        bSizer4 = wx.BoxSizer(wx.VERTICAL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.m_user_models = wx.gizmos.TreeListCtrl(self,
 | 
					        self.m_user_models = wx.gizmos.TreeListCtrl(self,
 | 
				
			||||||
            style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.TR_EDIT_LABELS)
 | 
					        #self.m_user_models = MyTreeListCtrl(self,
 | 
				
			||||||
        self.m_user_models.SetMinSize(wx.Size(-1,200))
 | 
					        #self.m_user_models = wx.TreeCtrl(self,
 | 
				
			||||||
 | 
					            style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.TR_EDIT_LABELS | wx.TR_ROW_LINES)
 | 
				
			||||||
 | 
					        self.m_user_models.SetMinSize(wx.Size(-1, 200))
 | 
				
			||||||
        self.m_user_models.AddColumn("Model name")
 | 
					        self.m_user_models.AddColumn("Model name")
 | 
				
			||||||
        self.m_user_models.AddColumn("Status")
 | 
					        self.m_user_models.AddColumn("Status")
 | 
				
			||||||
        self.m_user_models.AddColumn("Progress")
 | 
					        self.m_user_models.AddColumn("Progress")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,47 +64,41 @@ class MainFrame(forms.MainFrame):
 | 
				
			|||||||
        self.server.Stop()
 | 
					        self.server.Stop()
 | 
				
			||||||
        self.Destroy()
 | 
					        self.Destroy()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # todo1 вменяемый цикл обхода!
 | 
					 | 
				
			||||||
    def Overseer(self):
 | 
					    def Overseer(self):
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
        def SeeTheItem(item):
 | 
					            while True:
 | 
				
			||||||
 | 
					                if True:
 | 
				
			||||||
 | 
					                    wx.MutexGuiEnter()
 | 
				
			||||||
 | 
					                    #print '-- cycle --'
 | 
				
			||||||
                    um = self.m_user_models
 | 
					                    um = self.m_user_models
 | 
				
			||||||
 | 
					                    #um.Freeze()
 | 
				
			||||||
 | 
					                    item = um.GetRootItem()
 | 
				
			||||||
 | 
					                    while item.IsOk():
 | 
				
			||||||
                        md = um.GetPyData(item)
 | 
					                        md = um.GetPyData(item)
 | 
				
			||||||
            print um.GetItemText(item)
 | 
					                        job = md.job if md else None
 | 
				
			||||||
            job = md.job
 | 
					                        if job and job.IsRunning():
 | 
				
			||||||
            if job:
 | 
					 | 
				
			||||||
                            t = os.path.basename(job.taskd.execpath)
 | 
					                            t = os.path.basename(job.taskd.execpath)
 | 
				
			||||||
                            p = job.percent * 100
 | 
					                            p = job.percent * 100
 | 
				
			||||||
                print t, p
 | 
					                            #print t, p
 | 
				
			||||||
                um.SetItemText(item, '{}: {:.2F}%'.format(t, p), 1)
 | 
					                            um.SetItemText(item, str(job.GetState()), 1)
 | 
				
			||||||
 | 
					                            um.SetItemText(item, '{}: {:.2F}%'.format(t, p), 2)
 | 
				
			||||||
            child, cookie = um.GetFirstChild()
 | 
					                        item = um.GetNext(item)
 | 
				
			||||||
            while child.IsOk():
 | 
					                    #um.Thaw()
 | 
				
			||||||
                SeeTheItem(child)
 | 
					                    wx.MutexGuiLeave()
 | 
				
			||||||
                child, cookie = um.GetNextChild(child, cookie)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        #try:
 | 
					 | 
				
			||||||
            server = self.server
 | 
					 | 
				
			||||||
            while True:
 | 
					 | 
				
			||||||
                print 'cycle'
 | 
					 | 
				
			||||||
                um = self.m_user_models
 | 
					 | 
				
			||||||
                item = um.GetFirstVisibleItem()
 | 
					 | 
				
			||||||
                SeeTheItem(item)
 | 
					 | 
				
			||||||
                time.sleep(0.5)
 | 
					                time.sleep(0.5)
 | 
				
			||||||
        #except:
 | 
					        except Exception, e:
 | 
				
			||||||
        #    pass
 | 
					            print 'Error in overseer: ', e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def NewProject(self, project):
 | 
					    def NewProject(self, project):
 | 
				
			||||||
        # 1. загрузить спецификации модели
 | 
					        # 1. загрузить спецификации модели
 | 
				
			||||||
        # 2. создать одну модель по умолчанию
 | 
					        # 2. создать одну модель по умолчанию
 | 
				
			||||||
        model   = project
 | 
					        model   = project
 | 
				
			||||||
        um      = self.m_user_models
 | 
					        um      = self.m_user_models
 | 
				
			||||||
        root    = um.AddRoot('')
 | 
					        root    = um.AddRoot('Root')
 | 
				
			||||||
        data    = task.DataDefinition(model)
 | 
					        data    = task.DataDefinition(model)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        child   = um.AppendItem(root, 'Default')
 | 
					        child   = um.AppendItem(root, 'Default')
 | 
				
			||||||
        um.SetPyData(child, data)
 | 
					        um.SetPyData(child, data)
 | 
				
			||||||
        um.SetItemText(child, '234', 1)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def SelectUserModel(self, model_def):
 | 
					    def SelectUserModel(self, model_def):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -169,6 +163,7 @@ class MainFrame(forms.MainFrame):
 | 
				
			|||||||
        md[param] = value
 | 
					        md[param] = value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def OnTest(self, event):
 | 
					    def OnTest(self, event):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        um = self.m_user_models
 | 
					        um = self.m_user_models
 | 
				
			||||||
        id = um.GetSelection()
 | 
					        id = um.GetSelection()
 | 
				
			||||||
        md = um.GetItemPyData(id)
 | 
					        md = um.GetItemPyData(id)
 | 
				
			||||||
@@ -184,19 +179,10 @@ class MainFrame(forms.MainFrame):
 | 
				
			|||||||
        md = um.GetItemPyData(id)
 | 
					        md = um.GetItemPyData(id)
 | 
				
			||||||
        child = um.AppendItem(parent, title + ' Copy')
 | 
					        child = um.AppendItem(parent, title + ' Copy')
 | 
				
			||||||
        um.SetPyData(child, md.Copy())
 | 
					        um.SetPyData(child, md.Copy())
 | 
				
			||||||
 | 
					        self.SetStatusText('Copy for "{}" created'.format(title), 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def OnIdle(self, event):
 | 
					    def OnIdle(self, event):
 | 
				
			||||||
##        server = self.server
 | 
					 | 
				
			||||||
##        self.m_job_list.Freeze()
 | 
					 | 
				
			||||||
##        self.m_job_list.Clear()
 | 
					 | 
				
			||||||
##        with server.queue_lock:
 | 
					 | 
				
			||||||
##            for j in server.jobs_queue:
 | 
					 | 
				
			||||||
##                t = os.path.dirname(j.taskd.execpath)
 | 
					 | 
				
			||||||
##                p = j.percent * 100.0
 | 
					 | 
				
			||||||
##                self.m_job_list.Append('{}: {:.2}%'.format(t, p))
 | 
					 | 
				
			||||||
##        self.m_job_list.Thaw()
 | 
					 | 
				
			||||||
        pass
 | 
					        pass
 | 
				
			||||||
        #time.sleep(1)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#-----------------------------------------------------------------------------
 | 
					#-----------------------------------------------------------------------------
 | 
				
			||||||
# Приложение
 | 
					# Приложение
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -184,6 +184,7 @@ class Job:
 | 
				
			|||||||
        self.comment = ''
 | 
					        self.comment = ''
 | 
				
			||||||
        self.result  = None
 | 
					        self.result  = None
 | 
				
			||||||
        self.proc    = None
 | 
					        self.proc    = None
 | 
				
			||||||
 | 
					        self.client_data = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def ProcessMsg(self, msg):
 | 
					    def ProcessMsg(self, msg):
 | 
				
			||||||
        # разбираем полученный ответ
 | 
					        # разбираем полученный ответ
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -79,7 +79,7 @@ def main():
 | 
				
			|||||||
            while l <= r:
 | 
					            while l <= r:
 | 
				
			||||||
                y = sin_taylor(l, d)
 | 
					                y = sin_taylor(l, d)
 | 
				
			||||||
                res.append([l, y])
 | 
					                res.append([l, y])
 | 
				
			||||||
                write(answer(round(l / r, 2)))
 | 
					                write(answer(l / r))
 | 
				
			||||||
                l += h
 | 
					                l += h
 | 
				
			||||||
                time.sleep(0.2)
 | 
					                time.sleep(0.2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user