From 73159f99cc3be44b207154ecd56d16750cade77a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergey=20M=E2=80=A4?= <dstftw@gmail.com>
Date: Thu, 21 Aug 2014 22:03:00 +0700
Subject: [PATCH] [utils] Add missing mode and encoding arguments

---
 youtube_dl/utils.py | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index d11e46c80..f8ec5389f 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -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: