From c2743653bc89e42679ba097b4f9888db47c61d63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingy=20d=C3=B6t=20Net?= Date: Thu, 23 Sep 2021 13:46:48 -0700 Subject: [PATCH] The yaml.load{,_all} functions require Loader= now --- lib/yaml/__init__.py | 47 ++++--------------------------------- tests/lib/test_dump_load.py | 1 - 2 files changed, 5 insertions(+), 43 deletions(-) diff --git a/lib/yaml/__init__.py b/lib/yaml/__init__.py index 86d07b55..8c71105b 100644 --- a/lib/yaml/__init__.py +++ b/lib/yaml/__init__.py @@ -18,41 +18,12 @@ import io #------------------------------------------------------------------------------ -# Warnings control +# XXX "Warnings control" is now deprecated. Leaving in the API function to not +# break code that uses it. #------------------------------------------------------------------------------ - -# 'Global' warnings state: -_warnings_enabled = { - 'YAMLLoadWarning': True, -} - -# Get or set global warnings' state def warnings(settings=None): if settings is None: - return _warnings_enabled - - if type(settings) is dict: - for key in settings: - if key in _warnings_enabled: - _warnings_enabled[key] = settings[key] - -# Warn when load() is called without Loader=... -class YAMLLoadWarning(RuntimeWarning): - pass - -def load_warning(method): - if _warnings_enabled['YAMLLoadWarning'] is False: - return - - import warnings - - message = ( - "calling yaml.%s() without Loader=... is deprecated, as the " - "default Loader is unsafe. Please read " - "https://msg.pyyaml.org/load for full details." - ) % method - - warnings.warn(message, YAMLLoadWarning, stacklevel=3) + return {} #------------------------------------------------------------------------------ def scan(stream, Loader=Loader): @@ -100,30 +71,22 @@ def compose_all(stream, Loader=Loader): finally: loader.dispose() -def load(stream, Loader=None): +def load(stream, Loader): """ Parse the first YAML document in a stream and produce the corresponding Python object. """ - if Loader is None: - load_warning('load') - Loader = FullLoader - loader = Loader(stream) try: return loader.get_single_data() finally: loader.dispose() -def load_all(stream, Loader=None): +def load_all(stream, Loader): """ Parse all YAML documents in a stream and produce corresponding Python objects. """ - if Loader is None: - load_warning('load_all') - Loader = FullLoader - loader = Loader(stream) try: while loader.check_data(): diff --git a/tests/lib/test_dump_load.py b/tests/lib/test_dump_load.py index 8f6e36f9..f3b10b01 100644 --- a/tests/lib/test_dump_load.py +++ b/tests/lib/test_dump_load.py @@ -10,7 +10,6 @@ def test_load_no_loader(verbose=False): except TypeError: return True assert(False, "load() require Loader=...") - test_load_no_loader.unittest = True def test_load_safeloader(verbose=False):