Hello community,

here is the log from the commit of package python-ruamel.yaml for 
openSUSE:Factory checked in at 2018-09-03 10:34:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ruamel.yaml (Old)
 and      /work/SRC/openSUSE:Factory/.python-ruamel.yaml.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-ruamel.yaml"

Mon Sep  3 10:34:33 2018 rev:8 rq:632477 version:0.15.64

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ruamel.yaml/python-ruamel.yaml.changes    
2018-08-29 12:26:48.207607117 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-ruamel.yaml.new/python-ruamel.yaml.changes   
    2018-09-03 10:34:36.612593201 +0200
@@ -1,0 +2,8 @@
+Fri Aug 31 10:53:13 UTC 2018 - Ondřej Súkup <mimi...@gmail.com>
+
+- update to 0.15.64
+ * support round-trip of tagged sequences: !Arg [a, {b: 1}]
+ * fix issue when roundtripping floats starting with a dot such as .5 
+ * C based reader/scanner & emitter now allow setting of 1.2 as YAML version
+
+-------------------------------------------------------------------

Old:
----
  ruamel.yaml-0.15.61.tar.gz

New:
----
  ruamel.yaml-0.15.64.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-ruamel.yaml.spec ++++++
--- /var/tmp/diff_new_pack.vhfHhE/_old  2018-09-03 10:34:37.176594655 +0200
+++ /var/tmp/diff_new_pack.vhfHhE/_new  2018-09-03 10:34:37.180594665 +0200
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-ruamel.yaml
-Version:        0.15.61
+Version:        0.15.64
 Release:        0
 Summary:        Python YAML parser
 License:        MIT

++++++ ruamel.yaml-0.15.61.tar.gz -> ruamel.yaml-0.15.64.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/CHANGES 
new/ruamel.yaml-0.15.64/CHANGES
--- old/ruamel.yaml-0.15.61/CHANGES     2018-08-23 07:03:18.000000000 +0200
+++ new/ruamel.yaml-0.15.64/CHANGES     2018-08-30 21:27:42.000000000 +0200
@@ -1,14 +1,24 @@
+[0, 15, 64]: 2018-08-30
+  - support round-trip of tagged sequences: ``!Arg [a, {b: 1}]``
+  - single entry mappings in flow sequences now written by default without 
quotes
+    set ``yaml.brace_single_entry_mapping_in_flow_sequence=True`` to force
+    getting ``[a, {b: 1}, {c: {d: 2}}]`` instead of the default ``[a, b: 1, c: 
{d: 2}]``
+  - fix issue when roundtripping floats starting with a dot such as ``.5``
+    (reported by `Harrison Gregg <https://bitbucket.org/HarrisonGregg/>`__)
+
+[0, 15, 63]: 2018-08-29
+  - small fix only necessary for Windows users that don't use wheels.
+
+[0, 15, 62]: 2018-08-29
+  - C based reader/scanner & emitter now allow setting of 1.2 as YAML version.
+    ** The loading/dumping is still YAML 1.1 code**, so use the common subset 
of
+    YAML 1.2 and 1.1 (reported by `Ge Yang <https://bitbucket.org/yangge/>`__)
+
 [0, 15, 61]: 2018-08-23
   - support for round-tripping folded style scalars (initially requested 
     by `Johnathan Viduchinsky <https://bitbucket.org/johnathanvidu/>`__)
   - update of C code
   - speed up of scanning (~30% depending on the input)
-
-[0, 16, 0]: 2018-08-23
-  - initial support for round-tripping folded style scalars (initially 
requested 
-    by `Johnathan Viduchinsky <https://bitbucket.org/johnathanvidu/>`__)
-  - update of C code
-  - speed up of scanning (~30% depending on the input)
 
 [0, 15, 60]: 2018-08-18
   - cleanup for mypy 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/PKG-INFO 
new/ruamel.yaml-0.15.64/PKG-INFO
--- old/ruamel.yaml-0.15.61/PKG-INFO    2018-08-23 07:12:28.000000000 +0200
+++ new/ruamel.yaml-0.15.64/PKG-INFO    2018-08-30 21:29:22.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: ruamel.yaml
-Version: 0.15.61
+Version: 0.15.64
 Summary: ruamel.yaml is a YAML parser/emitter that supports roundtrip 
