[PATCH] build: Update PyYAML to 5.4.1
Sebastian Huber
sebastian.huber at embedded-brains.de
Thu Jan 19 15:15:30 UTC 2023
---
yaml/LICENSE | 2 +-
yaml/PKG-INFO | 14 ++++++++++----
yaml/lib/yaml/__init__.py | 2 +-
yaml/lib/yaml/constructor.py | 30 ++++++++++++++++++------------
yaml/lib/yaml/cyaml.py | 2 +-
yaml/lib/yaml/reader.py | 9 +++++++--
yaml/lib/yaml/resolver.py | 4 ++--
yaml/lib3/yaml/__init__.py | 2 +-
yaml/lib3/yaml/constructor.py | 24 ++++++++++++------------
yaml/lib3/yaml/cyaml.py | 2 +-
yaml/lib3/yaml/resolver.py | 4 ++--
11 files changed, 56 insertions(+), 39 deletions(-)
diff --git a/yaml/LICENSE b/yaml/LICENSE
index 3d82c281ee..2f1b8e15e5 100644
--- a/yaml/LICENSE
+++ b/yaml/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2017-2020 Ingy döt Net
+Copyright (c) 2017-2021 Ingy döt Net
Copyright (c) 2006-2016 Kirill Simonov
Permission is hereby granted, free of charge, to any person obtaining a copy of
diff --git a/yaml/PKG-INFO b/yaml/PKG-INFO
index bf47ef4b35..04d0abf6e5 100644
--- a/yaml/PKG-INFO
+++ b/yaml/PKG-INFO
@@ -1,12 +1,17 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: PyYAML
-Version: 5.3.1
+Version: 5.4.1
Summary: YAML parser and emitter for Python
-Home-page: https://github.com/yaml/pyyaml
+Home-page: https://pyyaml.org/
Author: Kirill Simonov
Author-email: xi at resolvent.net
License: MIT
Download-URL: https://pypi.org/project/PyYAML/
+Project-URL: Bug Tracker, https://github.com/yaml/pyyaml/issues
+Project-URL: CI, https://github.com/yaml/pyyaml/actions
+Project-URL: Documentation, https://pyyaml.org/wiki/PyYAMLDocumentation
+Project-URL: Mailing lists, http://lists.sourceforge.net/lists/listinfo/yaml-core
+Project-URL: Source Code, https://github.com/yaml/pyyaml
Description: YAML is a data serialization format designed for human readability
and interaction with scripting languages. PyYAML is a YAML parser
and emitter for Python.
@@ -28,11 +33,12 @@ Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*
diff --git a/yaml/lib/yaml/__init__.py b/yaml/lib/yaml/__init__.py
index 211fc8665e..3c988198d5 100644
--- a/yaml/lib/yaml/__init__.py
+++ b/yaml/lib/yaml/__init__.py
@@ -8,7 +8,7 @@ from nodes import *
from loader import *
from dumper import *
-__version__ = '5.3.1'
+__version__ = '5.4.1'
try:
from cyaml import *
diff --git a/yaml/lib/yaml/constructor.py b/yaml/lib/yaml/constructor.py
index 794681cb7f..ff4e36828e 100644
--- a/yaml/lib/yaml/constructor.py
+++ b/yaml/lib/yaml/constructor.py
@@ -38,6 +38,12 @@ class timezone(datetime.tzinfo):
def dst(self, dt=None):
return datetime.timedelta(0)
+ def __copy__(self):
+ return self.__deepcopy__()
+
+ def __deepcopy__(self, memodict={}):
+ return self.__class__(self.utcoffset())
+
__repr__ = __str__ = tzname
@@ -722,18 +728,6 @@ FullConstructor.add_multi_constructor(
u'tag:yaml.org,2002:python/name:',
FullConstructor.construct_python_name)
-FullConstructor.add_multi_constructor(
- u'tag:yaml.org,2002:python/module:',
- FullConstructor.construct_python_module)
-
-FullConstructor.add_multi_constructor(
- u'tag:yaml.org,2002:python/object:',
- FullConstructor.construct_python_object)
-
-FullConstructor.add_multi_constructor(
- u'tag:yaml.org,2002:python/object/new:',
- FullConstructor.construct_python_object_new)
-
class UnsafeConstructor(FullConstructor):
def find_python_module(self, name, mark):
@@ -750,6 +744,18 @@ class UnsafeConstructor(FullConstructor):
return super(UnsafeConstructor, self).set_python_instance_state(
instance, state, unsafe=True)
+UnsafeConstructor.add_multi_constructor(
+ u'tag:yaml.org,2002:python/module:',
+ UnsafeConstructor.construct_python_module)
+
+UnsafeConstructor.add_multi_constructor(
+ u'tag:yaml.org,2002:python/object:',
+ UnsafeConstructor.construct_python_object)
+
+UnsafeConstructor.add_multi_constructor(
+ u'tag:yaml.org,2002:python/object/new:',
+ UnsafeConstructor.construct_python_object_new)
+
UnsafeConstructor.add_multi_constructor(
u'tag:yaml.org,2002:python/object/apply:',
UnsafeConstructor.construct_python_object_apply)
diff --git a/yaml/lib/yaml/cyaml.py b/yaml/lib/yaml/cyaml.py
index ebb8959352..768b49d6b9 100644
--- a/yaml/lib/yaml/cyaml.py
+++ b/yaml/lib/yaml/cyaml.py
@@ -4,7 +4,7 @@ __all__ = [
'CBaseDumper', 'CSafeDumper', 'CDumper'
]
-from _yaml import CParser, CEmitter
+from yaml._yaml import CParser, CEmitter
from constructor import *
diff --git a/yaml/lib/yaml/reader.py b/yaml/lib/yaml/reader.py
index 4b377d61e2..4c42150989 100644
--- a/yaml/lib/yaml/reader.py
+++ b/yaml/lib/yaml/reader.py
@@ -137,9 +137,14 @@ class Reader(object):
self.update(1)
if has_ucs4:
- NON_PRINTABLE = re.compile(u'[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD\U00010000-\U0010ffff]')
+ NON_PRINTABLE = u'[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD\U00010000-\U0010ffff]'
+ elif sys.platform.startswith('java'):
+ # Jython doesn't support lone surrogates https://bugs.jython.org/issue2048
+ NON_PRINTABLE = u'[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD]'
else:
- NON_PRINTABLE = re.compile(u'[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uFFFD]|(?:^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?:[^\uDC00-\uDFFF]|$)')
+ # Need to use eval here due to the above Jython issue
+ NON_PRINTABLE = eval(r"u'[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uFFFD]|(?:^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?:[^\uDC00-\uDFFF]|$)'")
+ NON_PRINTABLE = re.compile(NON_PRINTABLE)
def check_printable(self, data):
match = self.NON_PRINTABLE.search(data)
if match:
diff --git a/yaml/lib/yaml/resolver.py b/yaml/lib/yaml/resolver.py
index 528fbc0ead..ba9aeab21d 100644
--- a/yaml/lib/yaml/resolver.py
+++ b/yaml/lib/yaml/resolver.py
@@ -146,8 +146,8 @@ class BaseResolver(object):
resolvers = self.yaml_implicit_resolvers.get(u'', [])
else:
resolvers = self.yaml_implicit_resolvers.get(value[0], [])
- resolvers += self.yaml_implicit_resolvers.get(None, [])
- for tag, regexp in resolvers:
+ wildcard_resolvers = self.yaml_implicit_resolvers.get(None, [])
+ for tag, regexp in resolvers + wildcard_resolvers:
if regexp.match(value):
return tag
implicit = implicit[1]
diff --git a/yaml/lib3/yaml/__init__.py b/yaml/lib3/yaml/__init__.py
index 13d687c501..86d07b5525 100644
--- a/yaml/lib3/yaml/__init__.py
+++ b/yaml/lib3/yaml/__init__.py
@@ -8,7 +8,7 @@ from .nodes import *
from .loader import *
from .dumper import *
-__version__ = '5.3.1'
+__version__ = '5.4.1'
try:
from .cyaml import *
__with_libyaml__ = True
diff --git a/yaml/lib3/yaml/constructor.py b/yaml/lib3/yaml/constructor.py
index 1948b125c2..619acd3070 100644
--- a/yaml/lib3/yaml/constructor.py
+++ b/yaml/lib3/yaml/constructor.py
@@ -710,18 +710,6 @@ FullConstructor.add_multi_constructor(
'tag:yaml.org,2002:python/name:',
FullConstructor.construct_python_name)
-FullConstructor.add_multi_constructor(
- 'tag:yaml.org,2002:python/module:',
- FullConstructor.construct_python_module)
-
-FullConstructor.add_multi_constructor(
- 'tag:yaml.org,2002:python/object:',
- FullConstructor.construct_python_object)
-
-FullConstructor.add_multi_constructor(
- 'tag:yaml.org,2002:python/object/new:',
- FullConstructor.construct_python_object_new)
-
class UnsafeConstructor(FullConstructor):
def find_python_module(self, name, mark):
@@ -738,6 +726,18 @@ class UnsafeConstructor(FullConstructor):
return super(UnsafeConstructor, self).set_python_instance_state(
instance, state, unsafe=True)
+UnsafeConstructor.add_multi_constructor(
+ 'tag:yaml.org,2002:python/module:',
+ UnsafeConstructor.construct_python_module)
+
+UnsafeConstructor.add_multi_constructor(
+ 'tag:yaml.org,2002:python/object:',
+ UnsafeConstructor.construct_python_object)
+
+UnsafeConstructor.add_multi_constructor(
+ 'tag:yaml.org,2002:python/object/new:',
+ UnsafeConstructor.construct_python_object_new)
+
UnsafeConstructor.add_multi_constructor(
'tag:yaml.org,2002:python/object/apply:',
UnsafeConstructor.construct_python_object_apply)
diff --git a/yaml/lib3/yaml/cyaml.py b/yaml/lib3/yaml/cyaml.py
index 1e606c74b9..0c21345879 100644
--- a/yaml/lib3/yaml/cyaml.py
+++ b/yaml/lib3/yaml/cyaml.py
@@ -4,7 +4,7 @@ __all__ = [
'CBaseDumper', 'CSafeDumper', 'CDumper'
]
-from _yaml import CParser, CEmitter
+from yaml._yaml import CParser, CEmitter
from .constructor import *
diff --git a/yaml/lib3/yaml/resolver.py b/yaml/lib3/yaml/resolver.py
index 02b82e73ee..013896d2f1 100644
--- a/yaml/lib3/yaml/resolver.py
+++ b/yaml/lib3/yaml/resolver.py
@@ -146,8 +146,8 @@ class BaseResolver:
resolvers = self.yaml_implicit_resolvers.get('', [])
else:
resolvers = self.yaml_implicit_resolvers.get(value[0], [])
- resolvers += self.yaml_implicit_resolvers.get(None, [])
- for tag, regexp in resolvers:
+ wildcard_resolvers = self.yaml_implicit_resolvers.get(None, [])
+ for tag, regexp in resolvers + wildcard_resolvers:
if regexp.match(value):
return tag
implicit = implicit[1]
--
2.35.3
More information about the devel
mailing list