Changeset 353
- Timestamp:
- 11/17/08 14:57:23 (2 months ago)
- Files:
-
- trunk/src/parameters.py (modified) (6 diffs)
- trunk/src/random.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/parameters.py
r311 r353 156 156 157 157 non_parameter_attributes = ['_url','label','names','parameters','flat','flatten','non_parameter_attributes'] 158 invalid_names = ['parameters', 'names'] # should probably add dir(dict) 158 159 159 160 @staticmethod … … 191 192 return D or {} 192 193 194 @staticmethod 195 def check_validity(k): 196 if k in ParameterSet.invalid_names: 197 raise Exception("'%s' is not allowed as a parameter name." % k) 198 193 199 def __init__(self, initialiser, label=None): 194 200 … … 197 203 # `ParameterSet` objects. 198 204 for k,v in d.items(): 205 ParameterSet.check_validity(k) 199 206 if isinstance(v, ParameterSet): 200 207 d[k] = v … … 208 215 if isinstance(initialiser, basestring): # url or str 209 216 try: 210 try: 211 # can't handle cases where authentication is required 212 # should be rewritten using urllib2 213 #scheme, netloc, path, \ 214 # parameters, query, fragment = urlparse(initialiser) 215 f = urllib.urlopen(initialiser) 216 pstr = f.read() 217 self._url = initialiser 218 except IOError: 219 pstr = initialiser 220 self._url = None 221 finally: 222 try: 223 f.close() 224 except: 225 pass 217 # can't handle cases where authentication is required 218 # should be rewritten using urllib2 219 #scheme, netloc, path, \ 220 # parameters, query, fragment = urlparse(initialiser) 221 f = urllib.urlopen(initialiser) 222 pstr = f.read() 223 self._url = initialiser 224 except IOError: 225 pstr = initialiser 226 self._url = None 227 else: 228 f.close() 229 226 230 227 231 initialiser = ParameterSet.read_from_str(pstr) … … 232 236 if isinstance(initialiser, dict): 233 237 for k,v in initialiser.items(): 238 ParameterSet.check_validity(k) 234 239 if isinstance(v, ParameterSet): 235 240 self[k] = v … … 318 323 if not url: 319 324 url = self._url 325 assert url != '' 326 if not self._url: 327 self._url = url 320 328 scheme, netloc, path, parameters, query, fragment = urlparse(url) 321 if scheme != 'file': 322 raise Exception("Saving using the %s protocol is not implemented" % scheme) 323 else: 329 if scheme == 'file' or (scheme=='' and netloc==''): 324 330 f = open(path, 'w') 325 331 f.write(self.pretty(expand_urls=expand_urls)) 326 332 f.close() 333 else: 334 if scheme: 335 raise Exception("Saving using the %s protocol is not implemented" % scheme) 336 else: 337 raise Exception("No protocol (http, ftp, etc) specified.") 327 338 328 339 def pretty(self, indent=' ', expand_urls=False): trunk/src/random.py
r311 r353 141 141 """ 142 142 143 def __init__(self,min=0.0,max=1.0 ):143 def __init__(self,min=0.0,max=1.0, return_type=float): 144 144 ParameterDist.__init__(self,min=min,max=max) 145 145 self.dist_name = 'UniformDist' 146 self.return_type = return_type 146 147 147 148 def next(self,n=1): 148 return numpy.random.uniform(low=self.params['min'],high=self.params['max'],size=n) 149 vals = numpy.random.uniform(low=self.params['min'],high=self.params['max'],size=n) 150 if self.return_type != float: 151 vals = vals.astype(self.return_type) 152 return vals 149 153 150 151 154 def from_stats(self,vals,bias=0.0,expand=1.0): 152 155 mn = numpy.min(vals)

