def _convert_unit(self, idx, dim=0): if isinstance(idx, slice): return self._convert_slice(idx) if isinstance(idx, basestring): #TODO: testing on 2D dimensions, negative indices, very small steps # testing if/when uc should be updated, esp. in states encoding. number, unit = num_unit(idx) try: return self.uc[dim].i(number, unit) except ValueError: raise ValueError('Incompatible unit %s. Possible units: ppm, ms, hz' %unit) else: return idx
def interval(self, step): step_unit = num_unit(step)[1] return self._convert_unit(step) - self._convert_unit('0'+step_unit)