This commit is contained in:
		@@ -18,9 +18,15 @@ def main():
 | 
				
			|||||||
    import pprint
 | 
					    import pprint
 | 
				
			||||||
    s = server.LocalServer()
 | 
					    s = server.LocalServer()
 | 
				
			||||||
    s.LoadTasksDescriptions()
 | 
					    s.LoadTasksDescriptions()
 | 
				
			||||||
    ds = s.GetTasksDescriptions()[0]
 | 
					    ds = s.GetTasksDescriptions()
 | 
				
			||||||
 | 
					    ms = []
 | 
				
			||||||
 | 
					    for d in ds:
 | 
				
			||||||
 | 
					        ms.extend(d.GetModelsDescriptions())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pprint.pprint(ds.data)
 | 
					    m = ms[0]
 | 
				
			||||||
 | 
					    pprint.pprint(m.data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    print m.GetSpecifications()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == '__main__':
 | 
					if __name__ == '__main__':
 | 
				
			||||||
    main()
 | 
					    main()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,20 +37,50 @@ class TaskDescription:
 | 
				
			|||||||
#-------------------------------------------------------------------------------
 | 
					#-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Parameter:
 | 
					class Parameter:
 | 
				
			||||||
    def __init__(self, paramdescr):
 | 
					    def __init__(self, data):
 | 
				
			||||||
        pass
 | 
					        self.data = data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def DoDataParametrization(objectdata):
 | 
					    def GetType(self):
 | 
				
			||||||
    data = objectdata['data']
 | 
					        return self.data['type']
 | 
				
			||||||
    for label in data:
 | 
					
 | 
				
			||||||
        par = Parameter(data[label])
 | 
					    def GetTitle(self):
 | 
				
			||||||
        data[label] = par
 | 
					        return self.data.get('title', '')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def GetComment(self):
 | 
				
			||||||
 | 
					        return self.data.get('comment', '')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def GetDefault(self):
 | 
				
			||||||
 | 
					        return self.data.get('default')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def GetTestExpresion(self):
 | 
				
			||||||
 | 
					        return self.data.get('test')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def Test(self, value):
 | 
				
			||||||
 | 
					        return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #def __repr__(self):
 | 
				
			||||||
 | 
					    #    return "'{}'".format(
 | 
				
			||||||
 | 
					    #        self.GetType()
 | 
				
			||||||
 | 
					    #    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DataDescription:
 | 
					class DataDescription:
 | 
				
			||||||
    def __init__(self, parentdescr, label, data):
 | 
					    def __init__(self, parent, label, data):
 | 
				
			||||||
        self.parentdescr = parentdescr
 | 
					        self.parent = parent
 | 
				
			||||||
        self.label       = label
 | 
					        self.label  = label
 | 
				
			||||||
        self.data        = data
 | 
					        self.data   = data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # создание описаний параметров
 | 
				
			||||||
 | 
					        self.pdata = self.data.get('params', {})
 | 
				
			||||||
 | 
					        for label in self.pdata:
 | 
				
			||||||
 | 
					            par = Parameter(self.pdata[label])
 | 
				
			||||||
 | 
					            self.pdata[label] = par
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.specs = []
 | 
				
			||||||
 | 
					        # рекурсивное создание описаний спецификаций
 | 
				
			||||||
 | 
					        for label, data in self.data.get('spec', {}).iteritems():
 | 
				
			||||||
 | 
					            self.specs.append(DataDescription(self, label, data))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def GetLabel(self):
 | 
					    def GetLabel(self):
 | 
				
			||||||
        return self.label
 | 
					        return self.label
 | 
				
			||||||
@@ -64,24 +94,53 @@ class DataDescription:
 | 
				
			|||||||
    def GetId(self):
 | 
					    def GetId(self):
 | 
				
			||||||
        return None
 | 
					        return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def GetSpecifications(self):
 | 
				
			||||||
 | 
					        return self.specs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def IsExecutable(self):
 | 
				
			||||||
 | 
					        return self.data.get('exec', True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __getitem__(self, label):
 | 
				
			||||||
 | 
					        return self.pdata.get(label)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#-------------------------------------------------------------------------------
 | 
					#-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DataDefinition:
 | 
					class DataDefinition:
 | 
				
			||||||
    def __init__(self, objectdescr):
 | 
					    def __init__(self, datadescr):
 | 
				
			||||||
        self.descr = objectdescr
 | 
					        self.DD = datadescr
 | 
				
			||||||
        self.params = {}
 | 
					        self.params = {}
 | 
				
			||||||
 | 
					        for param in self.DD.pdata:
 | 
				
			||||||
 | 
					            self.params[param] = self.DD[param].GetDefault()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.taskjob = None
 | 
					        self.taskjob = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def GetParameter(self, label):
 | 
					    def __getitem__(self, label):
 | 
				
			||||||
        pass
 | 
					        return self.params[label]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def SetParameter(self, label, value):
 | 
					    def __setitem__(self, label, value):
 | 
				
			||||||
        pass
 | 
					        if self.DD[label].Test(value):
 | 
				
			||||||
 | 
					            self.params[label] = value
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            raise ValueError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#-------------------------------------------------------------------------------
 | 
					#-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import server, json
 | 
				
			||||||
 | 
					from pprint import pprint
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def main():
 | 
					def main():
 | 
				
			||||||
    pass
 | 
					    s = server.LocalServer()
 | 
				
			||||||
 | 
					    s.LoadTasksDescriptions()
 | 
				
			||||||
 | 
					    ds = s.GetTasksDescriptions()
 | 
				
			||||||
 | 
					    models = []
 | 
				
			||||||
 | 
					    for d in ds:
 | 
				
			||||||
 | 
					        models.extend(d.GetModelsDescriptions())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    model = models[0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mdef = DataDefinition(model)
 | 
				
			||||||
 | 
					    pprint(mdef.DD.data)
 | 
				
			||||||
 | 
					    print mdef.DD['x'].GetTitle()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == '__main__':
 | 
					if __name__ == '__main__':
 | 
				
			||||||
    main()
 | 
					    main()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
tasks/task.py
 | 
					tasks/testt.py
 | 
				
			||||||
@@ -10,11 +10,14 @@
 | 
				
			|||||||
            "author": "Anton Vakhrushev",
 | 
					            "author": "Anton Vakhrushev",
 | 
				
			||||||
            "date": "2012-03-08",
 | 
					            "date": "2012-03-08",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            "exec": true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "params": {
 | 
					            "params": {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                "x": {
 | 
					                "x": {
 | 
				
			||||||
                    "type":     "int",
 | 
					                    "type":     "int",
 | 
				
			||||||
                    "default":  10
 | 
					                    "default":  10,
 | 
				
			||||||
 | 
					                    "title":    "Main parameter"
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                "u": {
 | 
					                "u": {
 | 
				
			||||||
@@ -24,7 +27,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                "n": {
 | 
					                "n": {
 | 
				
			||||||
                    "type":     "int",
 | 
					                    "type":     "int",
 | 
				
			||||||
                    "default":  1000
 | 
					                    "default":  1000,
 | 
				
			||||||
 | 
					                    "title":    "Steps",
 | 
				
			||||||
 | 
					                    "comment":  "Number of steps for algorithm"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -12,7 +12,7 @@ def main():
 | 
				
			|||||||
    os.chdir(d)
 | 
					    os.chdir(d)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if sys.argv[1] == '-i':
 | 
					    if sys.argv[1] == '-i':
 | 
				
			||||||
        with open('task.js') as f:
 | 
					        with open('testt.js') as f:
 | 
				
			||||||
            d = json.load(f)
 | 
					            d = json.load(f)
 | 
				
			||||||
            print json.dumps(d, indent = 2)
 | 
					            print json.dumps(d, indent = 2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user