Changeset 189
- Timestamp:
- 08/13/08 15:49:29 (4 months ago)
- Files:
-
- trunk/src/parameters.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/parameters.py
r188 r189 138 138 """ 139 139 140 non_parameter_attributes = [' url','label','names','parameters','flat','flatten','non_parameter_attributes']140 non_parameter_attributes = ['_url','label','names','parameters','flat','flatten','non_parameter_attributes'] 141 141 142 142 @staticmethod … … 161 161 162 162 """ 163 164 163 global_dict = dict(url=ParameterSet,ParameterSet=ParameterSet) 165 164 global_dict.update(dict(ParameterRange=ParameterRange, 165 ParameterTable=ParameterTable, 166 166 GammaDist=GammaDist, 167 167 UniformDist=UniformDist, 168 NormalDist=NormalDist)) 169 170 D = eval(str, global_dict) 168 NormalDist=NormalDist, 169 pi=numpy.pi)) 170 try: 171 D = eval(str, global_dict) 172 except SyntaxError: 173 print str 174 raise 171 175 return D or {} 172 176 … … 185 189 return ParameterSet(d, label) 186 190 187 self. url = None191 self._url = None 188 192 if isinstance(initialiser, basestring): # url or str 189 193 try: … … 195 199 f = urllib.urlopen(initialiser) 196 200 pstr = f.read() 197 self. url = initialiser201 self._url = initialiser 198 202 except IOError: 199 203 pstr = initialiser 200 self. url = None204 self._url = None 201 205 finally: 202 206 try: … … 283 287 valid Python code, preferably importable as a module. 284 288 285 If `url` is `None`, try to save to `self. url` (if it is not `None`),289 If `url` is `None`, try to save to `self._url` (if it is not `None`), 286 290 otherwise save to `url`. 287 291 """ 288 292 # possible solution for HTTP PUT: http://inamidst.com/proj/put/put.py 289 293 if not url: 290 url = self. url294 url = self._url 291 295 scheme, netloc, path, parameters, query, fragment = urlparse(url) 292 296 if scheme != 'file': … … 506 510 return tuple(index) 507 511 508 509 512 def __sub__(self, other): 513 """ 514 Return the difference between this ParameterSet and another. 515 Not yet properly implemented. 516 """ 517 self_keys = set(self) 518 other_keys = set(other) 519 intersection = self_keys.intersection(other_keys) 520 difference1 = self_keys.difference(other_keys) 521 difference2 = other_keys.difference(self_keys) 522 result1 = dict([(key, self[key]) for key in difference1]) 523 result2 = dict([(key, other[key]) for key in difference2]) 524 # Now need to check values for intersection.... 525 for item in intersection: 526 if isinstance(self[item], ParameterSet): 527 d1,d2 = self[item] - other[item] 528 if d1: 529 result1[item] = d1 530 if d2: 531 result2[item] = d2 532 elif self[item] != other[item]: 533 result1[item] = self[item] 534 result2[item] = other[item] 535 if len(result1) + len(result2) == 0: 536 assert self == other, "Error in ParameterSet.diff()" 537 return result1, result2 510 538 511 539 # Classes for specifiying a parameter by a statistical distribution … … 723 751 724 752 self.rows = self.items 725 self.rows.__doc__ = "Return a list of (row_label, row) pairs, as 2-tuples."""753 #self.rows.__doc__ = "Return a list of (row_label, row) pairs, as 2-tuples.""" 726 754 self.row_labels = self.keys 727 self.row_labels.__doc__ = "Return a list of row labels."755 #self.row_labels.__doc__ = "Return a list of row labels." 728 756 729 757 def _check_is_table(self):

