mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	Add support for IronPython
This commit is contained in:
		| @@ -2897,9 +2897,24 @@ except TypeError: | ||||
|         if isinstance(spec, compat_str): | ||||
|             spec = spec.encode('ascii') | ||||
|         return struct.unpack(spec, *args) | ||||
|  | ||||
|     class compat_Struct(struct.Struct): | ||||
|         def __init__(self, fmt): | ||||
|             if isinstance(fmt, compat_str): | ||||
|                 fmt = fmt.encode('ascii') | ||||
|             super(compat_Struct, self).__init__(fmt) | ||||
| else: | ||||
|     compat_struct_pack = struct.pack | ||||
|     compat_struct_unpack = struct.unpack | ||||
|     if platform.python_implementation() == 'IronPython' and sys.version_info < (2, 7, 8): | ||||
|         class compat_Struct(struct.Struct): | ||||
|             def unpack(self, string): | ||||
|                 if not isinstance(string, buffer): | ||||
|                     string = buffer(string) | ||||
|                 return super(compat_Struct, self).unpack(string) | ||||
|     else: | ||||
|         compat_Struct = struct.Struct | ||||
|  | ||||
|  | ||||
| try: | ||||
|     from future_builtins import zip as compat_zip | ||||
| @@ -2941,6 +2956,7 @@ __all__ = [ | ||||
|     'compat_HTMLParseError', | ||||
|     'compat_HTMLParser', | ||||
|     'compat_HTTPError', | ||||
|     'compat_Struct', | ||||
|     'compat_b64decode', | ||||
|     'compat_basestring', | ||||
|     'compat_chr', | ||||
|   | ||||
| @@ -1,25 +1,27 @@ | ||||
| from __future__ import unicode_literals | ||||
|  | ||||
| import time | ||||
| import struct | ||||
| import binascii | ||||
| import io | ||||
|  | ||||
| from .fragment import FragmentFD | ||||
| from ..compat import compat_urllib_error | ||||
| from ..compat import ( | ||||
|     compat_Struct, | ||||
|     compat_urllib_error, | ||||
| ) | ||||
|  | ||||
|  | ||||
| u8 = struct.Struct(b'>B') | ||||
| u88 = struct.Struct(b'>Bx') | ||||
| u16 = struct.Struct(b'>H') | ||||
| u1616 = struct.Struct(b'>Hxx') | ||||
| u32 = struct.Struct(b'>I') | ||||
| u64 = struct.Struct(b'>Q') | ||||
| u8 = compat_Struct('>B') | ||||
| u88 = compat_Struct('>Bx') | ||||
| u16 = compat_Struct('>H') | ||||
| u1616 = compat_Struct('>Hxx') | ||||
| u32 = compat_Struct('>I') | ||||
| u64 = compat_Struct('>Q') | ||||
|  | ||||
| s88 = struct.Struct(b'>bx') | ||||
| s16 = struct.Struct(b'>h') | ||||
| s1616 = struct.Struct(b'>hxx') | ||||
| s32 = struct.Struct(b'>i') | ||||
| s88 = compat_Struct('>bx') | ||||
| s16 = compat_Struct('>h') | ||||
| s1616 = compat_Struct('>hxx') | ||||
| s32 = compat_Struct('>i') | ||||
|  | ||||
| unity_matrix = (s32.pack(0x10000) + s32.pack(0) * 3) * 2 + s32.pack(0x40000000) | ||||
|  | ||||
|   | ||||
| @@ -866,8 +866,8 @@ def _create_http_connection(ydl_handler, http_class, is_https, *args, **kwargs): | ||||
|     # expected HTTP responses to meet HTTP/1.0 or later (see also | ||||
|     # https://github.com/rg3/youtube-dl/issues/6727) | ||||
|     if sys.version_info < (3, 0): | ||||
|         kwargs[b'strict'] = True | ||||
|     hc = http_class(*args, **kwargs) | ||||
|         kwargs['strict'] = True | ||||
|     hc = http_class(*args, **compat_kwargs(kwargs)) | ||||
|     source_address = ydl_handler._params.get('source_address') | ||||
|     if source_address is not None: | ||||
|         sa = (source_address, 0) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user