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)