Mercurial > repos > cathywise > truststore_import
view PythonTrustStore-0.2.0/py_ts/parts.py @ 1:ff126718bdc5
Uploaded
author | cathywise |
---|---|
date | Wed, 11 Dec 2013 21:05:12 -0500 |
parents | |
children |
line wrap: on
line source
import pprint import json import base64 import traceback class Elem(object): expires = -1 name = "Elem" remote_size = -1 remote_last_modified = -1 def __init__(self, eDict=None): if eDict: self.expires = eDict['expiryDateTime'] self.name = eDict['name'] self.remote_size = eDict['remoteSize'] if 'remoteLastmodified' in eDict: self.remote_last_modified = eDict['remoteLastmodified'] # if self.remote_last_modified >= 0: # self.remote_last_modified = datetime.utcfromtimestamp(self.remote_last_modified / 1000) # JAVA RAGE def dict(self): return {'expiryDateTime': self.expires, 'name': self.name, 'remoteSize': self.remote_size} def __repr__(self): # return json.dumps(self.dict(), sort_keys=True, indent=4) return "Elem: " + pprint.pformat(self.dict()) class Directory(Elem): name = "Virtual Directory" children = [] def __init__(self, eDict=None, jsonText=None): self.children = [] if jsonText: eDict = json.loads(jsonText) if eDict: Elem.__init__(self, eDict=eDict) for child in eDict['children']: if child['isDir']: self.children.append(Directory(child)) else: self.children.append(File(child)) def dict(self): me = Elem.dict(self) me['isDir'] = True me['children'] = [kid.dict() for kid in self.children] return me def __repr__(self): this = self.dict() return "Directory: " + pprint.pformat(this) # return json.dumps(this, sort_keys=True, indent=4) class File(Elem): name = "file" remote_size = 0 local_path = "" fragments = [] def __init__(self, extras=None): self.fragments = [] if extras: Elem.__init__(self, eDict=extras) for fragment in extras['fragments']: self.fragments.append(Fragment(fragment)) def dict(self): me = Elem.dict(self) me['isDir'] = False me['fragments'] = [fragment.dict() for fragment in self.fragments] return me def __repr__(self): # return json.dumps(self.dict(), sort_keys=True, indent=4) return "File: " + pprint.pformat(self.dict()) class Fragment(object): name = "" order = 0 providers = [] # Newer root files have these length = None iv = None offset = None def __init__(self, eDict=None): if eDict: self.name = eDict['codename'] self.order = eDict['orderNo'] self.providers = eDict['sasProviders'] if "length" in eDict: self.length = eDict["length"] if "iv" in eDict: self.iv = base64.b64decode(eDict["iv"]) if "offset" in eDict: self.offset = eDict["offset"] else: self.providers = [] def dict(self): form = {'codename': self.name, 'orderNo': self.order, 'sasProviders': self.providers} if self.length: form["length"] = self.length if self.iv: form["iv"] = base64.b64encode(self.iv) if self.offset != None: form["offset"] = self.offset return form def __repr__(self): return json.dumps(self.dict())