preservation of comments, seq/map flow style, and map key order
 Home-page: https://bitbucket.org/ruamel/yaml
 Author: Anthon van der Neut
@@ -12,8 +12,8 @@
         
         ``ruamel.yaml`` is a YAML 1.2 loader/dumper package for Python.
         
-        :version:       0.15.61
-        :updated:       2018-08-23
+        :version:       0.15.64
+        :updated:       2018-08-30
         :documentation: http://yaml.readthedocs.io
         :repository:    https://bitbucket.org/ruamel/
         :pypi:          https://pypi.org/project/ruamel.yaml/
@@ -62,6 +62,22 @@
         
         .. should insert NEXT: at the beginning of line for next key (with 
empty line)
         
+        0.15.64 (2018-08-30):
+          - support round-trip of tagged sequences: ``!Arg [a, {b: 1}]``
+          - single entry mappings in flow sequences now written by default 
without quotes
+            set ``yaml.brace_single_entry_mapping_in_flow_sequence=True`` to 
force
+            getting ``[a, {b: 1}, {c: {d: 2}}]`` instead of the default ``[a, 
b: 1, c: {d: 2}]``
+          - fix issue when roundtripping floats starting with a dot such as 
``.5``
+            (reported by `Harrison Gregg 
<https://bitbucket.org/HarrisonGregg/>`__)
+        
+        0.15.63 (2018-08-29):
+          - small fix only necessary for Windows users that don't use wheels.
+        
+        0.15.62 (2018-08-29):
+          - C based reader/scanner & emitter now allow setting of 1.2 as YAML 
version.
+            ** The loading/dumping is still YAML 1.1 code**, so use the common 
subset of
+            YAML 1.2 and 1.1 (reported by `Ge Yang 
<https://bitbucket.org/yangge/>`__)
+        
         0.15.61 (2018-08-23):
           - support for round-tripping folded style scalars (initially 
requested 
             by `Johnathan Viduchinsky 
<https://bitbucket.org/johnathanvidu/>`__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/README.rst 
new/ruamel.yaml-0.15.64/README.rst
--- old/ruamel.yaml-0.15.61/README.rst  2018-08-23 07:03:18.000000000 +0200
+++ new/ruamel.yaml-0.15.64/README.rst  2018-08-30 21:27:42.000000000 +0200
@@ -4,8 +4,8 @@
 
 ``ruamel.yaml`` is a YAML 1.2 loader/dumper package for Python.
 
-:version:       0.15.61
-:updated:       2018-08-23
+:version:       0.15.64
+:updated:       2018-08-30
 :documentation: http://yaml.readthedocs.io
 :repository:    https://bitbucket.org/ruamel/
 :pypi:          https://pypi.org/project/ruamel.yaml/
@@ -54,6 +54,22 @@
 
 .. should insert NEXT: at the beginning of line for next key (with empty line)
 
+0.15.64 (2018-08-30):
+  - support round-trip of tagged sequences: ``!Arg [a, {b: 1}]``
+  - single entry mappings in flow sequences now written by default without 
quotes
+    set ``yaml.brace_single_entry_mapping_in_flow_sequence=True`` to force
+    getting ``[a, {b: 1}, {c: {d: 2}}]`` instead of the default ``[a, b: 1, c: 
{d: 2}]``
+  - fix issue when roundtripping floats starting with a dot such as ``.5``
+    (reported by `Harrison Gregg <https://bitbucket.org/HarrisonGregg/>`__)
+
+0.15.63 (2018-08-29):
+  - small fix only necessary for Windows users that don't use wheels.
+
+0.15.62 (2018-08-29):
+  - C based reader/scanner & emitter now allow setting of 1.2 as YAML version.
+    ** The loading/dumping is still YAML 1.1 code**, so use the common subset 
of
+    YAML 1.2 and 1.1 (reported by `Ge Yang <https://bitbucket.org/yangge/>`__)
+
 0.15.61 (2018-08-23):
   - support for round-tripping folded style scalars (initially requested 
     by `Johnathan Viduchinsky <https://bitbucket.org/johnathanvidu/>`__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/__init__.py 
new/ruamel.yaml-0.15.64/__init__.py
--- old/ruamel.yaml-0.15.61/__init__.py 2018-08-23 07:03:18.000000000 +0200
+++ new/ruamel.yaml-0.15.64/__init__.py 2018-08-30 21:27:42.000000000 +0200
@@ -7,8 +7,8 @@
 
 _package_data = dict(
     full_package_name='ruamel.yaml',
-    version_info=(0, 15, 61),
-    __version__='0.15.61',
+    version_info=(0, 15, 64),
+    __version__='0.15.64',
     author='Anthon van der Neut',
     author_email='a.van.der.n...@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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/constructor.py 
new/ruamel.yaml-0.15.64/constructor.py
--- old/ruamel.yaml-0.15.61/constructor.py      2018-08-23 07:02:38.000000000 
+0200
+++ new/ruamel.yaml-0.15.64/constructor.py      2018-08-30 21:25:59.000000000 
+0200
@@ -1031,24 +1031,24 @@
             )
 
         if node.style == '|' and isinstance(node.value, text_type):
-            pss = LiteralScalarString(node.value)
+            lss = LiteralScalarString(node.value)
             if node.comment and node.comment[1]:
-                pss.comment = node.comment[1][0]  # type: ignore
-            return pss
+                lss.comment = node.comment[1][0]  # type: ignore
+            return lss
         if node.style == '>' and isinstance(node.value, text_type):
-            fold_positions = []
-            idx = None
+            fold_positions = []  # type: List[int]
+            idx = -1
             while True:
-                idx = node.value.find('\a', None if idx is None else idx + 1)
+                idx = node.value.find('\a', idx + 1)
                 if idx < 0:
                     break
                 fold_positions.append(idx - len(fold_positions))
-            pss = FoldedScalarString(node.value.replace('\a', ''))
+            fss = FoldedScalarString(node.value.replace('\a', ''))
             if node.comment and node.comment[1]:
-                pss.comment = node.comment[1][0]  # type: ignore
+                fss.comment = node.comment[1][0]  # type: ignore
             if fold_positions:
-                pss.fold_pos = fold_positions
-            return pss
+                fss.fold_pos = fold_positions  # type: ignore
+            return fss
         elif bool(self._preserve_quotes) and isinstance(node.value, text_type):
             if node.style == "'":
                 return SingleQuotedScalarString(node.value)
@@ -1561,6 +1561,17 @@
                 data2.yaml_set_tag(node.tag)
                 yield data2
                 return
+            elif isinstance(node, SequenceNode):
+                data3 = CommentedSeq()
+                data3._yaml_set_line_col(node.start_mark.line, 
node.start_mark.column)
+                if node.flow_style is True:
+                    data3.fa.set_flow_style()
+                elif node.flow_style is False:
+                    data3.fa.set_block_style()
+                data3.yaml_set_tag(node.tag)
+                yield data3
+                data3.extend(self.construct_sequence(node))
+                return
         except:  # NOQA
             pass
         raise ConstructorError(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/emitter.py 
new/ruamel.yaml-0.15.64/emitter.py
--- old/ruamel.yaml-0.15.61/emitter.py  2018-08-23 01:54:12.000000000 +0200
+++ new/ruamel.yaml-0.15.64/emitter.py  2018-08-30 21:23:54.000000000 +0200
@@ -111,9 +111,10 @@
         block_seq_indent=None,
         top_level_colon_align=None,
         prefix_colon=None,
+        brace_single_entry_mapping_in_flow_sequence=None,
         dumper=None,
     ):
-        # type: (StreamType, Any, Optional[int], Optional[int], 
Optional[bool], Any, Optional[int], Optional[bool], Any, Any) -> None  # NOQA
+        # type: (StreamType, Any, Optional[int], Optional[int], 
Optional[bool], Any, Optional[int], Optional[bool], Any, Optional[bool], Any) 
-> None  # NOQA
         self.dumper = dumper
         if self.dumper is not None and getattr(self.dumper, '_emitter', None) 
