summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthon van der Neut <anthon@mnt.org>2016-11-16 16:07:00 +0100
committerAnthon van der Neut <anthon@mnt.org>2016-11-16 16:07:00 +0100
commitf04d175691344100515d8db900f3e6a3208c6d9e (patch)
tree207abd990409e3148871b6a4ecf52fdf19bcbb3a
parent728a060efbec0ccf1e968cddf8994aa5d197f55e (diff)
downloadruamel.yaml-0.12.18.tar.gz
this should fix #75: continuing problems with numpy0.12.18
-rw-r--r--.hgignore1
-rw-r--r--README.rst3
-rw-r--r--__init__.py2
-rw-r--r--_test/test_numpy.py24
-rw-r--r--dumper.py6
-rw-r--r--representer.py2
-rw-r--r--resolver.py3
7 files changed, 34 insertions, 7 deletions
diff --git a/.hgignore b/.hgignore
index 4555465..303c646 100644
--- a/.hgignore
+++ b/.hgignore
@@ -26,4 +26,3 @@ cmd
TODO.rst
_doc/_build
.dcw_alt.yml
-commit_message.txt
diff --git a/README.rst b/README.rst
index 78c4053..966b763 100644
--- a/README.rst
+++ b/README.rst
@@ -18,6 +18,9 @@ ChangeLog
::
+ 0.12.18 (2016-11-16):
+ - another fix for numpy (re-reported by Nathanial Burdic)
+
0.12.17 (2016-11-15):
- only the RoundTripLoader included the Resolver that supports YAML 1.2
now all loaders do (reported by mixmastamyk)
diff --git a/__init__.py b/__init__.py
index fa7115e..bf976aa 100644
--- a/__init__.py
+++ b/__init__.py
@@ -9,7 +9,7 @@ from __future__ import absolute_import
_package_data = dict(
full_package_name="ruamel.yaml",
- version_info=(0, 12, 17),
+ version_info=(0, 12, 18),
author="Anthon van der Neut",
author_email="a.van.der.neut@ruamel.eu",
description="ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order", # NOQA
diff --git a/_test/test_numpy.py b/_test/test_numpy.py
new file mode 100644
index 0000000..deec7a2
--- /dev/null
+++ b/_test/test_numpy.py
@@ -0,0 +1,24 @@
+# coding: utf-8
+
+from __future__ import print_function, absolute_import, division, unicode_literals
+
+try:
+ import numpy
+except:
+ numpy = None
+
+import ruamel.yaml
+
+
+def test_numpy():
+ if numpy is None:
+ return
+ data = numpy.arange(10)
+ print('data', type(data), data)
+
+ yaml_str = ruamel.yaml.dump(data)
+ datb = ruamel.yaml.load(yaml_str)
+ print('datb', type(datb), datb)
+
+ print('\nYAML', yaml_str)
+ assert data == datb
diff --git a/dumper.py b/dumper.py
index 4d997ea..72b8106 100644
--- a/dumper.py
+++ b/dumper.py
@@ -27,9 +27,9 @@ class BaseDumper(Emitter, Serializer, BaseRepresenter, BaseResolver):
explicit_start=explicit_start,
explicit_end=explicit_end,
version=version, tags=tags)
- Representer.__init__(self, default_style=default_style,
- default_flow_style=default_flow_style)
- Resolver.__init__(self)
+ BaseRepresenter.__init__(self, default_style=default_style,
+ default_flow_style=default_flow_style)
+ BaseResolver.__init__(self)
class SafeDumper(Emitter, Serializer, SafeRepresenter, Resolver):
diff --git a/representer.py b/representer.py
index 56890b3..2d82cf7 100644
--- a/representer.py
+++ b/representer.py
@@ -200,7 +200,7 @@ class SafeRepresenter(BaseRepresenter):
# https://docs.python.org/3/reference/expressions.html#parenthesized-forms :
# "i.e. two occurrences of the empty tuple may or may not yield the same object"
# so "data is ()" should not be used
- if data is None or data == ():
+ if data is None or (isinstance(data, tuple) and data == ()):
return True
if isinstance(data, (binary_type, text_type, bool, int, float)):
return True
diff --git a/resolver.py b/resolver.py
index 366d8ff..b0e8105 100644
--- a/resolver.py
+++ b/resolver.py
@@ -3,6 +3,7 @@
from __future__ import absolute_import
import re
+import copy
from typing import Any, Dict # NOQA
@@ -38,7 +39,7 @@ class BaseResolver(object):
def add_implicit_resolver(cls, tag, regexp, first):
# type: (Any, Any, Any) -> None
if 'yaml_implicit_resolvers' not in cls.__dict__:
- cls.yaml_implicit_resolvers = cls.yaml_implicit_resolvers.copy()
+ cls.yaml_implicit_resolvers = copy.deepcopy(cls.yaml_implicit_resolvers)
if first is None:
first = [None]
for ch in first: