Remove legacy code
[youtube-dl] / youtube_dl / FileDownloader.py
index aad12fc1ff7737870335210051a09e15c2af082b..a7f3e106434fdcb486a8db63b7e886dd36cc1a09 100644 (file)
@@ -4,12 +4,14 @@
 from __future__ import absolute_import
 
 import math
+import io
 import os
 import re
 import socket
 import subprocess
 import sys
 import time
+import traceback
 
 if os.name == 'nt':
     import ctypes
@@ -217,6 +219,8 @@ class FileDownloader(object):
         """
         if message is not None:
             self.to_stderr(message)
+        if self.params.get('verbose'):
+            self.to_stderr(u''.join(traceback.format_list(traceback.extract_stack())))
         if not self.params.get('ignoreerrors', False):
             raise DownloadError(message)
         self._download_retcode = 1
@@ -445,17 +449,8 @@ class FileDownloader(object):
             infofn = filename + u'.info.json'
             self.report_writeinfojson(infofn)
             try:
-                json.dump
-            except (NameError,AttributeError):
-                self.trouble(u'ERROR: No JSON encoder found. Update to Python 2.6+, setup a json module, or leave out --write-info-json.')
-                return
-            try:
-                infof = open(encodeFilename(infofn), 'wb')
-                try:
-                    json_info_dict = dict((k,v) for k,v in info_dict.iteritems() if not k in ('urlhandle',))
-                    json.dump(json_info_dict, infof)
-                finally:
-                    infof.close()
+                json_info_dict = dict((k, v) for k,v in info_dict.items() if not k in ['urlhandle'])
+                write_json_file(json_info_dict, encodeFilename(infofn))
             except (OSError, IOError):
                 self.trouble(u'ERROR: Cannot write metadata to JSON file ' + infofn)
                 return