is None:
             self.dumper._emitter = self
@@ -136,8 +137,9 @@
         self.indents = Indents()
         self.indent = None  # type: Optional[int]
 
-        # Flow level.
-        self.flow_level = 0
+        # flow_context is an expanding/shrinking list consisting of '{' and '['
+        # for each unclosed flow context. If empty list that means block 
context
+        self.flow_context = []  # type: List[Text]
 
         # Contexts.
         self.root_context = False
@@ -162,6 +164,10 @@
         # colon handling
         self.colon = u':'
         self.prefixed_colon = self.colon if prefix_colon is None else 
prefix_colon + self.colon
+        # single entry mappings in flow sequence
+        self.brace_single_entry_mapping_in_flow_sequence = (
+            brace_single_entry_mapping_in_flow_sequence
+        )  # NOQA
 
         # Formatting details.
         self.canonical = canonical
@@ -222,6 +228,11 @@
         except AttributeError:
             return self  # cyaml
 
+    @property
+    def flow_level(self):
+        # type: () -> int
+        return len(self.flow_context)
+
     def dispose(self):
         # type: () -> None
         # Reset the state attributes (to clear self-references)
@@ -421,7 +432,7 @@
                     or self.event.flow_style
                     or self.check_empty_mapping()
                 ):
-                    self.expect_flow_mapping()
+                    self.expect_flow_mapping(single=self.event.nr_items == 1)
                 else:
                     self.expect_block_mapping()
         else:
