@@ -11,16 +11,18 @@ import os import re import tarfile import glob import time +import datetime from http import HTTP from gzip import open as gzopen from settings import global_settings __all__ = [ + 'parse_version', 'read_file', 'write_file', 'readlines_file', 'up', 'abspath', @@ -38,10 +40,18 @@ 'w2p_pack_plugin', 'w2p_unpack_plugin', 'fix_newlines', 'make_fake_file_like_object', ] + +def parse_version(version = "Version 1.99.0 (2011-09-19 08:23:26)"): + re_version = re.compile('[^\d]+ (\d+)\.(\d+)\.(\d+)\s*\((?P.+?)\)\s*(?P[a-z]+)?') + m = re_version.match(version) + a,b,c = int(m.group(1)),int(m.group(2)),int(m.group(3)), + s = m.group('type') or 'dev' + d = datetime.datetime.strptime(m.group('datetime'),'%Y-%m-%d %H:%M:%S') + return (a,b,c,d,s) def read_file(filename, mode='r'): "returns content from filename, making sure to close the file explicitly on exit." f = open(filename, mode) try: @@ -382,6 +392,8 @@ def write(self, value): pass def close(self): pass return LogFile() + +