from __future__ import unicode_literals
-import ctypes
import getpass
import optparse
import os
-import platform
import re
import subprocess
import sys
optparse.OptionGroup.add_option = _compat_add_option
-if platform.python_implementation() == 'PyPy':
- # PyPy expects byte strings as Windows function names
- # https://github.com/rg3/youtube-dl/pull/4392
- def compat_WINFUNCTYPE(*args, **kwargs):
- real = ctypes.WINFUNCTYPE(*args, **kwargs)
-
- def resf(tpl, *args, **kwargs):
- funcname, dll = tpl
- return real((str(funcname), dll), *args, **kwargs)
-
- return resf
-else:
- def compat_WINFUNCTYPE(*args, **kwargs):
- return ctypes.WINFUNCTYPE(*args, **kwargs)
-
-
__all__ = [
'compat_HTTPError',
'compat_chr',
'compat_urllib_request',
'compat_urlparse',
'compat_urlretrieve',
- 'compat_WINFUNCTYPE',
'compat_xml_parse_error',
'shlex_quote',
'subprocess_check_output',
compat_urllib_parse_urlparse,
compat_urllib_request,
compat_urlparse,
- compat_WINFUNCTYPE,
shlex_quote,
)
if fileno not in WIN_OUTPUT_IDS:
return False
- GetStdHandle = compat_WINFUNCTYPE(
+ GetStdHandle = ctypes.WINFUNCTYPE(
ctypes.wintypes.HANDLE, ctypes.wintypes.DWORD)(
("GetStdHandle", ctypes.windll.kernel32))
h = GetStdHandle(WIN_OUTPUT_IDS[fileno])
- WriteConsoleW = compat_WINFUNCTYPE(
+ WriteConsoleW = ctypes.WINFUNCTYPE(
ctypes.wintypes.BOOL, ctypes.wintypes.HANDLE, ctypes.wintypes.LPWSTR,
ctypes.wintypes.DWORD, ctypes.POINTER(ctypes.wintypes.DWORD),
ctypes.wintypes.LPVOID)(("WriteConsoleW", ctypes.windll.kernel32))
written = ctypes.wintypes.DWORD(0)
- GetFileType = compat_WINFUNCTYPE(ctypes.wintypes.DWORD, ctypes.wintypes.DWORD)(("GetFileType", ctypes.windll.kernel32))
+ GetFileType = ctypes.WINFUNCTYPE(ctypes.wintypes.DWORD, ctypes.wintypes.DWORD)(("GetFileType", ctypes.windll.kernel32))
FILE_TYPE_CHAR = 0x0002
FILE_TYPE_REMOTE = 0x8000
- GetConsoleMode = compat_WINFUNCTYPE(
+ GetConsoleMode = ctypes.WINFUNCTYPE(
ctypes.wintypes.BOOL, ctypes.wintypes.HANDLE,
ctypes.POINTER(ctypes.wintypes.DWORD))(
("GetConsoleMode", ctypes.windll.kernel32))