Files
deb-python-pytimeparse/timeparse.py
2014-01-31 21:06:09 +01:00

44 lines
1.2 KiB
Python

# ------------------------------------------------------------
# implementation
# ------------------------------------------------------------
import re
YEARS = r'(?P<years>\d+)\s*(?:ys?|yrs?.?|years?)'
MONTHS = r'(?P<months>\d+)\s*(?:mos?.?|mths?.?|months?)'
DAYS = r'(?P<days>\d+)\s*(?:d|dys?|days?)'
HOURS = r'(?P<hours>\d+)\s*(?:h|hrs?|hours?)'
MINS = r'(?P<mins>\d+)\s*(?:m|(mins?)|(minutes?))'
SECS = r'(?P<secs>\d+)\s*(?:s|secs?|seconds?)'
SEPARATORS = r'[,/]'
OPT = lambda x: '(?:{x})?'.format(x=x, SEPARATORS=SEPARATORS)
OPTSEP = lambda x: '(?:{x}\s*(?:{SEPARATORS}\s*)?)?'.format(x=x, SEPARATORS=SEPARATORS)
#TIME = r'(?:{HOURS}\s*(?:{SEPARATORS}\s*)?)?(?:{MINS}\s*(?:{SEPARATORS}\s*)?\s*)?(?:{SECS})?'.format(HOURS=HOURS, SEPARATORS=SEPARATORS, MINS=MINS, SECS=SECS)
TIME = '{YEARS}\s*{MONTHS}\s*{DAYS}\s*{HOURS}\s*{MINS}\s*{SECS}'.format(
YEARS=OPTSEP(YEARS),
MONTHS=OPTSEP(MONTHS),
DAYS=OPTSEP(DAYS),
HOURS=OPTSEP(HOURS),
MINS=OPTSEP(MINS),
SECS=OPT(SECS))
#TIME = r'{HOURS}\s*{MINS}\s*{SECS}'.format(HOURS=HOURS, SEPARATORS=SEPARATORS, MINS=MINS, SECS=SECS)
def t(x, y):
if re.match(x, y):
print re.match(x, y).group(0)
print re.match(x, y).groupdict()
#RE =