1
0
Fork 0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-03-09 12:50:23 -05:00

Rename --no-plugins to --no-plugin-dirs

This commit is contained in:
coletdjnz 2025-02-09 11:26:35 +13:00
parent eb6cba8eb9
commit b6c3d22dec
No known key found for this signature in database
GPG key ID: 91984263BB39894A
5 changed files with 25 additions and 17 deletions

View file

@ -337,8 +337,12 @@ ## General Options:
configuration files
--plugin-dirs PATH Path to an additional directory to search
for plugins. This option can be used
multiple times to add multiple directories
--no-plugins Disable plugin loading
multiple times to add multiple directories.
Use "default" to search the default plugin
directories (default)
--no-plugin-dirs Clear plugin directories to search,
including defaults and those provided by
previous --plugin-dirs
--flat-playlist Do not extract a playlist's URL result
entries; some entry metadata may be missing
and downloading may be bypassed

View file

@ -17,7 +17,7 @@
load_plugins,
load_all_plugins,
register_plugin_spec,
disable_plugins,
clear_plugins,
)
from yt_dlp.globals import (
@ -236,8 +236,8 @@ def test_append_plugin_dirs(self):
self.assertIn(f'{PACKAGE_NAME}.extractor.package', sys.modules.keys())
self.assertIn('PackagePluginIE', plugin_ies.value)
def test_disable_plugins(self):
disable_plugins()
def test_clear_plugins(self):
clear_plugins()
ies = load_plugins(EXTRACTOR_PLUGIN_SPEC)
self.assertEqual(ies, {})
self.assertNotIn(f'{PACKAGE_NAME}.extractor.normal', sys.modules.keys())
@ -248,13 +248,13 @@ def test_disable_plugins(self):
self.assertNotIn(f'{PACKAGE_NAME}.postprocessor.normal', sys.modules.keys())
self.assertNotIn('NormalPluginPP', plugin_pps.value)
def test_disable_plugins_already_loaded(self):
def test_clear_plugins_already_loaded(self):
register_plugin_spec(EXTRACTOR_PLUGIN_SPEC)
register_plugin_spec(POSTPROCESSOR_PLUGIN_SPEC)
load_all_plugins()
with self.assertRaises(YoutubeDLError):
disable_plugins()
clear_plugins()
ies = load_plugins(EXTRACTOR_PLUGIN_SPEC)
self.assertIn('NormalPluginIE', ies)

View file

@ -4095,12 +4095,15 @@ def get_encoding(stream):
continue
write_debug(f'{plugin_type} Plugins: {", ".join(sorted(display_list))}')
plugin_dirs_msg = 'none'
if not plugin_dirs.value:
write_debug('Plugins are disabled')
plugin_dirs_msg = 'none (disabled)'
else:
loaded_plugin_directories = plugin_directories()
if loaded_plugin_directories:
write_debug(f'Plugin directories: {loaded_plugin_directories}')
found_plugin_directories = plugin_directories()
if found_plugin_directories:
plugin_dirs_msg = ', '.join(found_plugin_directories)
write_debug(f'Plugin directories: {plugin_dirs_msg}')
@functools.cached_property
def proxies(self):

View file

@ -416,13 +416,14 @@ def _alias_callback(option, opt_str, value, parser, opts, nargs):
default=['default'],
help=(
'Path to an additional directory to search for plugins. '
'This option can be used multiple times to add multiple directories'))
'This option can be used multiple times to add multiple directories. '
'Use "default" to search the default plugin directories (default)'))
general.add_option(
'--no-plugins',
'--no-plugin-dirs',
dest='plugin_dirs',
action='store_const',
const=[],
help='Disable plugin loading')
help='Clear plugin directories to search, including defaults and those provided by previous --plugin-dirs')
general.add_option(
'--flat-playlist',
action='store_const', dest='extract_flat', const='in_playlist', default=False,

View file

@ -44,8 +44,8 @@
__all__ = [
'COMPAT_PACKAGE_NAME',
'PACKAGE_NAME',
'clear_plugins',
'directories',
'disable_plugins',
'load_all_plugins',
'load_plugins',
'register_plugin_spec',
@ -258,12 +258,12 @@ def register_plugin_spec(plugin_spec: PluginSpec):
sys.meta_path.insert(0, PluginFinder(f'{PACKAGE_NAME}.{plugin_spec.module_name}'))
def disable_plugins():
def clear_plugins():
if (
all_plugins_loaded.value
or any(len(plugin_spec.plugin_destination.value) != 0 for plugin_spec in plugin_specs.value.values())
):
# note: we can't detect all cases when plugins are loaded (e.g. if spec isn't registered)
raise YoutubeDLError('Plugins have already been loaded. Cannot disable plugins after loading plugins.')
raise YoutubeDLError('Plugins have already been loaded. Cannot clear plugins after loading plugins.')
plugin_dirs.value = []