diff --git a/contrib/onelab/python/OnelabClient.py b/contrib/onelab/python/OnelabClient.py index 3d6da4ae6d4b0653adb8801b35c7613a065f0d5b..c3b380b1382955189679e9c72e2f191516efa6cf 100755 --- a/contrib/onelab/python/OnelabClient.py +++ b/contrib/onelab/python/OnelabClient.py @@ -114,7 +114,7 @@ class client : self._createSocket() self.socket.send(struct.pack('ii%is' %len(m), t, len(m), m)) - def _declare_parameter(self, param) : + def _define_parameter(self, param) : if not self.socket : return self._send(self._GMSH_PARAMETER_QUERY, param.tochar()) @@ -125,22 +125,22 @@ class client : self._send(self._GMSH_PARAMETER, param.tochar()) #declaration #print param.tochar() - def declareNumber(self, name, **param): + def defineNumber(self, name, **param): if 'labels' in param : param["choices"] = param["labels"].keys() p = _parameter('number', name=name, **param) if 'value' not in param : #make the parameter readOnly p.readOnly = 1 p.attributes={'Highlight':'Orchid'} - self._declare_parameter(p) + self._define_parameter(p) return p.value - def declareString(self, name, **param): + def defineString(self, name, **param): p = _parameter('string', name=name, **param) if 'value' not in param : #make the parameter readOnly p.readOnly = 1 p.attributes={'Highlight':'Orchid'} - self._declare_parameter(p) + self._define_parameter(p) return p.value def setNumber(self, name, **param): @@ -155,7 +155,7 @@ class client : elif t == self._GMSH_PARAMETER_NOT_FOUND : p.modify(**param) self._send(self._GMSH_PARAMETER, p.tochar()) - return p.value + #return p.value What for? def setString(self, name, **param): if not self.socket : @@ -169,7 +169,6 @@ class client : elif t == self._GMSH_PARAMETER_NOT_FOUND : #create a new parameter p.modify(**param) self._send(self._GMSH_PARAMETER, p.tochar()) - return p.value def _get_parameter(self, param, warn_if_not_found=True) : if not self.socket : @@ -191,7 +190,7 @@ class client : self._get_parameter(param, warn_if_not_found) return param.value - def geometry(self, filename) : + def openGeometry(self, filename) : if not self.socket or not filename : return #if self.action == 'compute' and self.getString('Gmsh/MergedGeo', False) == filename : @@ -207,6 +206,11 @@ class client : if not self.socket : return self._send(self._GMSH_PARSE_STRING, 'Mesh 3; Save "' + filename + '";') + + def sendCommand(self, command) : + if not self.socket : + return + self._send(self._GMSH_PARSE_STRING, command + ' ;') def mergeFile(self, filename) : if not self.socket : diff --git a/contrib/onelab/python/test.py b/contrib/onelab/python/test.py index 7bcce603875e2987b4b91e1950185d3ed0e0977e..4cb14c8ffdaf320b52e20e86e64aba22b71c28c1 100755 --- a/contrib/onelab/python/test.py +++ b/contrib/onelab/python/test.py @@ -7,28 +7,29 @@ modelName = 'coin' OL = onelab.client() print('\nStarting METAMODEL - Action = %s' %(OL.getString('python/Action'))) -#name and default value are required -A = OL.setNumber('A', 10) -#other attributes are optionals -#B = oc.def_number('Group/B', 0, min = -10, max = 10, step = 1) +A = OL.defineNumber('A', value=10) -OL.showGeometry(modelName + '.geo') +C = OL.defineNumber('Group/C', value=2, choices = [0, 1, 2, 3], attributes={'Highlight':'Pink'}) +D = OL.defineNumber('Group/D', value=3, labels = {0:'zero', 1:'un', 2:'deux', 3:'trois'}, attributes={'Highlight':'Blue'}) -OL.run('gmsh', 'gmsh ' + modelName + '.geo -2') +OL.openGeometry(modelName + '.geo') +OL.preProcess(modelName + '.txt.ol') -OL.mergeFile(modelName + '.msh') +if OL.action == 'compute' : + OL.mesh(modelName + '.msh') + +#OL.run('gmsh', 'gmsh ' + modelName + '.geo -2') +#OL.mergeFile(modelName + '.msh') -OL.run('subclient', 'sub.py') +OL.run('subclient', 'sub.py','') -C = OL.setNumber('Group/C', 2, choices = [0, 1, 2, 3], attributes={'Highlight':'Pink'}) -D = OL.setNumber('Group/D', 2, labels = {0:'zero', 1:'un', 2:'deux', 3:'trois'}, attributes={'Highlight':'Blue'}) +#B = oc.defineNumber('Group/B', 0, min = -10, max = 10, step = 1) #utf-8 are allowed everywhere #(should be prefixed by 'u' in python 2, not required in python 3) #Omega = OL.getString(u'Ω', u'∫(∂φ/∂α)³dx', help=u'ask someone@universe.org', #choices = ['oui', 'non', u'peut-être']) -OL.preProcess(modelName + '.txt.ol') -if OL.action != 'compute' : - exit(0) + +