@@ -448,14 +459,15 @@
         ind = self.indents.seq_flow_align(self.best_sequence_indent, 
self.column)
         self.write_indicator(u' ' * ind + u'[', True, whitespace=True)
         self.increase_indent(flow=True, sequence=True)
-        self.flow_level += 1
+        self.flow_context.append('[')
         self.state = self.expect_first_flow_sequence_item
 
     def expect_first_flow_sequence_item(self):
         # type: () -> None
         if isinstance(self.event, SequenceEndEvent):
             self.indent = self.indents.pop()
-            self.flow_level -= 1
+            popped = self.flow_context.pop()
+            assert popped == '['
             self.write_indicator(u']', False)
             if self.event.comment and self.event.comment[0]:
                 # eol comment on empty flow sequence
@@ -473,7 +485,8 @@
         # type: () -> None
         if isinstance(self.event, SequenceEndEvent):
             self.indent = self.indents.pop()
-            self.flow_level -= 1
+            popped = self.flow_context.pop()
+            assert popped == '['
             if self.canonical:
                 self.write_indicator(u',', False)
                 self.write_indent()
@@ -493,11 +506,21 @@
 
     # Flow mapping handlers.
 
-    def expect_flow_mapping(self):
-        # type: () -> None
+    def expect_flow_mapping(self, single=False):
+        # type: (Optional[bool]) -> None
         ind = self.indents.seq_flow_align(self.best_sequence_indent, 
self.column)
-        self.write_indicator(u' ' * ind + u'{', True, whitespace=True)
-        self.flow_level += 1
+        map_init = u'{'
+        if (
+            single
+            and self.flow_level
+            and self.flow_context[-1] == '['
+            and not self.canonical
+            and not self.brace_single_entry_mapping_in_flow_sequence
+        ):
+            # single map item with flow context no curly braces necessary
+            map_init = u''
+        self.write_indicator(u' ' * ind + map_init, True, whitespace=True)
+        self.flow_context.append(map_init)
         self.increase_indent(flow=True, sequence=False)
         self.state = self.expect_first_flow_mapping_key
 
@@ -505,7 +528,8 @@
         # type: () -> None
         if isinstance(self.event, MappingEndEvent):
             self.indent = self.indents.pop()
-            self.flow_level -= 1
+            popped = self.flow_context.pop()
+            assert popped == '{'  # empty flow mapping
             self.write_indicator(u'}', False)
             if self.event.comment and self.event.comment[0]:
                 # eol comment on empty mapping
