--- orgparser.py 2011-08-17 11:19:25.180715783 -0400 +++ newparser.py 2011-08-17 11:19:07.338833330 -0400 @@ -292,6 +292,24 @@ def __init__(self, info=None): self.info = info or parserinfo() + def interval_precision(self, timestr, default=None, + ignoretz=False, tzinfos=None, + **kwargs): + if not default: + default = datetime.datetime.now().replace(hour=0, minute=0, + second=0, microsecond=0) + res = self._parse(timestr, **kwargs) + if res is None: + raise ValueError, "unknown string format" + repl = {} + for attr in ["year", "month", "day", "hour", + "minute", "second", "microsecond"]: + value = getattr(res, attr) + if value is not None: + repl[attr] = value + detail = attr + return detail + def parse(self, timestr, default=None, ignoretz=False, tzinfos=None, **kwargs): @@ -696,6 +714,12 @@ else: return DEFAULTPARSER.parse(timestr, **kwargs) +def interval_precision(timestr, parserinfo=None, **kwargs): + if parserinfo: + return parser(parserinfo).interval_precision(timestr, **kwargs) + else: + return DEFAULTPARSER.interval_precision(timestr, **kwargs) + class _tzparser(object):