yaml.load(s, Loader=...) requires Loader= argument always#561
yaml.load(s, Loader=...) requires Loader= argument always#561ingydotnet merged 4 commits intorelease/6.0from
Conversation
perlpunk
left a comment
There was a problem hiding this comment.
Maybe it would make sense to keep the warning for another while.
Note that yaml.add_constructor (and other methods) will add given constructors to Loader, FullLoader and UnsafeLoader, so people will be wondering why none of their custom constructors have an effect.
It should be recommended to only use add_constructor for a specific loader, and ideally to their own loader inheriting from one of the existing loaders.
While (hopefully) most users by now are using a specific loader for loading, there is still code out there that just disables the warning, and will stop working if they used custom constructors via yaml.add_constructor.
If something stops working and they enable warnings to investigate, they should be able to see a helpful message saying that the default loader has now been changed.
083203f to
1c1c55a
Compare
I'll add a warning if Full or Unsafe loaders had constructors added and load() is called without an explicit Loader= |
1c1c55a to
af0275b
Compare
|
This started as |
perlpunk
left a comment
There was a problem hiding this comment.
Is there a test for the missing argument case?
| @@ -1,5 +1,5 @@ | |||
|
|
|||
| .PHONY: default build buildext force forceext install installext test testext dist clean | |||
There was a problem hiding this comment.
is this unintended stuff for this PR?
Done in 1b2f534 |
PyYAML 6: ``` 6.0 (2021-10-13) * yaml/pyyaml#327 -- Change README format to Markdown * yaml/pyyaml#483 -- Add a test for YAML 1.1 types * yaml/pyyaml#497 -- fix float resolver to ignore `.` and `._` * yaml/pyyaml#550 -- drop Python 2.7 * yaml/pyyaml#553 -- Fix spelling of “hexadecimal” * yaml/pyyaml#556 -- fix representation of Enum subclasses * yaml/pyyaml#557 -- fix libyaml extension compiler warnings * yaml/pyyaml#560 -- fix ResourceWarning on leaked file descriptors * yaml/pyyaml#561 -- always require `Loader` arg to `yaml.load()` * yaml/pyyaml#564 -- remove remaining direct distutils usage ```
Now uses "vendored" distutils from setuptools by default rather than from Python stdlib. Changes ======= * yaml/pyyaml#327 -- Change README format to Markdown * yaml/pyyaml#483 -- Add a test for YAML 1.1 types * yaml/pyyaml#497 -- fix float resolver to ignore `.` and `._` * yaml/pyyaml#550 -- drop Python 2.7 * yaml/pyyaml#553 -- Fix spelling of “hexadecimal” * yaml/pyyaml#556 -- fix representation of Enum subclasses * yaml/pyyaml#557 -- fix libyaml extension compiler warnings * yaml/pyyaml#560 -- fix ResourceWarning on leaked file descriptors * yaml/pyyaml#561 -- always require `Loader` arg to `yaml.load()` * yaml/pyyaml#564 -- remove remaining direct distutils usage Signed-off-by: Tim Orling <timothy.t.orling@intel.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now uses "vendored" distutils from setuptools by default rather than from Python stdlib. Changes ======= * yaml/pyyaml#327 -- Change README format to Markdown * yaml/pyyaml#483 -- Add a test for YAML 1.1 types * yaml/pyyaml#497 -- fix float resolver to ignore `.` and `._` * yaml/pyyaml#550 -- drop Python 2.7 * yaml/pyyaml#553 -- Fix spelling of “hexadecimal” * yaml/pyyaml#556 -- fix representation of Enum subclasses * yaml/pyyaml#557 -- fix libyaml extension compiler warnings * yaml/pyyaml#560 -- fix ResourceWarning on leaked file descriptors * yaml/pyyaml#561 -- always require `Loader` arg to `yaml.load()` * yaml/pyyaml#564 -- remove remaining direct distutils usage (From OE-Core rev: 2abc7a612a71b3594f3183fbb824a708269ae694) Signed-off-by: Tim Orling <timothy.t.orling@intel.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
PyYAML 6.0 [requires](yaml/pyyaml#561) a Loader argument to be passed to yaml.load. We could pass yaml.SafeLoader, or simply use the yaml.safe_load method instead. This PR opts to do the latter for simplicity. The previous default loader was yaml.Loader, and as such this PR changes the behaviour to yaml.SafeLoader. I don't think this has any actual repurcussions on the data that we're loading in however. https://msg.pyyaml.org/load has more details, and even recommends that FullLoader no longer be used.
… pyaml 6.0 Fixes https://gitlab.com/buildroot.org/buildroot/-/jobs/2088684091 python sample_python_pyyaml_dec.py Traceback (most recent call last): File "/root/sample_python_pyyaml_dec.py", line 5, in <module> data = yaml.load(serialized) TypeError: load() missing 1 required positional argument: 'Loader' yaml.load() requires a loader argument since the move to version 6.0: yaml/pyyaml#561 The test does not need the extra functionality of load(), so instead move to the recommended safe_load(). Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Tested-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650
Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650
Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650
Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650
Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650
Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650
Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650
Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650
* Use yaml.safe_load() Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650 * Use snapshot_support=True for manila share type The extra specs of a manila share type need to match the share service's capabilities. [1] [1] https://docs.openstack.org/manila/pike/admin/shared-file-systems-troubleshoot.html#id2 Closes-Bug: #1962204 Co-authored-by: Felipe Reyes <felipe.reyes@canonical.com> Co-authored-by: Corey Bryant <corey.bryant@canonical.com>
* Use yaml.safe_load() Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650 * Use snapshot_support=True for manila share type The extra specs of a manila share type need to match the share service's capabilities. [1] [1] https://docs.openstack.org/manila/pike/admin/shared-file-systems-troubleshoot.html#id2 Closes-Bug: #1962204 Co-authored-by: Felipe Reyes <felipe.reyes@canonical.com> Co-authored-by: Corey Bryant <corey.bryant@canonical.com>
* Use yaml.safe_load() Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650 * Use snapshot_support=True for manila share type The extra specs of a manila share type need to match the share service's capabilities. [1] [1] https://docs.openstack.org/manila/pike/admin/shared-file-systems-troubleshoot.html#id2 Closes-Bug: #1962204 Co-authored-by: Felipe Reyes <felipe.reyes@canonical.com> Co-authored-by: Corey Bryant <corey.bryant@canonical.com>
* Use yaml.safe_load() Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650 * Use snapshot_support=True for manila share type The extra specs of a manila share type need to match the share service's capabilities. [1] [1] https://docs.openstack.org/manila/pike/admin/shared-file-systems-troubleshoot.html#id2 Closes-Bug: #1962204 Co-authored-by: Felipe Reyes <felipe.reyes@canonical.com> Co-authored-by: Corey Bryant <corey.bryant@canonical.com>
* Use yaml.safe_load() Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650 * Use snapshot_support=True for manila share type The extra specs of a manila share type need to match the share service's capabilities. [1] [1] https://docs.openstack.org/manila/pike/admin/shared-file-systems-troubleshoot.html#id2 Closes-Bug: #1962204 Co-authored-by: Felipe Reyes <felipe.reyes@canonical.com> Co-authored-by: Corey Bryant <corey.bryant@canonical.com>
* Use yaml.safe_load() Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650 * Use snapshot_support=True for manila share type The extra specs of a manila share type need to match the share service's capabilities. [1] [1] https://docs.openstack.org/manila/pike/admin/shared-file-systems-troubleshoot.html#id2 Closes-Bug: #1962204 Co-authored-by: Felipe Reyes <felipe.reyes@canonical.com> Co-authored-by: Corey Bryant <corey.bryant@canonical.com>
* Use yaml.safe_load() Pyyaml>=6.0 requires to pass the Loader arg to yaml.load(), switching to yaml.safe_load() recovers the old and expected behavior. yaml/pyyaml#561 Closes-Bug: #1951650 * Use snapshot_support=True for manila share type The extra specs of a manila share type need to match the share service's capabilities. [1] [1] https://docs.openstack.org/manila/pike/admin/shared-file-systems-troubleshoot.html#id2 Closes-Bug: #1962204 Co-authored-by: Felipe Reyes <felipe.reyes@canonical.com> Co-authored-by: Corey Bryant <corey.bryant@canonical.com>
yaml.load in PyYAML 6 requires a Loader argument. PyYAML recommends using SafeLoader, which is implied if you call yaml.safe_load instead. yaml/pyyaml#561 https://msg.pyyaml.org/load Fixes Kludex#41
yaml.load in PyYAML 6 requires a Loader argument. PyYAML recommends using SafeLoader, which is implied if you call yaml.safe_load instead. yaml/pyyaml#561 https://msg.pyyaml.org/load Fixes #41
No description provided.