Changeset 723

Show
Ignore:
Timestamp:
08/09/10 22:14:19 (1 year ago)
Author:
dmitrey
Message:

some FD changes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • PythonPackages/FuncDesigner/FuncDesigner/ooFun.py

    r721 r723  
    527527            if type(args[0]) != str: 
    528528                assert not isinstance(args[0], oofun), "you can't invoke oofun on another one oofun" 
     529                 
     530                if self.is_oovar: 
     531                    if isinstance(x, dict): 
     532                        tmp = x.get(self, None) 
     533                        if tmp is not None: 
     534                            return tmp #if type(tmp)==ndarray else asfarray(tmp) 
     535                        elif self.name in x: 
     536                            return asfarray(x[self.name]) 
     537                        else: 
     538                            s = 'for oovar ' + self.name + \ 
     539                            " the point involved doesn't contain neither name nor the oovar instance. Maybe you try to get function value or derivative in a point where value for an oovar is missing" 
     540                            raise FuncDesignerException(s) 
     541                    elif hasattr(x, 'xf'): 
     542                        # TODO: possibility of squeezing 
     543                        return x.xf[self] 
     544                    else: 
     545                        raise FuncDesignerException('Incorrect data type (%s) while obtaining oovar %s value' %(type(x), self.name)) 
     546             
    529547            else: 
    530548                self.name = args[0] 
     
    538556 
    539557    def _getFuncCalcEngine(self, *args, **kwargs): 
     558        x = args[0] 
     559         
    540560        dep = self._getDep() 
    541         x = args[0] 
     561         
    542562        CondSamePointByID = True if type(x) == ooPoint and self._point_id == x._id else False 
    543563 
  • PythonPackages/FuncDesigner/FuncDesigner/ooPoint.py

    r722 r723  
    2222        dict.__init__(self, items) 
    2323         
     24        for key, val in items: 
     25            if 'size' in key.__dict__ and type(key.size) == int and Len(val)  != key.size:  
     26                s = 'incorrect size for oovar %s: %d is required, %d is obtained' % (self.name, self.size, Size) 
     27                raise FuncDesignerException(s) 
     28 
     29         
    2430        ooPoint._id += 1 
    2531        self._id = ooPoint._id 
  • PythonPackages/FuncDesigner/FuncDesigner/ooVar.py

    r722 r723  
    2323         
    2424    def _getFuncCalcEngine(self, x, **kwargs): 
    25         if isinstance(x, dict): 
    26             tmp = x.get(self, None) 
    27             if tmp is not None: 
    28                 r = tmp #if type(tmp)==ndarray else asfarray(tmp) 
    29             elif self.name in x: 
    30                 r = asfarray(x[self.name]) 
    31             else: 
    32                 s = 'for oovar ' + self.name + \ 
    33                 " the point involved doesn't contain niether name nor the oovar instance. Maybe you try to get function value or derivative in a point where value for an oovar is missing" 
    34                 raise FuncDesignerException(s) 
    35         elif hasattr(x, 'xf'): 
    36             # TODO: possibility of squeezing 
    37             r = x.xf[self] 
    38         else: 
    39             raise FuncDesignerException('Incorrect data type (%s) while obtaining oovar %s value' %(type(x), self.name)) 
     25        r = x.get(self, None) 
     26        if r is not None:  
     27            return r 
     28        else:                              
     29            s = 'for oovar ' + self.name + \ 
     30            " the point involved doesn't contain neither name nor the oovar instance. Maybe you try to get function value or derivative in a point where value for an oovar is missing" 
     31            raise FuncDesignerException(s) 
    4032         
    41         if 'size' in self.__dict__ and type(self.size) == int and Len(r)  != self.size: # len(r) for lists/tuples 
    42             s = 'incorrect size for oovar %s: %d is required, %d is obtained' % (self.name, self.size, Size) 
    43             raise FuncDesignerException(s) 
    44         return r 
     33         
     34#        if isinstance(x, dict): 
     35#            tmp = x.get(self, None) 
     36#            if tmp is not None: 
     37#                return tmp #if type(tmp)==ndarray else asfarray(tmp) 
     38#            elif self.name in x: 
     39#                return asfarray(x[self.name]) 
     40#            else: 
     41#                s = 'for oovar ' + self.name + \ 
     42#                " the point involved doesn't contain niether name nor the oovar instance. Maybe you try to get function value or derivative in a point where value for an oovar is missing" 
     43#                raise FuncDesignerException(s) 
     44#        elif hasattr(x, 'xf'): 
     45#            # TODO: possibility of squeezing 
     46#            return x.xf[self] 
     47#        else: 
     48#            raise FuncDesignerException('Incorrect data type (%s) while obtaining oovar %s value' %(type(x), self.name)) 
     49         
    4550         
    4651#    def _initialize(self, p):