diff options
author | Philipp Hagemeister <phihag@phihag.de> | 2014-11-15 15:17:19 +0100 |
---|---|---|
committer | Philipp Hagemeister <phihag@phihag.de> | 2014-11-15 15:17:19 +0100 |
commit | c7b0add86f67942b8e68c1b9dd537132e9383d2f (patch) | |
tree | 64c07707f6280c1524dc029e5f46ae0c12b574c4 /youtube_dl | |
parent | a0155d93d9659cfc4f5f723b3e2cd7a97c0a4dc2 (diff) |
[compat] Work around kwargs bugs in old 2.6 Python releases (Fixes #3813)
Diffstat (limited to 'youtube_dl')
-rw-r--r-- | youtube_dl/compat.py | 9 | ||||
-rw-r--r-- | youtube_dl/options.py | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py index b3752634a..385924803 100644 --- a/youtube_dl/compat.py +++ b/youtube_dl/compat.py @@ -288,6 +288,14 @@ if sys.version_info < (3, 0) and sys.platform == 'win32': else: compat_getpass = getpass.getpass +# Old 2.6 and 2.7 releases require kwargs to be bytes +try: + (lambda x: x)(**{'x': 0}) +except TypeError: + def compat_kwargs(kwargs): + return dict((bytes(k), v) for k, v in kwargs.items()) +else: + compat_kwargs = lambda kwargs: kwargs __all__ = [ 'compat_HTTPError', @@ -299,6 +307,7 @@ __all__ = [ 'compat_html_entities', 'compat_html_parser', 'compat_http_client', + 'compat_kwargs', 'compat_ord', 'compat_parse_qs', 'compat_print', diff --git a/youtube_dl/options.py b/youtube_dl/options.py index c182abfdc..16aa6ffca 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -8,6 +8,7 @@ import sys from .compat import ( compat_expanduser, compat_getenv, + compat_kwargs, ) from .utils import ( get_term_width, @@ -112,7 +113,7 @@ def parseOpts(overrideArguments=None): 'conflict_handler': 'resolve', } - parser = optparse.OptionParser(**kw) + parser = optparse.OptionParser(**compat_kwargs(kw)) general = optparse.OptionGroup(parser, 'General Options') general.add_option( |