return ctypes.WINFUNCTYPE(*args, **kwargs)
+if sys.version_info < (3, 0):
+ # open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True) not: opener=None
+ def compat_open(file_, *args, **kwargs):
+ if len(args) > 6 or 'opener' in kwargs:
+ raise ValueError('open: unsupported argument "opener"')
+ return io.open(file_, *args, **kwargs)
+else:
+ compat_open = open
+
+
legacy = [
'compat_HTMLParseError',
'compat_HTMLParser',
'compat_kwargs',
'compat_map',
'compat_numeric_types',
+ 'compat_open',
'compat_ord',
'compat_os_name',
'compat_os_path_expanduser',
compat_get_terminal_size,
compat_getenv,
compat_kwargs,
+ compat_open as open,
compat_shlex_split,
)
from .utils import (
def parseOpts(overrideArguments=None):
def _readOptions(filename_bytes, default=[]):
try:
- optionf = open(filename_bytes)
+ optionf = open(filename_bytes, encoding=preferredencoding())
except IOError:
return default # silently skip if file is not present
try:
- # FIXME: https://github.com/ytdl-org/youtube-dl/commit/dfe5fa49aed02cf36ba9f743b11b0903554b5e56
contents = optionf.read()
- if sys.version_info < (3,):
- contents = contents.decode(preferredencoding())
res = compat_shlex_split(contents, comments=True)
finally:
optionf.close()