Changeset 434

Show
Ignore:
Timestamp:
08/07/08 18:48:44 (2 weeks ago)
Author:
pierre
Message:

Fix a bug in the new rset method, faster (only one call to nest.SetStatus?), when used with a non standard model.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/nest2/__init__.py

    r433 r434  
    767767            assert len(rarr) >= len(self.cell_local), "The length of rarr (%d) must be greater than that of cell_local (%d)" % (len(rarr), len(self.cell_local)) 
    768768            rarr = rarr[:len(self.cell_local)] 
    769             if parametername in self.celltype.scaled_parameters(): 
    770                 translation = self.celltype.translations[parametername] 
    771                 rarr = eval(translation['forward_transform'], globals(), {parametername : rarr}) 
    772                 nest.SetStatus(self.cell_local,translation['translated_name'],rarr) 
    773             elif parametername in self.celltype.simple_parameters(): 
    774                 translation = self.celltype.translations[parametername] 
    775                 nest.SetStatus(self.cell_local, translation['translated_name'], rarr) 
     769            if not isinstance(self.celltype, str): 
     770                if parametername in self.celltype.scaled_parameters(): 
     771                    translation = self.celltype.translations[parametername] 
     772                    rarr = eval(translation['forward_transform'], globals(), {parametername : rarr}) 
     773                    nest.SetStatus(self.cell_local,translation['translated_name'],rarr) 
     774                elif parametername in self.celltype.simple_parameters(): 
     775                    translation = self.celltype.translations[parametername] 
     776                    nest.SetStatus(self.cell_local, translation['translated_name'], rarr) 
     777                else: 
     778                    for cell,val in zip(self.cell_local, rarr): 
     779                        setattr(cell, parametername, val) 
    776780            else: 
    777                 for cell,val in zip(self.cell_local, rarr): 
    778                     setattr(cell, parametername, val) 
     781               nest.SetStatus(self.cell_local, parametername, rarr) 
    779782 
    780783    def _record(self, variable, record_from=None, rng=None,to_file=True):