comparison PythonTrustStore-0.2.0/py_ts/parts.py @ 1:ff126718bdc5

Uploaded
author cathywise
date Wed, 11 Dec 2013 21:05:12 -0500
parents
children
comparison
equal deleted inserted replaced
0:22cc897d85c5 1:ff126718bdc5
1 import pprint
2 import json
3 import base64
4 import traceback
5
6
7 class Elem(object):
8 expires = -1
9 name = "Elem"
10 remote_size = -1
11 remote_last_modified = -1
12
13 def __init__(self, eDict=None):
14 if eDict:
15 self.expires = eDict['expiryDateTime']
16 self.name = eDict['name']
17 self.remote_size = eDict['remoteSize']
18 if 'remoteLastmodified' in eDict:
19 self.remote_last_modified = eDict['remoteLastmodified']
20 # if self.remote_last_modified >= 0:
21 # self.remote_last_modified = datetime.utcfromtimestamp(self.remote_last_modified / 1000) # JAVA RAGE
22
23 def dict(self):
24 return {'expiryDateTime': self.expires,
25 'name': self.name,
26 'remoteSize': self.remote_size}
27
28 def __repr__(self):
29 # return json.dumps(self.dict(), sort_keys=True, indent=4)
30 return "Elem: " + pprint.pformat(self.dict())
31
32
33 class Directory(Elem):
34 name = "Virtual Directory"
35 children = []
36
37 def __init__(self, eDict=None, jsonText=None):
38 self.children = []
39 if jsonText:
40 eDict = json.loads(jsonText)
41 if eDict:
42 Elem.__init__(self, eDict=eDict)
43
44 for child in eDict['children']:
45 if child['isDir']:
46 self.children.append(Directory(child))
47 else:
48 self.children.append(File(child))
49
50 def dict(self):
51 me = Elem.dict(self)
52 me['isDir'] = True
53 me['children'] = [kid.dict() for kid in self.children]
54 return me
55
56 def __repr__(self):
57 this = self.dict()
58 return "Directory: " + pprint.pformat(this)
59 # return json.dumps(this, sort_keys=True, indent=4)
60
61
62 class File(Elem):
63 name = "file"
64 remote_size = 0
65 local_path = ""
66 fragments = []
67
68 def __init__(self, extras=None):
69 self.fragments = []
70 if extras:
71 Elem.__init__(self, eDict=extras)
72
73 for fragment in extras['fragments']:
74 self.fragments.append(Fragment(fragment))
75
76 def dict(self):
77 me = Elem.dict(self)
78 me['isDir'] = False
79 me['fragments'] = [fragment.dict() for fragment in self.fragments]
80 return me
81
82 def __repr__(self):
83 # return json.dumps(self.dict(), sort_keys=True, indent=4)
84 return "File: " + pprint.pformat(self.dict())
85
86
87 class Fragment(object):
88 name = ""
89 order = 0
90 providers = []
91 # Newer root files have these
92 length = None
93 iv = None
94 offset = None
95
96 def __init__(self, eDict=None):
97 if eDict:
98 self.name = eDict['codename']
99 self.order = eDict['orderNo']
100 self.providers = eDict['sasProviders']
101 if "length" in eDict:
102 self.length = eDict["length"]
103 if "iv" in eDict:
104 self.iv = base64.b64decode(eDict["iv"])
105 if "offset" in eDict:
106 self.offset = eDict["offset"]
107 else:
108 self.providers = []
109
110 def dict(self):
111 form = {'codename': self.name, 'orderNo': self.order, 'sasProviders': self.providers}
112 if self.length:
113 form["length"] = self.length
114 if self.iv:
115 form["iv"] = base64.b64encode(self.iv)
116 if self.offset != None:
117 form["offset"] = self.offset
118 return form
119
120 def __repr__(self):
121 return json.dumps(self.dict())