def _coerce_scalar_to_timedelta_type(r, unit='ns'): # kludgy here until we have a timedelta scalar # handle the numpy < 1.7 case def conv(v): if _np_version_under1p7: return timedelta(microseconds=v/1000.0) return np.timedelta64(v) if isinstance(r, compat.string_types): converter = _get_string_converter(r, unit=unit) r = converter() r = conv(r) elif r == tslib.iNaT: return r elif isinstance(r, np.timedelta64): r = r.astype("m8[{0}]".format(unit.lower())) elif is_integer(r): r = tslib.cast_from_unit(r, unit) r = conv(r) if _np_version_under1p7: if not isinstance(r, timedelta): raise AssertionError("Invalid type for timedelta scalar: %s" % type(r)) if compat.PY3: # convert to microseconds in timedelta64 r = np.timedelta64(int(r.total_seconds()*1e9 + r.microseconds*1000)) else: return r if isinstance(r, timedelta): r = np.timedelta64(r) elif not isinstance(r, np.timedelta64): raise AssertionError("Invalid type for timedelta scalar: %s" % type(r)) return r.astype('timedelta64[ns]')
def convert(r=None, unit=None, m=m): if r is not None: m = _full_search.search(r) gd = m.groupdict() # handle time value = 0 time = gd['time'] if time: (hh,mm,ss) = time.split(':') value += int((float(hh)*3600 + float(mm)*60 + float(ss))*1e9) # handle frac frac = gd['frac'] if frac: value += round(float(frac)*1e9) # handle days (possibly negative) is_neg = gd['neg'] if gd['days']: days = int((float(gd['days'] or 0) * 86400)*1e9) if gd['neg']: days *= -1 value += days else: if gd['neg']: value *= -1 return tslib.cast_from_unit(value, 'ns')
def convert(r=None, unit=None, m=m): if r is not None: m = _full_search2.search(r) gd = m.groupdict() # the parser def parse(k, v): if v is None: return 0 v = float(_number_split.search(v).group()) return int(v*_unit_scale[k]) # handle non-days days = gd.pop('days',None) neg = gd.pop('neg',None) value = 0 for k, v in gd.items(): value += parse(k,v) # parse days / neg if days: days = parse('days',days) if neg: days *= -1 value += days else: if neg: value *= -1 return tslib.cast_from_unit(value, 'ns')
def convert(r=None, unit=None, m=m): if r is not None: m = _full_search2.search(r) gd = m.groupdict() # the parser def parse(k, v): if v is None: return 0 v = float(_number_split.search(v).group()) return int(v * _unit_scale[k]) # handle non-days days = gd.pop('days', None) neg = gd.pop('neg', None) value = 0 for k, v in gd.items(): value += parse(k, v) # parse days / neg if days: days = parse('days', days) if neg: days *= -1 value += days else: if neg: value *= -1 return tslib.cast_from_unit(value, 'ns')
def convert(r=None, unit=None, m=m): if r is not None: m = _full_search.search(r) gd = m.groupdict() # handle time value = 0 time = gd['time'] if time: (hh, mm, ss) = time.split(':') value += int( (float(hh) * 3600 + float(mm) * 60 + float(ss)) * 1e9) # handle frac frac = gd['frac'] if frac: value += round(float(frac) * 1e9) # handle days (possibly negative) is_neg = gd['neg'] if gd['days']: days = int((float(gd['days'] or 0) * 86400) * 1e9) if gd['neg']: days *= -1 value += days else: if gd['neg']: value *= -1 return tslib.cast_from_unit(value, 'ns')
def convert(r=None, unit=unit, m=m): if r is not None: m = _short_search.search(r) gd = m.groupdict() r = float(gd['value']) u = gd.get('unit') if u is not None: unit = u.lower() if gd['neg']: r *= -1 return tslib.cast_from_unit(r, unit)
def convert(r=None, unit=None, m=m): if r is not None: m = _full_search.search(r) gd = m.groupdict() # convert to seconds value = float(gd['days'] or 0) * 86400 time = gd['time'] if time: (hh,mm,ss) = time.split(':') value += float(hh)*3600 + float(mm)*60 + float(ss) frac = gd['frac'] if frac: value += float(frac) if gd['neg']: value *= -1 return tslib.cast_from_unit(value, 's')
def convert(r=None, unit=None, m=m): if r is not None: m = _full_search.search(r) gd = m.groupdict() # convert to seconds value = float(gd['days'] or 0) * 86400 time = gd['time'] if time: (hh, mm, ss) = time.split(':') value += float(hh) * 3600 + float(mm) * 60 + float(ss) frac = gd['frac'] if frac: value += float(frac) if gd['neg']: value *= -1 return tslib.cast_from_unit(value, 's')