From 73159f99cc3be44b207154ecd56d16750cade77a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergey=20M=E2=80=A4?= 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 @@ def compat_print(s): 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: