[utils] Add missing mode and encoding arguments
authorSergey M․ <dstftw@gmail.com>
Thu, 21 Aug 2014 15:03:00 +0000 (22:03 +0700)
committerSergey M․ <dstftw@gmail.com>
Thu, 21 Aug 2014 15:03:00 +0000 (22:03 +0700)
youtube_dl/utils.py

index d11e46c80d76c2405cdb05d26f056cd45ae27bab..f8ec5389f4978a6060070be019a176e0deff46d4 100644 (file)
@@ -233,18 +233,24 @@ else:
 def write_json_file(obj, fn):
     """ Encode obj as JSON and write it to fn, atomically """
 
+    args = {
+        'suffix': '.tmp',
+        'prefix': os.path.basename(fn) + '.',
+        'dir': os.path.dirname(fn),
+        'delete': False,
+    }
+
     # In Python 2.x, json.dump expects a bytestream.
     # In Python 3.x, it writes to a character stream
     if sys.version_info < (3, 0):
-        mode = 'wb'
-        encoding = None
+        args['mode'] = 'wb'
     else:
-        mode = 'w'
-        encoding = 'utf-8'
-    tf = tempfile.NamedTemporaryFile(
-        suffix='.tmp', prefix=os.path.basename(fn) + '.',
-        dir=os.path.dirname(fn),
-        delete=False)
+        args.update({
+            'mode': 'w',
+            'encoding': 'utf-8',
+        })
+
+    tf = tempfile.NamedTemporaryFile(**args)
 
     try:
         with tf: