import json import hashlib from sys import version_info from datetime import datetime IS_PY3 = version_info[0] >= 3 if IS_PY3: import email.utils as rfc822 else: import rfc822 def rfc822_timestamp(time_string): return datetime.fromtimestamp(rfc822.mktime_tz(rfc822.parsedate_tz(time_string))) def uri_to_bucket_and_object(uri): if not uri.startswith("fds://"): return None, None bucket_object_pair = uri[6:].split('/', 1) bucket = bucket_object_pair[0] object = bucket_object_pair[1] return bucket, object def to_json_object(src): if isinstance(src, bytes): src = src.decode(encoding='utf-8') if src: return json.loads(src) return None def file_md5(filename, blocksize=2**20): m = hashlib.md5() with open(filename, "rb") as f: while True: buf = f.read(blocksize) if not buf: break m.update(buf) return m.hexdigest()