refactor builtin imports

This commit is contained in:
coletdjnz 2025-05-18 11:58:22 +12:00
parent fdf701e8f6
commit b2e9af41eb
No known key found for this signature in database
GPG Key ID: 91984263BB39894A
9 changed files with 30 additions and 26 deletions

View File

@ -2,7 +2,7 @@ import threading
import time
from collections import OrderedDict
import pytest
from yt_dlp.extractor.youtube.pot._provider import IEContentProvider, BuiltInIEContentProvider
from yt_dlp.extractor.youtube.pot._provider import IEContentProvider, BuiltinIEContentProvider
from yt_dlp.utils import bug_reports_message
from yt_dlp.extractor.youtube.pot._builtin.memory_cache import MemoryLRUPCP, memorylru_preference, initialize_global_cache
from yt_dlp.version import __version__
@ -13,7 +13,7 @@ class TestMemoryLRUPCS:
def test_base_type(self):
assert issubclass(MemoryLRUPCP, IEContentProvider)
assert issubclass(MemoryLRUPCP, BuiltInIEContentProvider)
assert issubclass(MemoryLRUPCP, BuiltinIEContentProvider)
@pytest.fixture
def pcp(self, ie, logger) -> MemoryLRUPCP:

View File

@ -1,6 +1,6 @@
import pytest
from yt_dlp.extractor.youtube.pot._provider import IEContentProvider, BuiltInIEContentProvider
from yt_dlp.extractor.youtube.pot._provider import IEContentProvider, BuiltinIEContentProvider
from yt_dlp.extractor.youtube.pot.cache import CacheProviderWritePolicy
from yt_dlp.utils import bug_reports_message
from yt_dlp.extractor.youtube.pot.provider import (
@ -23,7 +23,7 @@ def pot_request(pot_request) -> PoTokenRequest:
class TestWebPoPCSP:
def test_base_type(self):
assert issubclass(WebPoPCSP, IEContentProvider)
assert issubclass(WebPoPCSP, BuiltInIEContentProvider)
assert issubclass(WebPoPCSP, BuiltinIEContentProvider)
def test_init(self, ie, logger):
pcs = WebPoPCSP(ie=ie, logger=logger, settings={})

View File

@ -7,7 +7,7 @@ import json
import time
import pytest
from yt_dlp.extractor.youtube.pot._provider import BuiltInIEContentProvider, IEContentProvider
from yt_dlp.extractor.youtube.pot._provider import BuiltinIEContentProvider, IEContentProvider
from yt_dlp.extractor.youtube.pot.provider import (
PoTokenRequest,
@ -1478,11 +1478,11 @@ def test_validate_pot_response(response, expected):
def test_built_in_provider(ie, logger):
class BuiltInProviderDefaultT(BuiltInIEContentProvider, suffix='T'):
class BuiltinProviderDefaultT(BuiltinIEContentProvider, suffix='T'):
def is_available(self):
return True
class BuiltInProviderCustomNameT(BuiltInIEContentProvider, suffix='T'):
class BuiltinProviderCustomNameT(BuiltinIEContentProvider, suffix='T'):
PROVIDER_NAME = 'CustomName'
def is_available(self):
@ -1503,18 +1503,25 @@ def test_built_in_provider(ie, logger):
def is_available(self) -> bool:
return False
class BuiltInProviderUnavailableT(IEContentProvider, suffix='T'):
class BuiltinProviderUnavailableT(IEContentProvider, suffix='T'):
def is_available(self) -> bool:
return False
built_in_default = BuiltInProviderDefaultT(ie=ie, logger=logger, settings={})
built_in_custom_name = BuiltInProviderCustomNameT(ie=ie, logger=logger, settings={})
built_in_unavailable = BuiltInProviderUnavailableT(ie=ie, logger=logger, settings={})
built_in_default = BuiltinProviderDefaultT(ie=ie, logger=logger, settings={})
built_in_custom_name = BuiltinProviderCustomNameT(ie=ie, logger=logger, settings={})
built_in_unavailable = BuiltinProviderUnavailableT(ie=ie, logger=logger, settings={})
external_default = ExternalProviderDefaultT(ie=ie, logger=logger, settings={})
external_custom = ExternalProviderCustomT(ie=ie, logger=logger, settings={})
external_unavailable = ExternalProviderUnavailableT(ie=ie, logger=logger, settings={})
assert provider_display_list([]) == 'none'
assert provider_display_list([built_in_default]) == 'BuiltInProviderDefault'
assert provider_display_list([built_in_default]) == 'BuiltinProviderDefault'
assert provider_display_list([external_unavailable]) == 'ExternalProviderUnavailable-0.0.0 (external, unavailable)'
assert provider_display_list([built_in_default, built_in_custom_name, external_default, external_custom, external_unavailable, built_in_unavailable]) == 'BuiltInProviderDefault, CustomName, ExternalProviderDefault-0.0.0 (external), custom-5.4b2 (external), ExternalProviderUnavailable-0.0.0 (external, unavailable), BuiltInProviderUnavailable-0.0.0 (external, unavailable)'
assert provider_display_list([
built_in_default,
built_in_custom_name,
external_default,
external_custom,
external_unavailable,
built_in_unavailable],
) == 'BuiltinProviderDefault, CustomName, ExternalProviderDefault-0.0.0 (external), custom-5.4b2 (external), ExternalProviderUnavailable-0.0.0 (external, unavailable), BuiltinProviderUnavailable-0.0.0 (external, unavailable)'

View File

@ -1,2 +1,3 @@
# Trigger import of built-in providers
from ._builtin import _trigger_import # noqa: F401
from ._builtin.memory_cache import MemoryLRUPCP as _MemoryLRUPCP # noqa: F401
from ._builtin.webpo_cachespec import WebPoPCSP as _WebPoPCSP # noqa: F401

View File

@ -1,4 +0,0 @@
from .memory_cache import MemoryLRUPCP as _MemoryLRUPCP # noqa: F401
from .webpo_cachespec import WebPoPCSP as _WebPoPCSP # noqa: F401
_trigger_import = None # noqa: F401

View File

@ -5,7 +5,7 @@ import typing
from collections import OrderedDict
from threading import Lock
from yt_dlp.extractor.youtube.pot._provider import BuiltInIEContentProvider
from yt_dlp.extractor.youtube.pot._provider import BuiltinIEContentProvider
from yt_dlp.extractor.youtube.pot._registry import _pot_memory_cache
from yt_dlp.extractor.youtube.pot.cache import (
PoTokenCacheProvider,
@ -31,7 +31,7 @@ def initialize_global_cache(max_size: int):
@register_provider
class MemoryLRUPCP(PoTokenCacheProvider, BuiltInIEContentProvider):
class MemoryLRUPCP(PoTokenCacheProvider, BuiltinIEContentProvider):
PROVIDER_NAME = 'memory'
DEFAULT_CACHE_SIZE = 25

View File

@ -1,6 +1,6 @@
from __future__ import annotations
from yt_dlp.extractor.youtube.pot._provider import BuiltInIEContentProvider
from yt_dlp.extractor.youtube.pot._provider import BuiltinIEContentProvider
from yt_dlp.extractor.youtube.pot.cache import (
CacheProviderWritePolicy,
PoTokenCacheSpec,
@ -15,7 +15,7 @@ from yt_dlp.utils import traverse_obj
@register_spec
class WebPoPCSP(PoTokenCacheSpecProvider, BuiltInIEContentProvider):
class WebPoPCSP(PoTokenCacheSpecProvider, BuiltinIEContentProvider):
PROVIDER_NAME = 'webpo'
def generate_cache_spec(self, request: PoTokenRequest) -> PoTokenCacheSpec | None:

View File

@ -11,7 +11,7 @@ import urllib.parse
from collections.abc import Iterable
from yt_dlp.extractor.youtube.pot._provider import (
BuiltInIEContentProvider,
BuiltinIEContentProvider,
IEContentProvider,
IEContentProviderLogger,
)
@ -415,9 +415,9 @@ def provider_display_list(providers: Iterable[IEContentProvider]):
def provider_display_name(provider):
display_str = join_nonempty(
provider.PROVIDER_NAME,
provider.PROVIDER_VERSION if not isinstance(provider, BuiltInIEContentProvider) else None)
provider.PROVIDER_VERSION if not isinstance(provider, BuiltinIEContentProvider) else None)
statuses = []
if not isinstance(provider, BuiltInIEContentProvider):
if not isinstance(provider, BuiltinIEContentProvider):
statuses.append('external')
if not provider.is_available():
statuses.append('unavailable')

View File

@ -120,7 +120,7 @@ class IEContentProvider(abc.ABC):
return list(val) if casesense else [x.lower() for x in val]
class BuiltInIEContentProvider(IEContentProvider, abc.ABC):
class BuiltinIEContentProvider(IEContentProvider, abc.ABC):
PROVIDER_VERSION = __version__
BUG_REPORT_MESSAGE = bug_reports_message(before='')