@@ -528,11 +552,13 @@
             # if self.event.comment and self.event.comment[1]:
             #     self.write_pre_comment(self.event)
             self.indent = self.indents.pop()
-            self.flow_level -= 1
+            popped = self.flow_context.pop()
+            assert popped in [u'{', u'']
             if self.canonical:
                 self.write_indicator(u',', False)
                 self.write_indent()
-            self.write_indicator(u'}', False)
+            if popped != u'':
+                self.write_indicator(u'}', False)
             if self.event.comment and self.event.comment[0]:
                 # eol comment on flow mapping, never reached on empty mappings
                 self.write_post_comment(self.event)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/events.py 
new/ruamel.yaml-0.15.64/events.py
--- old/ruamel.yaml-0.15.61/events.py   2018-08-04 23:35:00.000000000 +0200
+++ new/ruamel.yaml-0.15.64/events.py   2018-08-30 21:25:26.000000000 +0200
@@ -46,7 +46,7 @@
 
 
 class CollectionStartEvent(NodeEvent):
-    __slots__ = 'tag', 'implicit', 'flow_style'
+    __slots__ = 'tag', 'implicit', 'flow_style', 'nr_items'
 
     def __init__(
         self,
@@ -57,12 +57,14 @@
         end_mark=None,
         flow_style=None,
         comment=None,
+        nr_items=None,
     ):
-        # type: (Any, Any, Any, Any, Any, Any, Any) -> None
+        # type: (Any, Any, Any, Any, Any, Any, Any, Optional[int]) -> None
         NodeEvent.__init__(self, anchor, start_mark, end_mark, comment)
         self.tag = tag
         self.implicit = implicit
         self.flow_style = flow_style
+        self.nr_items = nr_items
 
 
 class CollectionEndEvent(Event):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/ext/emitter.c 
new/ruamel.yaml-0.15.64/ext/emitter.c
--- old/ruamel.yaml-0.15.61/ext/emitter.c       2018-08-21 08:00:15.000000000 
+0200
+++ new/ruamel.yaml-0.15.64/ext/emitter.c       2018-08-29 13:14:54.000000000 
+0200
@@ -547,10 +547,16 @@
  * Expect DOCUMENT-START or STREAM-END.
  */
 
