Source code for flexget.plugins.internal.change_warn

import sys
from datetime import date

from loguru import logger

from flexget import plugin
from flexget.event import event

logger = logger.bind(name='change')
found_deprecated = False


[docs] class ChangeWarn: """Gives warning if user has deprecated / changed configuration in the root level. Will be replaced by root level validation in the future! Contains ugly hacks, better to include all deprecation warnings here during 1.0 BETA phase """
[docs] def on_task_start(self, task, config): global found_deprecated if 'torrent_size' in task.config: logger.critical('Plugin torrent_size is deprecated, use content_size instead') found_deprecated = True if 'nzb_size' in task.config: logger.critical('Plugin nzb_size is deprecated, use content_size instead') found_deprecated = True if found_deprecated: task.manager.shutdown(finish_queue=False) task.abort('Deprecated config.')
[docs] @event('plugin.register') def register_plugin(): plugin.register(ChangeWarn, 'change_warn', builtin=True, api_ver=2)
[docs] @event('manager.startup') def startup_warnings(manager): if sys.version_info < (3, 11) and date.today() > date(year=2026, month=10, day=1): logger.warning( 'Python 3.10 is EOL as of October 2026. FlexGet will eventually remove support for it. ' 'You should upgrade to Python 3.11 or later.' )
# check that no old plugins are in pre-compiled form (pyc) try: import os.path plugin_dirs = ( os.path.normpath(sys.path[0] + '/../flexget/plugins/'), os.path.normpath(sys.path[0] + '/../flexget/plugins/input/'), ) for plugin_dir in plugin_dirs: for name in os.listdir(plugin_dir): require_clean = False if name.startswith('module'): require_clean = True if name == 'csv.pyc': require_clean = True if 'resolver' in name: require_clean = True if 'filter_torrent_size' in name: require_clean = True if 'filter_nzb_size' in name: require_clean = True if 'module_priority' in name: require_clean = True if 'ignore_feed' in name: require_clean = True if 'module_manual' in name: require_clean = True if 'output_exec' in name: require_clean = True if 'plugin_adv_exec' in name: require_clean = True if 'output_transmissionrpc' in name: require_clean = True if require_clean: logger.critical('-' * 79) logger.critical('IMPORTANT: Your installation has some files from older FlexGet!') logger.critical('') logger.critical( ' Please remove all pre-compiled .pyc and .pyo files from {}', plugin_dir ) logger.critical(' Offending file: {}', name) logger.critical('') logger.critical( ' After getting rid of these FlexGet should run again normally' ) logger.critical('') logger.critical('-' * 79) found_deprecated = True break except Exception: pass