youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit e07e931375df3984e4f92610413a2f52764bf432
parent 480b7c32a94db050bb216519d3b7fd4589d1e8fb
Author: Philipp Hagemeister <phihag@phihag.de>
Date:   Wed, 19 Nov 2014 18:21:58 +0100

Work around 2.7.0 deficencies (Fixes #4223)

Diffstat:
Myoutube_dl/__init__.py | 3+++
Myoutube_dl/compat.py | 22++++++++++++++++++++++
2 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py @@ -19,6 +19,7 @@ from .compat import ( compat_expanduser, compat_getpass, compat_print, + workaround_optparse_bug9161, ) from .utils import ( DateRange, @@ -57,6 +58,8 @@ def _real_main(argv=None): # https://github.com/rg3/youtube-dl/issues/820 codecs.register(lambda name: codecs.lookup('utf-8') if name == 'cp65001' else None) + workaround_optparse_bug9161() + setproctitle('youtube-dl') parser, opts, args = parseOpts(argv) diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import getpass +import optparse import os import subprocess import sys @@ -297,6 +298,26 @@ except TypeError: else: compat_kwargs = lambda kwargs: kwargs + +# Fix https://github.com/rg3/youtube-dl/issues/4223 +# See http://bugs.python.org/issue9161 for what is broken +def workaround_optparse_bug9161(): + try: + optparse.OptionGroup('foo').add_option('-t') + except TypeError: + real_add_option = optparse.OptionGroup.add_option + + def _compat_add_option(self, *args, **kwargs): + enc = lambda v: ( + v.encode('ascii', 'replace') if isinstance(v, compat_str) + else v) + bargs = [enc(a) for a in args] + bkwargs = dict( + (k, enc(v)) for k, v in kwargs.items()) + return real_add_option(self, *bargs, **bkwargs) + optparse.OptionGroup.add_option = _compat_add_option + + __all__ = [ 'compat_HTTPError', 'compat_chr', @@ -323,4 +344,5 @@ __all__ = [ 'compat_xml_parse_error', 'shlex_quote', 'subprocess_check_output', + 'workaround_optparse_bug9161', ]