aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2023-07-22 17:56:53 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2023-07-22 18:10:35 +0530
commita250b247334ce9f641e709cbb64974da6034a2b3 (patch)
tree61b9d391cf861ca626ca08befaf54319a248f7d1
parent25b6e8f94679b4458550702b46e61249b875a4fd (diff)
downloadhypervideo-pre-a250b247334ce9f641e709cbb64974da6034a2b3.tar.lz
hypervideo-pre-a250b247334ce9f641e709cbb64974da6034a2b3.tar.xz
hypervideo-pre-a250b247334ce9f641e709cbb64974da6034a2b3.zip
[compat] Ensure submodules are imported correctly
Closes #7663
-rw-r--r--test/test_compat.py6
-rw-r--r--yt_dlp/compat/__init__.py7
-rw-r--r--yt_dlp/compat/_deprecated.py8
-rw-r--r--yt_dlp/compat/urllib/__init__.py3
-rw-r--r--yt_dlp/utils/__init__.py6
5 files changed, 18 insertions, 12 deletions
diff --git a/test/test_compat.py b/test/test_compat.py
index 003a97abf..71ca7f99f 100644
--- a/test/test_compat.py
+++ b/test/test_compat.py
@@ -9,15 +9,16 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import struct
-import urllib.parse
from yt_dlp import compat
+from yt_dlp.compat import urllib # isort: split
from yt_dlp.compat import (
compat_etree_fromstring,
compat_expanduser,
compat_urllib_parse_unquote,
compat_urllib_parse_urlencode,
)
+from yt_dlp.compat.urllib.request import getproxies
class TestCompat(unittest.TestCase):
@@ -28,8 +29,7 @@ class TestCompat(unittest.TestCase):
with self.assertWarns(DeprecationWarning):
compat.WINDOWS_VT_MODE
- # TODO: Test submodule
- # compat.asyncio.events # Must not raise error
+ self.assertEqual(urllib.request.getproxies, getproxies)
with self.assertWarns(DeprecationWarning):
compat.compat_pycrypto_AES # Must not raise error
diff --git a/yt_dlp/compat/__init__.py b/yt_dlp/compat/__init__.py
index a41a80ebb..832a9138d 100644
--- a/yt_dlp/compat/__init__.py
+++ b/yt_dlp/compat/__init__.py
@@ -1,14 +1,11 @@
import os
import sys
-import warnings
import xml.etree.ElementTree as etree
-from ._deprecated import * # noqa: F401, F403
from .compat_utils import passthrough_module
-# XXX: Implement this the same way as other DeprecationWarnings without circular import
-passthrough_module(__name__, '._legacy', callback=lambda attr: warnings.warn(
- DeprecationWarning(f'{__name__}.{attr} is deprecated'), stacklevel=5))
+passthrough_module(__name__, '._deprecated')
+del passthrough_module
# HTMLParseError has been deprecated in Python 3.3 and removed in
diff --git a/yt_dlp/compat/_deprecated.py b/yt_dlp/compat/_deprecated.py
index 14d37b236..607bae999 100644
--- a/yt_dlp/compat/_deprecated.py
+++ b/yt_dlp/compat/_deprecated.py
@@ -1,4 +1,12 @@
"""Deprecated - New code should avoid these"""
+import warnings
+
+from .compat_utils import passthrough_module
+
+# XXX: Implement this the same way as other DeprecationWarnings without circular import
+passthrough_module(__name__, '.._legacy', callback=lambda attr: warnings.warn(
+ DeprecationWarning(f'{__name__}.{attr} is deprecated'), stacklevel=6))
+del passthrough_module
import base64
import urllib.error
diff --git a/yt_dlp/compat/urllib/__init__.py b/yt_dlp/compat/urllib/__init__.py
index 6b6b8e103..b27cc6133 100644
--- a/yt_dlp/compat/urllib/__init__.py
+++ b/yt_dlp/compat/urllib/__init__.py
@@ -1,6 +1,9 @@
# flake8: noqa: F405
from urllib import * # noqa: F403
+del request
+from . import request # noqa: F401
+
from ..compat_utils import passthrough_module
passthrough_module(__name__, 'urllib')
diff --git a/yt_dlp/utils/__init__.py b/yt_dlp/utils/__init__.py
index 0b00adddb..c267e326f 100644
--- a/yt_dlp/utils/__init__.py
+++ b/yt_dlp/utils/__init__.py
@@ -1,6 +1,4 @@
-# flake8: noqa: F401, F403
-import warnings
-
+# flake8: noqa: F403
from ..compat.compat_utils import passthrough_module
passthrough_module(__name__, '._deprecated')
@@ -9,4 +7,4 @@ del passthrough_module
# isort: off
from .traversal import *
from ._utils import *
-from ._utils import _configuration_args, _get_exe_version_output
+from ._utils import _configuration_args, _get_exe_version_output # noqa: F401