+/* assume 2 digits + . + 2 digits max and NUL*/
+#define VERSION_BUF_LEN 50
+
 static int
 yaml_emitter_emit_document_start(yaml_emitter_t *emitter,
         yaml_event_t *event, int first)
 {
+    char version_buf[VERSION_BUF_LEN];
+    yaml_version_directive_t vdp;
+
     if (event->type == YAML_DOCUMENT_START_EVENT)
     {
         yaml_tag_directive_t default_tag_directives[] = {
@@ -602,7 +608,10 @@
             implicit = 0;
             if (!yaml_emitter_write_indicator(emitter, "%YAML", 1, 0, 0))
                 return 0;
-            if (!yaml_emitter_write_indicator(emitter, "1.1", 1, 0, 0))
+            /* if (!yaml_emitter_write_indicator(emitter, "1.1", 1, 0, 0)) */
+           vdp = *event->data.document_start.version_directive;
+            sprintf(version_buf, "%d.%d", vdp.major, vdp.minor);
+            if (!yaml_emitter_write_indicator(emitter, version_buf, 1, 0, 0))
                 return 0;
             if (!yaml_emitter_write_indent(emitter))
                 return 0;
@@ -1333,7 +1342,8 @@
 yaml_emitter_analyze_version_directive(yaml_emitter_t *emitter,
         yaml_version_directive_t version_directive)
 {
-    if (version_directive.major != 1 || version_directive.minor != 1) {
+    if (version_directive.major != 1 || (
+           version_directive.minor != 1 && version_directive.minor != 2) ) {
         return yaml_emitter_set_emitter_error(emitter,
                 "incompatible %YAML directive");
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/ext/parser.c 
new/ruamel.yaml-0.15.64/ext/parser.c
--- old/ruamel.yaml-0.15.61/ext/parser.c        2018-08-21 08:01:59.000000000 
+0200
+++ new/ruamel.yaml-0.15.64/ext/parser.c        2018-08-29 12:03:08.000000000 
+0200
@@ -1265,7 +1265,10 @@
                 goto error;
             }
             if (token->data.version_directive.major != 1
-                    || token->data.version_directive.minor != 1) {
+                    || (token->data.version_directive.minor != 1 
+                       && token->data.version_directive.minor != 2
+                       )
+                ) {
                 yaml_parser_set_parser_error(parser,
                         "found incompatible YAML document", token->start_mark);
                 goto error;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/main.py 
new/ruamel.yaml-0.15.64/main.py
--- old/ruamel.yaml-0.15.61/main.py     2018-08-21 06:56:35.000000000 +0200
+++ new/ruamel.yaml-0.15.64/main.py     2018-08-30 21:15:48.000000000 +0200
@@ -18,7 +18,7 @@
 
 from ruamel.yaml.loader import BaseLoader, SafeLoader, Loader, RoundTripLoader 
 # NOQA
 from ruamel.yaml.dumper import BaseDumper, SafeDumper, Dumper, RoundTripDumper 
 # NOQA
-from ruamel.yaml.compat import StringIO, BytesIO, with_metaclass, PY3
+from ruamel.yaml.compat import StringIO, BytesIO, with_metaclass, PY3, nprint
 from ruamel.yaml.resolver import VersionedResolver, Resolver  # NOQA
 from ruamel.yaml.representer import (
     BaseRepresenter,
@@ -158,12 +158,14 @@
         self.tags = None
         self.default_style = None
         self.top_level_block_style_scalar_no_indent_error_1_1 = False
+        # [a, b: 1, c: {d: 2}]  vs. [a, {b: 1}, {c: {d: 2}}]
+        self.brace_single_entry_mapping_in_flow_sequence = False
 
     @property
     def reader(self):
         # type: () -> Any
         try:
-            return self._reader
+            return self._reader  # type: ignore
         except AttributeError:
             self._reader = self.Reader(None, loader=self)
             return self._reader
@@ -172,7 +174,7 @@
     def scanner(self):
         # type: () -> Any
         try:
-            return self._scanner
+            return self._scanner  # type: ignore
         except AttributeError:
             self._scanner = self.Scanner(loader=self)
             return self._scanner
@@ -239,6 +241,7 @@
                     allow_unicode=self.allow_unicode,
                     line_break=self.line_break,
                     prefix_colon=self.prefix_colon,
+                    
brace_single_entry_mapping_in_flow_sequence=self.brace_single_entry_mapping_in_flow_sequence,
  # NOQA
                     dumper=self,
                 )
                 setattr(self, attr, _emitter)
@@ -323,11 +326,11 @@
         finally:
             parser.dispose()
             try:
-                self._reader.reset_reader()  # type: ignore
+                self._reader.reset_reader()
             except AttributeError:
                 pass
             try:
-                self._scanner.reset_scanner()  # type: ignore
+                self._scanner.reset_scanner()
             except AttributeError:
                 pass
 
@@ -355,11 +358,11 @@
         finally:
             parser.dispose()
             try:
-                self._reader.reset_reader()  # type: ignore
+                self._reader.reset_reader()
             except AttributeError:
                 pass
             try:
-                self._scanner.reset_scanner()  # type: ignore
+                self._scanner.reset_scanner()
             except AttributeError:
                 pass
 
@@ -653,11 +656,11 @@
         finally:
             parser.dispose()
             try:
-                self._reader.reset_reader()  # type: ignore
+                self._reader.reset_reader()
             except AttributeError:
                 pass
             try:
-                self._scanner.reset_scanner()  # type: ignore
+                self._scanner.reset_scanner()
             except AttributeError:
                 pass
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/representer.py 
new/ruamel.yaml-0.15.64/representer.py
--- old/ruamel.yaml-0.15.61/representer.py      2018-08-23 01:55:09.000000000 
+0200
+++ new/ruamel.yaml-0.15.64/representer.py      2018-08-30 20:53:40.000000000 
+0200
@@ -788,13 +788,13 @@
         elif data._exp is None:
             # no exponent, "normal" dot
             prec = data._prec
-            if prec < 1:
-                prec = 1
             ms = data._m_sign if data._m_sign else ""
             # -1 for the dot
             value = u'{}{:0{}.{}f}'.format(
                 ms, abs(data), data._width - len(ms), data._width - prec - 1
             )
+            if prec == 0 or (prec == 1 and ms != ""):
+                value = value.replace(u'0.', u'.')
             while len(value) < data._width:
                 value += u'0'
         else:
@@ -1103,6 +1103,21 @@
             tag = u'tag:yaml.org,2002:map'
         return self.represent_mapping(tag, data)
 
+    def represent_list(self, data):
+        # type: (Any) -> Any
+        try:
+            t = data.tag.value
+        except AttributeError:
+            t = None
+        if t:
+            if t.startswith('!!'):
+                tag = 'tag:yaml.org,2002:' + t[2:]
+            else:
+                tag = t
+        else:
+            tag = u'tag:yaml.org,2002:seq'
+        return self.represent_sequence(tag, data)
+
     def represent_datetime(self, data):
         # type: (Any) -> Any
         inter = 'T' if data._yaml['t'] else ' '
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/resolver.py 
new/ruamel.yaml-0.15.64/resolver.py
--- old/ruamel.yaml-0.15.61/resolver.py 2018-08-18 08:34:28.000000000 +0200
+++ new/ruamel.yaml-0.15.64/resolver.py 2018-08-30 20:52:08.000000000 +0200
@@ -38,7 +38,7 @@
         RegExp(u'''^(?:
          [-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+]?[0-9]+)?
         |[-+]?(?:[0-9][0-9_]*)(?:[eE][-+]?[0-9]+)
-        |\\.[0-9_]+(?:[eE][-+][0-9]+)?
+        |[-+]?\\.[0-9_]+(?:[eE][-+][0-9]+)?
         |[-+]?\\.(?:inf|Inf|INF)
         |\\.(?:nan|NaN|NAN))$''', re.X),
         list(u'-+0123456789.')),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/ruamel.yaml.egg-info/PKG-INFO 
new/ruamel.yaml-0.15.64/ruamel.yaml.egg-info/PKG-INFO
--- old/ruamel.yaml-0.15.61/ruamel.yaml.egg-info/PKG-INFO       2018-08-23 
07:12:27.000000000 +0200
+++ new/ruamel.yaml-0.15.64/ruamel.yaml.egg-info/PKG-INFO       2018-08-30 
21:29:21.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: ruamel.yaml
-Version: 0.15.61
+Version: 0.15.64
 Summary: ruamel.yaml is a YAML parser/emitter that supports roundtrip 
preservation of comments, seq/map flow style, and map key order
 Home-page: https://bitbucket.org/ruamel/yaml
 Author: Anthon van der Neut
@@ -12,8 +12,8 @@
         
         ``ruamel.yaml`` is a YAML 1.2 loader/dumper package for Python.
         
-        :version:       0.15.61
-        :updated:       2018-08-23
+        :version:       0.15.64
+        :updated:       2018-08-30
         :documentation: http://yaml.readthedocs.io
         :repository:    https://bitbucket.org/ruamel/
         :pypi:          https://pypi.org/project/ruamel.yaml/
@@ -62,6 +62,22 @@
         
         .. should insert NEXT: at the beginning of line for next key (with 
empty line)
         
+        0.15.64 (2018-08-30):
+          - support round-trip of tagged sequences: ``!Arg [a, {b: 1}]``
+          - single entry mappings in flow sequences now written by default 
without quotes
+            set ``yaml.brace_single_entry_mapping_in_flow_sequence=True`` to 
force
+            getting ``[a, {b: 1}, {c: {d: 2}}]`` instead of the default ``[a, 
b: 1, c: {d: 2}]``
+          - fix issue when roundtripping floats starting with a dot such as 
``.5``
+            (reported by `Harrison Gregg 
<https://bitbucket.org/HarrisonGregg/>`__)
+        
+        0.15.63 (2018-08-29):
+          - small fix only necessary for Windows users that don't use wheels.
+        
+        0.15.62 (2018-08-29):
+          - C based reader/scanner & emitter now allow setting of 1.2 as YAML 
version.
+            ** The loading/dumping is still YAML 1.1 code**, so use the common 
subset of
+            YAML 1.2 and 1.1 (reported by `Ge Yang 
<https://bitbucket.org/yangge/>`__)
+        
         0.15.61 (2018-08-23):
           - support for round-tripping folded style scalars (initially 
requested 
             by `Johnathan Viduchinsky 
<https://bitbucket.org/johnathanvidu/>`__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/scalarstring.py 
new/ruamel.yaml-0.15.64/scalarstring.py
--- old/ruamel.yaml-0.15.61/scalarstring.py     2018-08-23 01:58:18.000000000 
+0200
+++ new/ruamel.yaml-0.15.64/scalarstring.py     2018-08-25 17:39:14.000000000 
+0200
@@ -13,6 +13,8 @@
     'FoldedScalarString',
     'SingleQuotedScalarString',
     'DoubleQuotedScalarString',
+    # PreservedScalarString is the old name, as it was the first to be 
preserved on rt,
+    # use LiteralScalarString instead
     'PreservedScalarString',
 ]
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/serializer.py 
new/ruamel.yaml-0.15.64/serializer.py
--- old/ruamel.yaml-0.15.61/serializer.py       2018-08-17 07:53:52.000000000 
+0200
+++ new/ruamel.yaml-0.15.64/serializer.py       2018-08-30 08:40:19.000000000 
+0200
@@ -225,6 +225,7 @@
                         implicit,
                         flow_style=node.flow_style,
                         comment=node.comment,
+                        nr_items=len(node.value),
                     )
                 )
                 for key, value in node.value:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ruamel.yaml-0.15.61/tokens.py 
new/ruamel.yaml-0.15.64/tokens.py
--- old/ruamel.yaml-0.15.61/tokens.py   2018-08-12 17:14:23.000000000 +0200
+++ new/ruamel.yaml-0.15.64/tokens.py   2018-08-25 20:10:12.000000000 +0200
@@ -1,8 +1,11 @@
 # # header
 # coding: utf-8
 
+from __future__ import unicode_literals
+
 if False:  # MYPY
-    from typing import Any, Dict, Optional, List  # NOQA
+    from typing import Text, Any, Dict, Optional, List  # NOQA
+    from .error import StreamMark  # NOQA
 
 SHOWLINES = True
 
@@ -11,7 +14,7 @@
     __slots__ = 'start_mark', 'end_mark', '_comment'
 
     def __init__(self, start_mark, end_mark):
-        # type: (Any, Any) -> None
+        # type: (StreamMark, StreamMark) -> None
         self.start_mark = start_mark
         self.end_mark = end_mark
 
@@ -21,17 +24,17 @@
         #               hasattr('self', key)]
         attributes = [key for key in self.__slots__ if not 
key.endswith('_mark')]
         attributes.sort()
-        arguments = u', '.join([u'%s=%r' % (key, getattr(self, key)) for key 
in attributes])
+        arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) for key in 
attributes])
         if SHOWLINES:
             try:
-                arguments += u', line: ' + str(self.start_mark.line)
+                arguments += ', line: ' + str(self.start_mark.line)
             except:  # NOQA
                 pass
         try:
-            arguments += u', comment: ' + str(self._comment)
+            arguments += ', comment: ' + str(self._comment)
         except:  # NOQA
             pass
-        return u'{}({})'.format(self.__class__.__name__, arguments)
+        return '{}({})'.format(self.__class__.__name__, arguments)
 
     def add_post_comment(self, comment):
         # type: (Any) -> None
@@ -259,10 +262,10 @@
 
     def __repr__(self):
         # type: () -> Any
-        v = u'{!r}'.format(self.value)
+        v = '{!r}'.format(self.value)
         if SHOWLINES:
             try:
-                v += u', line: ' + str(self.start_mark.line)
+                v += ', line: ' + str(self.start_mark.line)
             except:  # NOQA
                 pass
         return 'CommentToken({})'.format(v)


Reply via email to