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:
parent
eb6cba8eb9
commit
b6c3d22dec
5 changed files with 25 additions and 17 deletions
|
@ -337,8 +337,12 @@ ## General Options:
|
||||||
configuration files
|
configuration files
|
||||||
--plugin-dirs PATH Path to an additional directory to search
|
--plugin-dirs PATH Path to an additional directory to search
|
||||||
for plugins. This option can be used
|
for plugins. This option can be used
|
||||||
multiple times to add multiple directories
|
multiple times to add multiple directories.
|
||||||
--no-plugins Disable plugin loading
|
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
|
--flat-playlist Do not extract a playlist's URL result
|
||||||
entries; some entry metadata may be missing
|
entries; some entry metadata may be missing
|
||||||
and downloading may be bypassed
|
and downloading may be bypassed
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
load_plugins,
|
load_plugins,
|
||||||
load_all_plugins,
|
load_all_plugins,
|
||||||
register_plugin_spec,
|
register_plugin_spec,
|
||||||
disable_plugins,
|
clear_plugins,
|
||||||
)
|
)
|
||||||
|
|
||||||
from yt_dlp.globals import (
|
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(f'{PACKAGE_NAME}.extractor.package', sys.modules.keys())
|
||||||
self.assertIn('PackagePluginIE', plugin_ies.value)
|
self.assertIn('PackagePluginIE', plugin_ies.value)
|
||||||
|
|
||||||
def test_disable_plugins(self):
|
def test_clear_plugins(self):
|
||||||
disable_plugins()
|
clear_plugins()
|
||||||
ies = load_plugins(EXTRACTOR_PLUGIN_SPEC)
|
ies = load_plugins(EXTRACTOR_PLUGIN_SPEC)
|
||||||
self.assertEqual(ies, {})
|
self.assertEqual(ies, {})
|
||||||
self.assertNotIn(f'{PACKAGE_NAME}.extractor.normal', sys.modules.keys())
|
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(f'{PACKAGE_NAME}.postprocessor.normal', sys.modules.keys())
|
||||||
self.assertNotIn('NormalPluginPP', plugin_pps.value)
|
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(EXTRACTOR_PLUGIN_SPEC)
|
||||||
register_plugin_spec(POSTPROCESSOR_PLUGIN_SPEC)
|
register_plugin_spec(POSTPROCESSOR_PLUGIN_SPEC)
|
||||||
load_all_plugins()
|
load_all_plugins()
|
||||||
|
|
||||||
with self.assertRaises(YoutubeDLError):
|
with self.assertRaises(YoutubeDLError):
|
||||||
disable_plugins()
|
clear_plugins()
|
||||||
|
|
||||||
ies = load_plugins(EXTRACTOR_PLUGIN_SPEC)
|
ies = load_plugins(EXTRACTOR_PLUGIN_SPEC)
|
||||||
self.assertIn('NormalPluginIE', ies)
|
self.assertIn('NormalPluginIE', ies)
|
||||||
|
|
|
@ -4095,12 +4095,15 @@ def get_encoding(stream):
|
||||||
continue
|
continue
|
||||||
write_debug(f'{plugin_type} Plugins: {", ".join(sorted(display_list))}')
|
write_debug(f'{plugin_type} Plugins: {", ".join(sorted(display_list))}')
|
||||||
|
|
||||||
|
plugin_dirs_msg = 'none'
|
||||||
if not plugin_dirs.value:
|
if not plugin_dirs.value:
|
||||||
write_debug('Plugins are disabled')
|
plugin_dirs_msg = 'none (disabled)'
|
||||||
else:
|
else:
|
||||||
loaded_plugin_directories = plugin_directories()
|
found_plugin_directories = plugin_directories()
|
||||||
if loaded_plugin_directories:
|
if found_plugin_directories:
|
||||||
write_debug(f'Plugin directories: {loaded_plugin_directories}')
|
plugin_dirs_msg = ', '.join(found_plugin_directories)
|
||||||
|
|
||||||
|
write_debug(f'Plugin directories: {plugin_dirs_msg}')
|
||||||
|
|
||||||
@functools.cached_property
|
@functools.cached_property
|
||||||
def proxies(self):
|
def proxies(self):
|
||||||
|
|
|
@ -416,13 +416,14 @@ def _alias_callback(option, opt_str, value, parser, opts, nargs):
|
||||||
default=['default'],
|
default=['default'],
|
||||||
help=(
|
help=(
|
||||||
'Path to an additional directory to search for plugins. '
|
'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(
|
general.add_option(
|
||||||
'--no-plugins',
|
'--no-plugin-dirs',
|
||||||
dest='plugin_dirs',
|
dest='plugin_dirs',
|
||||||
action='store_const',
|
action='store_const',
|
||||||
const=[],
|
const=[],
|
||||||
help='Disable plugin loading')
|
help='Clear plugin directories to search, including defaults and those provided by previous --plugin-dirs')
|
||||||
general.add_option(
|
general.add_option(
|
||||||
'--flat-playlist',
|
'--flat-playlist',
|
||||||
action='store_const', dest='extract_flat', const='in_playlist', default=False,
|
action='store_const', dest='extract_flat', const='in_playlist', default=False,
|
||||||
|
|
|
@ -44,8 +44,8 @@
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'COMPAT_PACKAGE_NAME',
|
'COMPAT_PACKAGE_NAME',
|
||||||
'PACKAGE_NAME',
|
'PACKAGE_NAME',
|
||||||
|
'clear_plugins',
|
||||||
'directories',
|
'directories',
|
||||||
'disable_plugins',
|
|
||||||
'load_all_plugins',
|
'load_all_plugins',
|
||||||
'load_plugins',
|
'load_plugins',
|
||||||
'register_plugin_spec',
|
'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}'))
|
sys.meta_path.insert(0, PluginFinder(f'{PACKAGE_NAME}.{plugin_spec.module_name}'))
|
||||||
|
|
||||||
|
|
||||||
def disable_plugins():
|
def clear_plugins():
|
||||||
if (
|
if (
|
||||||
all_plugins_loaded.value
|
all_plugins_loaded.value
|
||||||
or any(len(plugin_spec.plugin_destination.value) != 0 for plugin_spec in plugin_specs.value.values())
|
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)
|
# 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 = []
|
plugin_dirs.value = []
|
||||||
|
|
Loading…
Reference in a new issue