Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-ruamel.yaml for openSUSE:Factory checked in at 2022-01-11 21:17:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-ruamel.yaml (Old) and /work/SRC/openSUSE:Factory/.python-ruamel.yaml.new.1892 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ruamel.yaml" Tue Jan 11 21:17:14 2022 rev:29 rq:945435 version:0.17.20 Changes: -------- --- /work/SRC/openSUSE:Factory/python-ruamel.yaml/python-ruamel.yaml.changes 2021-12-09 19:45:00.521115908 +0100 +++ /work/SRC/openSUSE:Factory/.python-ruamel.yaml.new.1892/python-ruamel.yaml.changes 2022-01-11 21:20:34.969014247 +0100 @@ -1,0 +2,9 @@ +Mon Jan 10 22:47:40 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 0.17.20: + - fix error in microseconds while rounding datetime fractions >= 9999995 + - fix mypy problems + - copy-paste error in folded scalar comment attachment + - fix 411, indent error comment between key empty seq value + +------------------------------------------------------------------- Old: ---- ruamel.yaml-0.17.17.tar.gz New: ---- ruamel.yaml-0.17.20.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-ruamel.yaml.spec ++++++ --- /var/tmp/diff_new_pack.J0MfYT/_old 2022-01-11 21:20:35.457014591 +0100 +++ /var/tmp/diff_new_pack.J0MfYT/_new 2022-01-11 21:20:35.461014593 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-ruamel.yaml # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-ruamel.yaml -Version: 0.17.17 +Version: 0.17.20 Release: 0 Summary: Python YAML parser License: MIT ++++++ ruamel.yaml-0.17.17.tar.gz -> ruamel.yaml-0.17.20.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/CHANGES new/ruamel.yaml-0.17.20/CHANGES --- old/ruamel.yaml-0.17.17/CHANGES 2021-10-31 21:13:06.000000000 +0100 +++ new/ruamel.yaml-0.17.20/CHANGES 2022-01-03 09:19:20.000000000 +0100 @@ -1,3 +1,16 @@ +[0, 17, 20]: today + - fix error in microseconds while rounding datetime fractions >= 9999995 + (reported by `Luis Ferreira <https://sourceforge.net/u/ljmf00/>`__) + +[0, 17, 19]: 2021-12-26 + - fix mypy problems (reported by `Arun <https://sourceforge.net/u/arunppsg/profile/>`__) + +[0, 17, 18]: 2021-12-24 + - copy-paste error in folded scalar comment attachment (reported by `Stephan Geulette + <https://sourceforge.net/u/sgeulette/profile/>`__) + - fix 411, indent error comment between key empty seq value (reported by `Guillermo Juli??n + <https://sourceforge.net/u/gjulianm/profile/>`__) + [0, 17, 17]: 2021-10-31 - extract timestamp matching/creation to util diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/LICENSE new/ruamel.yaml-0.17.20/LICENSE --- old/ruamel.yaml-0.17.17/LICENSE 2021-10-31 21:16:00.000000000 +0100 +++ new/ruamel.yaml-0.17.20/LICENSE 2022-01-03 09:22:48.000000000 +0100 @@ -1,6 +1,6 @@ The MIT License (MIT) - Copyright (c) 2014-2021 Anthon van der Neut, Ruamel bvba + Copyright (c) 2014-2022 Anthon van der Neut, Ruamel bvba Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/PKG-INFO new/ruamel.yaml-0.17.20/PKG-INFO --- old/ruamel.yaml-0.17.17/PKG-INFO 2021-10-31 21:16:01.232837400 +0100 +++ new/ruamel.yaml-0.17.20/PKG-INFO 2022-01-03 09:22:49.514227600 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: ruamel.yaml -Version: 0.17.17 +Version: 0.17.20 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://sourceforge.net/p/ruamel-yaml/code/ci/default/tree Author: Anthon van der Neut @@ -14,6 +14,7 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 @@ -35,8 +36,8 @@ ``ruamel.yaml`` is a YAML 1.2 loader/dumper package for Python. -:version: 0.17.17 -:updated: 2021-10-31 +:version: 0.17.20 +:updated: today :documentation: http://yaml.readthedocs.io :repository: https://sourceforge.net/projects/ruamel-yaml/ :pypi: https://pypi.org/project/ruamel.yaml/ @@ -103,6 +104,19 @@ .. should insert NEXT: at the beginning of line for next key (with empty line) +0.17.20 (today): + - fix error in microseconds while rounding datetime fractions >= 9999995 + (reported by `Luis Ferreira <https://sourceforge.net/u/ljmf00/>`__) + +0.17.19 (2021-12-26): + - fix mypy problems (reported by `Arun <https://sourceforge.net/u/arunppsg/profile/>`__) + +0.17.18 (2021-12-24): + - copy-paste error in folded scalar comment attachment (reported by `Stephan Geulette + <https://sourceforge.net/u/sgeulette/profile/>`__) + - fix 411, indent error comment between key empty seq value (reported by `Guillermo Juli??n + <https://sourceforge.net/u/gjulianm/profile/>`__) + 0.17.17 (2021-10-31): - extract timestamp matching/creation to util diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/README.rst new/ruamel.yaml-0.17.20/README.rst --- old/ruamel.yaml-0.17.17/README.rst 2021-10-31 21:13:06.000000000 +0100 +++ new/ruamel.yaml-0.17.20/README.rst 2022-01-03 09:19:20.000000000 +0100 @@ -4,8 +4,8 @@ ``ruamel.yaml`` is a YAML 1.2 loader/dumper package for Python. -:version: 0.17.17 -:updated: 2021-10-31 +:version: 0.17.20 +:updated: today :documentation: http://yaml.readthedocs.io :repository: https://sourceforge.net/projects/ruamel-yaml/ :pypi: https://pypi.org/project/ruamel.yaml/ @@ -72,6 +72,19 @@ .. should insert NEXT: at the beginning of line for next key (with empty line) +0.17.20 (today): + - fix error in microseconds while rounding datetime fractions >= 9999995 + (reported by `Luis Ferreira <https://sourceforge.net/u/ljmf00/>`__) + +0.17.19 (2021-12-26): + - fix mypy problems (reported by `Arun <https://sourceforge.net/u/arunppsg/profile/>`__) + +0.17.18 (2021-12-24): + - copy-paste error in folded scalar comment attachment (reported by `Stephan Geulette + <https://sourceforge.net/u/sgeulette/profile/>`__) + - fix 411, indent error comment between key empty seq value (reported by `Guillermo Juli??n + <https://sourceforge.net/u/gjulianm/profile/>`__) + 0.17.17 (2021-10-31): - extract timestamp matching/creation to util diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/__init__.py new/ruamel.yaml-0.17.20/__init__.py --- old/ruamel.yaml-0.17.17/__init__.py 2021-10-31 21:13:33.000000000 +0100 +++ new/ruamel.yaml-0.17.20/__init__.py 2022-01-03 09:19:48.000000000 +0100 @@ -5,15 +5,16 @@ _package_data = dict( full_package_name='ruamel.yaml', - version_info=(0, 17, 17), - __version__='0.17.17', + version_info=(0, 17, 20), + __version__='0.17.20', + version_timestamp='2022-01-03 09:19:48', 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 entry_points=None, since=2014, extras_require={ - ':platform_python_implementation=="CPython" and python_version<"3.10"': ['ruamel.yaml.clib>=0.1.2'], # NOQA + ':platform_python_implementation=="CPython" and python_version<"3.11"': ['ruamel.yaml.clib>=0.2.6'], # NOQA 'jinja2': ['ruamel.yaml.jinja2>=0.2'], 'docs': ['ryd'], }, @@ -24,6 +25,7 @@ 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: Implementation :: CPython', 'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: Text Processing :: Markup', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/comments.py new/ruamel.yaml-0.17.20/comments.py --- old/ruamel.yaml-0.17.17/comments.py 2021-10-31 20:31:50.000000000 +0100 +++ new/ruamel.yaml-0.17.20/comments.py 2021-12-26 15:54:02.000000000 +0100 @@ -395,10 +395,10 @@ if c[1] is None: c[1] = [] if before == '\n': - c[1].append(comment_token("", start_mark)) + c[1].append(comment_token("", start_mark)) # type: ignore else: for com in before.split('\n'): - c[1].append(comment_token(com, start_mark)) + c[1].append(comment_token(com, start_mark)) # type: ignore if after: start_mark = CommentMark(after_indent) if c[3] is None: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/constructor.py new/ruamel.yaml-0.17.20/constructor.py --- old/ruamel.yaml-0.17.17/constructor.py 2021-10-31 21:11:27.000000000 +0100 +++ new/ruamel.yaml-0.17.20/constructor.py 2022-01-03 09:19:08.000000000 +0100 @@ -1071,7 +1071,7 @@ if node.comment is not None and node.comment[1]: # nprintf('>>>>nc2', node.comment) # EOL comment after > - lss.comment = self.comment(node.comment[1][0]) # type: ignore + fss.comment = self.comment(node.comment[1][0]) # type: ignore if fold_positions: fss.fold_pos = fold_positions # type: ignore return fss @@ -1759,20 +1759,7 @@ else: return create_timestamp(**values) # return SafeConstructor.construct_yaml_timestamp(self, node, values) - year = int(values['year']) - month = int(values['month']) - day = int(values['day']) - hour = int(values['hour']) - minute = int(values['minute']) - second = int(values['second']) - fraction = 0 - if values['fraction']: - fraction_s = values['fraction'][:6] - while len(fraction_s) < 6: - fraction_s += '0' - fraction = int(fraction_s) - if len(values['fraction']) > 6 and int(values['fraction'][6]) > 4: - fraction += 1 + dd = create_timestamp(**values) # this has delta applied delta = None if values['tz_sign']: tz_hour = int(values['tz_hour']) @@ -1782,17 +1769,16 @@ if values['tz_sign'] == '-': delta = -delta # should check for None and solve issue 366 should be tzinfo=delta) + data = TimeStamp( + dd.year, dd.month, dd.day, dd.hour, dd.minute, dd.second, dd.microsecond + ) if delta: - dt = datetime.datetime(year, month, day, hour, minute) - dt -= delta - data = TimeStamp(dt.year, dt.month, dt.day, dt.hour, dt.minute, second, fraction) data._yaml['delta'] = delta tz = values['tz_sign'] + values['tz_hour'] if values['tz_minute']: tz += ':' + values['tz_minute'] data._yaml['tz'] = tz else: - data = TimeStamp(year, month, day, hour, minute, second, fraction) if values['tz']: # no delta data._yaml['tz'] = values['tz'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/emitter.py new/ruamel.yaml-0.17.20/emitter.py --- old/ruamel.yaml-0.17.17/emitter.py 2021-05-30 22:42:19.000000000 +0200 +++ new/ruamel.yaml-0.17.20/emitter.py 2021-12-27 14:58:57.000000000 +0100 @@ -54,7 +54,7 @@ # replacement for the list based stack of None/int def __init__(self): # type: () -> None - self.values = [] # type: List[Tuple[int, bool]] + self.values = [] # type: List[Tuple[Any, bool]] def append(self, val, seq): # type: (Any, Any) -> None @@ -73,14 +73,19 @@ except IndexError: return False - def seq_flow_align(self, seq_indent, column): - # type: (int, int) -> int + def seq_flow_align(self, seq_indent, column, pre_comment=False): + # type: (int, int, Optional[bool]) -> int # extra spaces because of dash + # nprint('seq_flow_align', self.values, pre_comment) if len(self.values) < 2 or not self.values[-1][1]: - return 0 - # -1 for the dash + if len(self.values) == 0 or not pre_comment: + return 0 base = self.values[-1][0] if self.values[-1][0] is not None else 0 - return base + seq_indent - column - 1 + if pre_comment: + return base + seq_indent # type: ignore + # return (len(self.values)) * seq_indent + # -1 for the dash + return base + seq_indent - column - 1 # type: ignore def __len__(self): # type: () -> int @@ -405,6 +410,7 @@ # type: (bool, bool, bool, bool) -> None self.root_context = root self.sequence_context = sequence # not used in PyYAML + force_flow_indent = False self.mapping_context = mapping self.simple_key_context = simple_key if isinstance(self.event, AliasEvent): @@ -430,20 +436,27 @@ # nprint('@', self.indention, self.no_newline, self.column) i2, n2 = self.indention, self.no_newline # NOQA if self.event.comment: - if self.event.flow_style is False and self.event.comment: + if self.event.flow_style is False: if self.write_post_comment(self.event): self.indention = False self.no_newline = True + if self.event.flow_style: + column = self.column if self.write_pre_comment(self.event): + if self.event.flow_style: + # force_flow_indent = True + force_flow_indent = not self.indents.values[-1][1] self.indention = i2 self.no_newline = not self.indention + if self.event.flow_style: + self.column = column if ( self.flow_level or self.canonical or self.event.flow_style or self.check_empty_sequence() ): - self.expect_flow_sequence() + self.expect_flow_sequence(force_flow_indent) else: self.expect_block_sequence() elif isinstance(self.event, MappingStartEvent): @@ -451,13 +464,16 @@ self.write_post_comment(self.event) if self.event.comment and self.event.comment[1]: self.write_pre_comment(self.event) + if self.event.flow_style: + force_flow_indent = not self.indents.values[-1][1] if ( self.flow_level or self.canonical or self.event.flow_style or self.check_empty_mapping() ): - self.expect_flow_mapping(single=self.event.nr_items == 1) + self.expect_flow_mapping(single=self.event.nr_items == 1, + force_flow_indent=force_flow_indent) else: self.expect_block_mapping() else: @@ -481,11 +497,15 @@ # Flow sequence handlers. - def expect_flow_sequence(self): - # type: () -> None - ind = self.indents.seq_flow_align(self.best_sequence_indent, self.column) + def expect_flow_sequence(self, force_flow_indent=False): + # type: (Optional[bool]) -> None + if force_flow_indent: + self.increase_indent(flow=True, sequence=True) + ind = self.indents.seq_flow_align(self.best_sequence_indent, self.column, + force_flow_indent) self.write_indicator(' ' * ind + '[', True, whitespace=True) - self.increase_indent(flow=True, sequence=True) + if not force_flow_indent: + self.increase_indent(flow=True, sequence=True) self.flow_context.append('[') self.state = self.expect_first_flow_sequence_item @@ -533,9 +553,12 @@ # Flow mapping handlers. - def expect_flow_mapping(self, single=False): - # type: (Optional[bool]) -> None - ind = self.indents.seq_flow_align(self.best_sequence_indent, self.column) + def expect_flow_mapping(self, single=False, force_flow_indent=False): + # type: (Optional[bool], Optional[bool]) -> None + if force_flow_indent: + self.increase_indent(flow=True, sequence=False) + ind = self.indents.seq_flow_align(self.best_sequence_indent, self.column, + force_flow_indent) map_init = '{' if ( single @@ -548,7 +571,8 @@ map_init = '' self.write_indicator(' ' * ind + map_init, True, whitespace=True) self.flow_context.append(map_init) - self.increase_indent(flow=True, sequence=False) + if not force_flow_indent: + self.increase_indent(flow=True, sequence=False) self.state = self.expect_first_flow_mapping_key def expect_first_flow_mapping_key(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/parser.py new/ruamel.yaml-0.17.20/parser.py --- old/ruamel.yaml-0.17.17/parser.py 2021-05-31 08:33:16.000000000 +0200 +++ new/ruamel.yaml-0.17.20/parser.py 2021-12-25 07:50:42.000000000 +0100 @@ -233,7 +233,8 @@ # end_mark.line != self.scanner.peek_token().start_mark.line: # self.loader.scalar_after_indicator = False event = DocumentStartEvent( - start_mark, end_mark, explicit=True, version=version, tags=tags + start_mark, end_mark, explicit=True, version=version, tags=tags, + comment=token.comment ) # type: Any self.states.append(self.parse_document_end) self.state = self.parse_document_content diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/representer.py new/ruamel.yaml-0.17.20/representer.py --- old/ruamel.yaml-0.17.17/representer.py 2021-08-21 14:14:03.000000000 +0200 +++ new/ruamel.yaml-0.17.20/representer.py 2021-12-26 15:54:39.000000000 +0100 @@ -1082,6 +1082,7 @@ return SafeRepresenter.represent_bool(self, data, anchor=anchor) def represent_yaml_object(self, tag, data, cls, flow_style=None): + # type: (Any, Any, Any, Optional[Any]) -> Any if hasattr(data, '__getstate__'): state = data.__getstate__() else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/ruamel.yaml.egg-info/PKG-INFO new/ruamel.yaml-0.17.20/ruamel.yaml.egg-info/PKG-INFO --- old/ruamel.yaml-0.17.17/ruamel.yaml.egg-info/PKG-INFO 2021-10-31 21:16:01.000000000 +0100 +++ new/ruamel.yaml-0.17.20/ruamel.yaml.egg-info/PKG-INFO 2022-01-03 09:22:49.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: ruamel.yaml -Version: 0.17.17 +Version: 0.17.20 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://sourceforge.net/p/ruamel-yaml/code/ci/default/tree Author: Anthon van der Neut @@ -14,6 +14,7 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 @@ -35,8 +36,8 @@ ``ruamel.yaml`` is a YAML 1.2 loader/dumper package for Python. -:version: 0.17.17 -:updated: 2021-10-31 +:version: 0.17.20 +:updated: today :documentation: http://yaml.readthedocs.io :repository: https://sourceforge.net/projects/ruamel-yaml/ :pypi: https://pypi.org/project/ruamel.yaml/ @@ -103,6 +104,19 @@ .. should insert NEXT: at the beginning of line for next key (with empty line) +0.17.20 (today): + - fix error in microseconds while rounding datetime fractions >= 9999995 + (reported by `Luis Ferreira <https://sourceforge.net/u/ljmf00/>`__) + +0.17.19 (2021-12-26): + - fix mypy problems (reported by `Arun <https://sourceforge.net/u/arunppsg/profile/>`__) + +0.17.18 (2021-12-24): + - copy-paste error in folded scalar comment attachment (reported by `Stephan Geulette + <https://sourceforge.net/u/sgeulette/profile/>`__) + - fix 411, indent error comment between key empty seq value (reported by `Guillermo Juli??n + <https://sourceforge.net/u/gjulianm/profile/>`__) + 0.17.17 (2021-10-31): - extract timestamp matching/creation to util diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/ruamel.yaml.egg-info/requires.txt new/ruamel.yaml-0.17.20/ruamel.yaml.egg-info/requires.txt --- old/ruamel.yaml-0.17.17/ruamel.yaml.egg-info/requires.txt 2021-10-31 21:16:01.000000000 +0100 +++ new/ruamel.yaml-0.17.20/ruamel.yaml.egg-info/requires.txt 2022-01-03 09:22:49.000000000 +0100 @@ -1,6 +1,6 @@ -[:platform_python_implementation=="CPython" and python_version<"3.10"] -ruamel.yaml.clib>=0.1.2 +[:platform_python_implementation=="CPython" and python_version<"3.11"] +ruamel.yaml.clib>=0.2.6 [docs] ryd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/scanner.py new/ruamel.yaml-0.17.20/scanner.py --- old/ruamel.yaml-0.17.17/scanner.py 2021-05-31 07:38:10.000000000 +0200 +++ new/ruamel.yaml-0.17.20/scanner.py 2021-12-25 07:50:42.000000000 +0100 @@ -2406,7 +2406,7 @@ mark = self.reader.get_mark() comment = '#' else: - # print('breaking on', repr(ch)) + # xprintf('breaking on', repr(ch)) break else: comment += ch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/setup.py new/ruamel.yaml-0.17.20/setup.py --- old/ruamel.yaml-0.17.17/setup.py 2021-10-31 21:13:01.000000000 +0100 +++ new/ruamel.yaml-0.17.20/setup.py 2021-12-25 07:50:42.000000000 +0100 @@ -527,7 +527,7 @@ if package_name is None: package_name = self.full_package_name if not script_name: - script_name = package_name.split('.')[-1] + script_name = package_name.rsplit('.', 1)[-1] return { 'console_scripts': [ '{0} = {1}'.format(script_name, pckg_entry_point(package_name)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ruamel.yaml-0.17.17/util.py new/ruamel.yaml-0.17.20/util.py --- old/ruamel.yaml-0.17.17/util.py 2021-10-31 21:09:34.000000000 +0100 +++ new/ruamel.yaml-0.17.20/util.py 2022-01-03 09:18:43.000000000 +0100 @@ -67,6 +67,9 @@ def create_timestamp( year, month, day, t, hour, minute, second, fraction, tz, tz_sign, tz_hour, tz_minute ): + # type: (Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) -> Any + # create a timestamp from match against timestamp_regexp + MAX_FRAC = 999999 year = int(year) month = int(month) day = int(day) @@ -75,24 +78,31 @@ hour = int(hour) minute = int(minute) second = int(second) + frac = 0 if fraction: - frac = 0 frac_s = fraction[:6] while len(frac_s) < 6: frac_s += '0' frac = int(frac_s) if len(fraction) > 6 and int(fraction[6]) > 4: frac += 1 - fraction = frac + if frac > MAX_FRAC: + fraction = 0 + else: + fraction = frac else: fraction = 0 delta = None if tz_sign: tz_hour = int(tz_hour) tz_minute = int(tz_minute) if tz_minute else 0 - delta = datetime.timedelta(hours=tz_hour, minutes=tz_minute) + delta = datetime.timedelta( + hours=tz_hour, minutes=tz_minute, seconds=1 if frac > MAX_FRAC else 0 + ) if tz_sign == '-': delta = -delta + elif frac > MAX_FRAC: + delta = -datetime.timedelta(seconds=1) # should do something else instead (or hook this up to the preceding if statement # in reverse # if delta is None: