summaryrefslogtreecommitdiff
path: root/paste/wareweb/timeinterval.py
diff options
context:
space:
mode:
Diffstat (limited to 'paste/wareweb/timeinterval.py')
-rw-r--r--paste/wareweb/timeinterval.py70
1 files changed, 0 insertions, 70 deletions
diff --git a/paste/wareweb/timeinterval.py b/paste/wareweb/timeinterval.py
deleted file mode 100644
index f2d14b8..0000000
--- a/paste/wareweb/timeinterval.py
+++ /dev/null
@@ -1,70 +0,0 @@
-"""
-timeinterval
-
-Convert interval strings (in the form of 1w2d, etc) to
-seconds, and back again. Is not exactly about months or
-years (leap years in particular).
-
-Accepts (y)ear, (b)month, (w)eek, (d)ay, (h)our, (m)inute, (s)econd.
-
-Exports only time_encode and time_decode functions.
-"""
-
-import re
-
-second = 1
-minute = second*60
-hour = minute*60
-day = hour*24
-week = day*7
-month = day*30
-year = day*365
-time_values = {
- 'y': year,
- 'b': month,
- 'w': week,
- 'd': day,
- 'h': hour,
- 'm': minute,
- 's': second,
- }
-time_ordered = time_values.items()
-time_ordered.sort(lambda a, b: -cmp(a[1], b[1]))
-
-def time_encode(seconds):
- """Encodes a number of seconds (representing a time interval)
- into a form like 1h2d3s."""
- s = ''
- for char, amount in time_ordered:
- if seconds >= amount:
- i, seconds = divmod(seconds, amount)
- s += '%i%s' % (i, char)
- return s
-
-time_re = re.compile(r'[0-9]+[a-zA-Z]')
-def time_decode(s):
- """Decodes a number in the format 1h4d3m (1 hour, 3 days, 3 minutes)
- into a number of seconds"""
- time = 0
- for match in all_matches(s, time_re):
- char = match.group(0)[-1].lower()
- if not time_values.has_key(char):
- # @@: should signal error
- continue
- time += int(match.group(0)[:-1]) * time_values[char]
- return time
-
-def all_matches(source, regex):
- """
- Return a list of matches for regex in source
- """
- pos = 0
- end = len(source)
- rv = []
- match = regex.search(source, pos)
- while match:
- rv.append(match)
- match = regex.search(source, match.end() )
- return rv
-
-__all__ = ['time_encode', 'time_decode']