This commit is contained in:
parent
3e9412752a
commit
62e68c3d20
10
opal.py
10
opal.py
@ -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()
|
||||||
|
91
task.py
91
task.py
@ -37,21 +37,51 @@ 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)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user