Browse Source

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.
totalwebcasting
Philipp Hagemeister 11 years ago
parent
commit
4192b51c7c
1 changed files with 6 additions and 9 deletions
  1. +6
    -9
      youtube_dl/YoutubeDL.py

+ 6
- 9
youtube_dl/YoutubeDL.py View File

@ -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)
except:
errmsg = 'Failed to write encoding string %r' % encoding_str
try:
sys.stdout.write(errmsg)
except:
pass
raise IOError(errmsg)
write_string(encoding_str, encoding=None)
self._write_string('[debug] youtube-dl version ' + __version__ + '\n') self._write_string('[debug] youtube-dl version ' + __version__ + '\n')
try: try:


Loading…
Cancel
Save