diff --git a/src/you_get/common.py b/src/you_get/common.py index a5a0fbab..7f76aaac 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -1046,6 +1046,22 @@ def set_http_proxy(proxy): opener = request.build_opener(proxy_support) request.install_opener(opener) +def print_more_compatible(*args, **kwargs): + import builtins as __builtin__ + """Overload default print function as py (<3.3) does not support 'flush' keyword. + Although the function name can be same as print to get itself overloaded automatically, + I'd rather leave it with a different name and only overload it when importing to make less confusion. """ + # nothing happens on py3.3 and later + if sys.version_info[:2] >= (3, 3): + return __builtin__.print(*args, **kwargs) + + # in lower pyver (e.g. 3.2.x), remove 'flush' keyword and flush it as requested + doFlush = kwargs.pop('flush', False) + ret = __builtin__.print(*args, **kwargs) + if doFlush: + kwargs.get('file', sys.stdout).flush() + return ret + def download_main(download, download_playlist, urls, playlist, **kwargs): diff --git a/src/you_get/extractor.py b/src/you_get/extractor.py index 3cc78289..594b908e 100644 --- a/src/you_get/extractor.py +++ b/src/you_get/extractor.py @@ -1,6 +1,7 @@ #!/usr/bin/env python from .common import match1, maybe_print, download_urls, get_filename, parse_host, set_proxy, unset_proxy +from .common import print_more_compatible as print from .util import log from . import json_output import os diff --git a/src/you_get/extractors/iqiyi.py b/src/you_get/extractors/iqiyi.py index 80fa5f93..91329708 100644 --- a/src/you_get/extractors/iqiyi.py +++ b/src/you_get/extractors/iqiyi.py @@ -1,6 +1,7 @@ #!/usr/bin/env python from ..common import * +from ..common import print_more_compatible as print from ..extractor import VideoExtractor from ..util import log from .. import json_output diff --git a/src/you_get/extractors/netease.py b/src/you_get/extractors/netease.py index b37ee003..63ee59b8 100644 --- a/src/you_get/extractors/netease.py +++ b/src/you_get/extractors/netease.py @@ -4,6 +4,7 @@ __all__ = ['netease_download'] from ..common import * +from ..common import print_more_compatible as print from ..util import fs from json import loads import hashlib diff --git a/src/you_get/processor/ffmpeg.py b/src/you_get/processor/ffmpeg.py index c34f43c2..1c0ba1a3 100644 --- a/src/you_get/processor/ffmpeg.py +++ b/src/you_get/processor/ffmpeg.py @@ -3,6 +3,7 @@ import os.path import subprocess from ..util.strings import parameterize +from ..common import print_more_compatible as print def get_usable_ffmpeg(cmd): try: