def unwrap_variable_bins(*args,**kwargs): """Help function to unwrap variable arguments to return variable name, number of bins, minumum and maximum x axis value.""" if len(args)==4: return args # (xvar,nxbins,xmin,xmax) elif len(args)==1 and isintance(args[0],Variable): return args[0].unwrap() LOG.throw(IOError,'unwrap_variable_bins: Could not unwrap arguments "%s" to a Variable object.'%args)
def ensurevar(*args,**kwargs): """Help function to ensure arguments are one Variable object: - xvar, nxbins, xmin, xmax (str, int, float, float) - xvar, xbins (str, list) - var (str) """ args = unwraplistargs(args) if len(args)==4: return Variable(*args) # (xvar,nxbins,xmin,xmax) elif len(args)==2 and islist(args[1]): return Variable(*args) # (xvar,xbins) elif len(args)==1 and isinstance(args[0],Variable): return args[0] else: LOG.throw(IOError,'unwrap_variable_args: Could not unwrap arguments %s, len(args)=%d. Returning None.'%(args,len(args)))
def setbins(self, *args): """Set binning: (N,min,max), or bins if it is set""" numbers = [a for a in args if isnumber(a)] bins = [a for a in args if islist(a)] if len(numbers) == 3: self.nbins = numbers[0] self.min = numbers[1] self.max = numbers[2] self.bins = None elif len(bins) > 0: bins = list(bins[0]) self.nbins = len(bins) - 1 self.min = bins[0] self.max = bins[-1] self.bins = bins else: LOG.throw(IOError, 'Variable: bad arguments "%s" for binning!' % (args, ))
def setbins(self,*args): """Set binning: (N,min,max), or bins if it is set""" LOG.verb('Variable.setbins: setting binning to %s'%(args,),level=2) numbers = [a for a in args if isnumber(a)] bins = [a for a in args if islist(a) ] if len(numbers)==3: self.nbins = numbers[0] self.min = numbers[1] self.max = numbers[2] self.bins = None elif len(bins)>0: edges = list(bins[0]) self.nbins = len(edges)-1 self.min = edges[0] self.max = edges[-1] self.bins = edges else: LOG.throw(IOError,'Variable: bad arguments "%s" for binning!'%(args,))