33import json
44import pytz
55from enum import Enum
6+
67if PY3 :
78 from datetime import timezone
89
910# compat
1011from six .moves import map
1112
12- dthandler = lambda obj : obj .isoformat () if isinstance (obj , datetime ) or isinstance (obj , date ) else None
13+ dthandler = (
14+ lambda obj : obj .isoformat ()
15+ if isinstance (obj , datetime ) or isinstance (obj , date )
16+ else None
17+ )
18+
1319
1420class OutputModes (Enum ):
1521 """List of valid settings for the output_mode parameter of the OpenTok.start_archive()
1622 method."""
17- composed = u ('composed' )
23+
24+ composed = u ("composed" )
1825 """All streams in the archive are recorded to a single (composed) file."""
19- individual = u (' individual' )
26+ individual = u (" individual" )
2027 """Each stream in the archive is recorded to an individual file."""
2128
29+
2230class Archive (object ):
2331 """Represents an archive of an OpenTok session.
2432
@@ -87,22 +95,26 @@ class Archive(object):
8795
8896 def __init__ (self , sdk , values ):
8997 self .sdk = sdk
90- self .id = values .get ('id' )
91- self .name = values .get (' name' )
92- self .status = values .get (' status' )
93- self .session_id = values .get (' sessionId' )
94- self .partner_id = values .get (' partnerId' )
98+ self .id = values .get ("id" )
99+ self .name = values .get (" name" )
100+ self .status = values .get (" status" )
101+ self .session_id = values .get (" sessionId" )
102+ self .partner_id = values .get (" partnerId" )
95103 if PY2 :
96- self .created_at = datetime .fromtimestamp (values .get ('createdAt' ) / 1000 , pytz .UTC )
104+ self .created_at = datetime .fromtimestamp (
105+ values .get ("createdAt" ) / 1000 , pytz .UTC
106+ )
97107 if PY3 :
98- self .created_at = datetime .fromtimestamp (values .get ('createdAt' ) // 1000 , timezone .utc )
99- self .size = values .get ('size' )
100- self .duration = values .get ('duration' )
101- self .has_audio = values .get ('hasAudio' )
102- self .has_video = values .get ('hasVideo' )
103- self .output_mode = OutputModes [values .get ('outputMode' , 'composed' )]
104- self .url = values .get ('url' )
105- self .resolution = values .get ('resolution' )
108+ self .created_at = datetime .fromtimestamp (
109+ values .get ("createdAt" ) // 1000 , timezone .utc
110+ )
111+ self .size = values .get ("size" )
112+ self .duration = values .get ("duration" )
113+ self .has_audio = values .get ("hasAudio" )
114+ self .has_video = values .get ("hasVideo" )
115+ self .output_mode = OutputModes [values .get ("outputMode" , "composed" )]
116+ self .url = values .get ("url" )
117+ self .resolution = values .get ("resolution" )
106118
107119 def stop (self ):
108120 """
@@ -112,7 +124,7 @@ def stop(self):
112124 disconnected from the session being archived.
113125 """
114126 temp_archive = self .sdk .stop_archive (self .id )
115- for k ,v in iteritems (temp_archive .attrs ()):
127+ for k , v in iteritems (temp_archive .attrs ()):
116128 setattr (self , k , v )
117129
118130 def delete (self ):
@@ -138,21 +150,18 @@ def json(self):
138150 """
139151 return json .dumps (self .attrs (), default = dthandler , indent = 4 )
140152
141- class ArchiveList (object ):
142153
154+ class ArchiveList (object ):
143155 def __init__ (self , sdk , values ):
144- self .count = values .get (' count' )
145- self .items = list (map (lambda x : Archive (sdk , x ), values .get (' items' , [])))
156+ self .count = values .get (" count" )
157+ self .items = list (map (lambda x : Archive (sdk , x ), values .get (" items" , [])))
146158
147159 def __iter__ (self ):
148160 for x in self .items :
149161 yield x
150162
151163 def attrs (self ):
152- return {
153- 'count' : self .count ,
154- 'items' : map (Archive .attrs , self .items )
155- }
164+ return {"count" : self .count , "items" : map (Archive .attrs , self .items )}
156165
157166 def json (self ):
158167 return json .dumps (self .attrs (), default = dthandler , indent = 4 )
@@ -161,7 +170,9 @@ def __getitem__(self, key):
161170 return self .items .get (key )
162171
163172 def __setitem__ (self , key , item ):
164- raise ArchiveError (u ('Cannot set item {0} for key {1} in Archive object' ).format (item , key ))
173+ raise ArchiveError (
174+ u ("Cannot set item {0} for key {1} in Archive object" ).format (item , key )
175+ )
165176
166177 def __len__ (self ):
167178 return len (self .items )
0 commit comments