mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 00:25:15 +00:00 
			
		
		
		
	[cleanup] Deprecate more compat functions (#11439)
Authored by: seproDev
This commit is contained in:
		@@ -13,7 +13,6 @@ import sys
 | 
			
		||||
from dataclasses import dataclass
 | 
			
		||||
from zipimport import zipimporter
 | 
			
		||||
 | 
			
		||||
from .compat import compat_realpath
 | 
			
		||||
from .networking import Request
 | 
			
		||||
from .networking.exceptions import HTTPError, network_exceptions
 | 
			
		||||
from .utils import (
 | 
			
		||||
@@ -201,8 +200,6 @@ class UpdateInfo:
 | 
			
		||||
    binary_name: str | None = _get_binary_name()  # noqa: RUF009: Always returns the same value
 | 
			
		||||
    checksum: str | None = None
 | 
			
		||||
 | 
			
		||||
    _has_update = True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Updater:
 | 
			
		||||
    # XXX: use class variables to simplify testing
 | 
			
		||||
@@ -523,7 +520,7 @@ class Updater:
 | 
			
		||||
    @functools.cached_property
 | 
			
		||||
    def filename(self):
 | 
			
		||||
        """Filename of the executable"""
 | 
			
		||||
        return compat_realpath(_get_variant_and_executable_path()[1])
 | 
			
		||||
        return os.path.realpath(_get_variant_and_executable_path()[1])
 | 
			
		||||
 | 
			
		||||
    @functools.cached_property
 | 
			
		||||
    def cmd(self):
 | 
			
		||||
@@ -562,62 +559,14 @@ class Updater:
 | 
			
		||||
            f'Unable to {action}{delim} visit  '
 | 
			
		||||
            f'https://github.com/{self.requested_repo}/releases/{path}', True)
 | 
			
		||||
 | 
			
		||||
    # XXX: Everything below this line in this class is deprecated / for compat only
 | 
			
		||||
    @property
 | 
			
		||||
    def _target_tag(self):
 | 
			
		||||
        """Deprecated; requested tag with 'tags/' prepended when necessary for API calls"""
 | 
			
		||||
        return f'tags/{self.requested_tag}' if self.requested_tag != 'latest' else self.requested_tag
 | 
			
		||||
 | 
			
		||||
    def _check_update(self):
 | 
			
		||||
        """Deprecated; report whether there is an update available"""
 | 
			
		||||
        return bool(self.query_update(_output=True))
 | 
			
		||||
 | 
			
		||||
    def __getattr__(self, attribute: str):
 | 
			
		||||
        """Compat getter function for deprecated attributes"""
 | 
			
		||||
        deprecated_props_map = {
 | 
			
		||||
            'check_update': '_check_update',
 | 
			
		||||
            'target_tag': '_target_tag',
 | 
			
		||||
            'target_channel': 'requested_channel',
 | 
			
		||||
        }
 | 
			
		||||
        update_info_props_map = {
 | 
			
		||||
            'has_update': '_has_update',
 | 
			
		||||
            'new_version': 'version',
 | 
			
		||||
            'latest_version': 'requested_version',
 | 
			
		||||
            'release_name': 'binary_name',
 | 
			
		||||
            'release_hash': 'checksum',
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if attribute not in deprecated_props_map and attribute not in update_info_props_map:
 | 
			
		||||
            raise AttributeError(f'{type(self).__name__!r} object has no attribute {attribute!r}')
 | 
			
		||||
 | 
			
		||||
        msg = f'{type(self).__name__}.{attribute} is deprecated and will be removed in a future version'
 | 
			
		||||
        if attribute in deprecated_props_map:
 | 
			
		||||
            source_name = deprecated_props_map[attribute]
 | 
			
		||||
            if not source_name.startswith('_'):
 | 
			
		||||
                msg += f'. Please use {source_name!r} instead'
 | 
			
		||||
            source = self
 | 
			
		||||
            mapping = deprecated_props_map
 | 
			
		||||
 | 
			
		||||
        else:  # attribute in update_info_props_map
 | 
			
		||||
            msg += '. Please call query_update() instead'
 | 
			
		||||
            source = self.query_update()
 | 
			
		||||
            if source is None:
 | 
			
		||||
                source = UpdateInfo('', None, None, None)
 | 
			
		||||
                source._has_update = False
 | 
			
		||||
            mapping = update_info_props_map
 | 
			
		||||
 | 
			
		||||
        deprecation_warning(msg)
 | 
			
		||||
        for target_name, source_name in mapping.items():
 | 
			
		||||
            value = getattr(source, source_name)
 | 
			
		||||
            setattr(self, target_name, value)
 | 
			
		||||
 | 
			
		||||
        return getattr(self, attribute)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def run_update(ydl):
 | 
			
		||||
    """Update the program file with the latest version from the repository
 | 
			
		||||
    @returns    Whether there was a successful update (No update = False)
 | 
			
		||||
    """
 | 
			
		||||
    deprecation_warning(
 | 
			
		||||
        '"yt_dlp.update.run_update(ydl)" is deprecated and may be removed in a future version. '
 | 
			
		||||
        'Use "yt_dlp.update.Updater(ydl).update()" instead')
 | 
			
		||||
    return Updater(ydl).update()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user