Replace failure handling with up-front check.
The only time that write_string should fail is if the Python is completely braindead. Check for that condition and output a more accurate warning. See #3326 for details.
This commit is contained in:
parent
052421ff09
commit
4192b51c7c
|
@ -1234,21 +1234,18 @@ class YoutubeDL(object):
|
||||||
if not self.params.get('verbose'):
|
if not self.params.get('verbose'):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if type('') is not compat_str:
|
||||||
|
# Python 2.6 on SLES11 SP1 (https://github.com/rg3/youtube-dl/issues/3326)
|
||||||
|
self.report_warning(
|
||||||
|
'Your Python is broken! Update to a newer and supported version')
|
||||||
|
|
||||||
encoding_str = (
|
encoding_str = (
|
||||||
'[debug] Encodings: locale %s, fs %s, out %s, pref %s\n' % (
|
'[debug] Encodings: locale %s, fs %s, out %s, pref %s\n' % (
|
||||||
locale.getpreferredencoding(),
|
locale.getpreferredencoding(),
|
||||||
sys.getfilesystemencoding(),
|
sys.getfilesystemencoding(),
|
||||||
sys.stdout.encoding,
|
sys.stdout.encoding,
|
||||||
self.get_encoding()))
|
self.get_encoding()))
|
||||||
try:
|
|
||||||
write_string(encoding_str, encoding=None)
|
write_string(encoding_str, encoding=None)
|
||||||
except:
|
|
||||||
errmsg = 'Failed to write encoding string %r' % encoding_str
|
|
||||||
try:
|
|
||||||
sys.stdout.write(errmsg)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
raise IOError(errmsg)
|
|
||||||
|
|
||||||
self._write_string('[debug] youtube-dl version ' + __version__ + '\n')
|
self._write_string('[debug] youtube-dl version ' + __version__ + '\n')
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue