mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	| @@ -21,9 +21,6 @@ class TestCompat(unittest.TestCase): | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|             _ = compat.compat_basestring | ||||
| 
 | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|             _ = compat.WINDOWS_VT_MODE | ||||
| 
 | ||||
|         self.assertEqual(urllib.request.getproxies, getproxies) | ||||
| 
 | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|   | ||||
| @@ -36,6 +36,7 @@ from .extractor.openload import PhantomJSwrapper | ||||
| from .globals import ( | ||||
|     IN_CLI, | ||||
|     LAZY_EXTRACTORS, | ||||
|     WINDOWS_VT_MODE, | ||||
|     plugin_ies, | ||||
|     plugin_ies_overrides, | ||||
|     plugin_pps, | ||||
| @@ -4040,8 +4041,7 @@ class YoutubeDL: | ||||
|             if os.environ.get('TERM', '').lower() == 'dumb': | ||||
|                 additional_info.append('dumb') | ||||
|             if not supports_terminal_sequences(stream): | ||||
|                 from .utils import WINDOWS_VT_MODE  # Must be imported locally | ||||
|                 additional_info.append('No VT' if WINDOWS_VT_MODE is False else 'No ANSI') | ||||
|                 additional_info.append('No VT' if WINDOWS_VT_MODE.value is False else 'No ANSI') | ||||
|             if additional_info: | ||||
|                 ret = f'{ret} ({",".join(additional_info)})' | ||||
|             return ret | ||||
|   | ||||
| @@ -37,7 +37,7 @@ from ..dependencies import websockets as compat_websockets  # noqa: F401 | ||||
| from ..dependencies.Cryptodome import AES as compat_pycrypto_AES  # noqa: F401 | ||||
| from ..networking.exceptions import HTTPError as compat_HTTPError | ||||
| 
 | ||||
| passthrough_module(__name__, '...utils', ('WINDOWS_VT_MODE', 'windows_enable_vt_mode')) | ||||
| passthrough_module(__name__, '...utils', ('windows_enable_vt_mode',)) | ||||
| 
 | ||||
| 
 | ||||
| # compat_ctypes_WINFUNCTYPE = ctypes.WINFUNCTYPE | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| import os | ||||
| from collections import defaultdict | ||||
| 
 | ||||
| # Please Note: Due to necessary changes and the complex nature involved in the plugin/globals system, | ||||
| @@ -28,3 +29,4 @@ plugin_ies_overrides = Indirect(defaultdict(list)) | ||||
| # Misc | ||||
| IN_CLI = Indirect(False) | ||||
| LAZY_EXTRACTORS = Indirect(None)  # `False`=force, `None`=disabled, `True`=enabled | ||||
| WINDOWS_VT_MODE = Indirect(False if os.name == 'nt' else None) | ||||
|   | ||||
| @@ -52,7 +52,7 @@ from ..compat import ( | ||||
|     compat_HTMLParseError, | ||||
| ) | ||||
| from ..dependencies import xattr | ||||
| from ..globals import IN_CLI | ||||
| from ..globals import IN_CLI, WINDOWS_VT_MODE | ||||
| 
 | ||||
| __name__ = __name__.rsplit('.', 1)[0]  # noqa: A001 # Pretend to be the parent module | ||||
| 
 | ||||
| @@ -4759,13 +4759,10 @@ def jwt_decode_hs256(jwt): | ||||
|     return json.loads(base64.urlsafe_b64decode(f'{payload_b64}===')) | ||||
| 
 | ||||
| 
 | ||||
| WINDOWS_VT_MODE = False if os.name == 'nt' else None | ||||
| 
 | ||||
| 
 | ||||
| @functools.cache | ||||
| def supports_terminal_sequences(stream): | ||||
|     if os.name == 'nt': | ||||
|         if not WINDOWS_VT_MODE: | ||||
|         if not WINDOWS_VT_MODE.value: | ||||
|             return False | ||||
|     elif not os.getenv('TERM'): | ||||
|         return False | ||||
| @@ -4802,8 +4799,7 @@ def windows_enable_vt_mode(): | ||||
|     finally: | ||||
|         os.close(handle) | ||||
| 
 | ||||
|     global WINDOWS_VT_MODE | ||||
|     WINDOWS_VT_MODE = True | ||||
|     WINDOWS_VT_MODE.value = True | ||||
|     supports_terminal_sequences.cache_clear() | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Simon Sawicki
					Simon Sawicki