Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-pyaml for openSUSE:Leap:16.0 checked in at 2025-07-24 08:31:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:16.0/python-pyaml (Old) and /work/SRC/openSUSE:Leap:16.0/.python-pyaml.new.8875 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyaml" Thu Jul 24 08:31:07 2025 rev:2 rq:1293721 version:25.7.0 Changes: -------- --- /work/SRC/openSUSE:Leap:16.0/python-pyaml/python-pyaml.changes 2025-03-19 11:55:39.176194223 +0100 +++ /work/SRC/openSUSE:Leap:16.0/.python-pyaml.new.8875/python-pyaml.changes 2025-07-24 08:31:17.894547984 +0200 @@ -1,0 +2,32 @@ +Sun Jul 13 14:39:52 UTC 2025 - Dirk Müller <dmuel...@suse.com> + +- update to 25.7.0: + * tests: still match module in addition to class name + +------------------------------------------------------------------- +Wed Jun 11 05:49:27 UTC 2025 - Steve Kowalik <steven.kowa...@suse.com> + +- Switch to pyproject macros. + +------------------------------------------------------------------- +Thu May 29 08:16:08 UTC 2025 - Dirk Müller <dmuel...@suse.com> + +- update to 25.5.0: + * Fix repr_unknown logic for not splitting long values affecting + all plain strings + Only intended to keep e.g. "<SomeClass ...> # python SomeType" + values that have comments in them oneline, not all plain + strings. + +------------------------------------------------------------------- +Tue Apr 22 12:19:15 UTC 2025 - ecsos <ec...@opensuse.org> + +- Add %{?sle15_python_module_pythons} + +------------------------------------------------------------------- +Tue Feb 4 18:55:29 UTC 2025 - Dirk Müller <dmuel...@suse.com> + +- update to 25.1.0: + * https://github.com/mk-fg/pretty-yaml/compare/24.9.0...25.1.0 + +------------------------------------------------------------------- Old: ---- pyaml-24.9.0.tar.gz New: ---- pyaml-25.7.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pyaml.spec ++++++ --- /var/tmp/diff_new_pack.h1yxUD/_old 2025-07-24 08:31:18.150558628 +0200 +++ /var/tmp/diff_new_pack.h1yxUD/_new 2025-07-24 08:31:18.150558628 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-pyaml # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,19 +16,20 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} +%{?sle15_python_module_pythons} Name: python-pyaml -Version: 24.9.0 +Version: 25.7.0 Release: 0 Summary: Python module to produce formatted YAML-serialized data License: WTFPL -Group: Development/Languages/Python URL: https://github.com/mk-fg/pretty-yaml Source: https://files.pythonhosted.org/packages/source/p/pyaml/pyaml-%{version}.tar.gz BuildRequires: %{python_module PyYAML} BuildRequires: %{python_module Unidecode} +BuildRequires: %{python_module pip} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-PyYAML @@ -45,10 +46,10 @@ %setup -q -n pyaml-%{version} %build -%python_build +%pyproject_wheel %install -%python_install +%pyproject_install %python_clone -a %{buildroot}/%{_bindir}/pyaml %python_expand %fdupes %{buildroot}%{$python_sitelib} @@ -66,5 +67,5 @@ %doc README.rst %python_alternative %{_bindir}/pyaml %{python_sitelib}/pyaml -%{python_sitelib}/pyaml-%{version}*-info +%{python_sitelib}/pyaml-%{version}.dist-info ++++++ pyaml-24.9.0.tar.gz -> pyaml-25.7.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyaml-24.9.0/PKG-INFO new/pyaml-25.7.0/PKG-INFO --- old/pyaml-24.9.0/PKG-INFO 2024-09-28 00:24:07.296491400 +0200 +++ new/pyaml-25.7.0/PKG-INFO 2025-07-10 20:44:48.431457000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 2.1 +Metadata-Version: 2.4 Name: pyaml -Version: 24.9.0 +Version: 25.7.0 Summary: PyYAML-based module to produce a bit more pretty and readable YAML-serialized data Home-page: https://github.com/mk-fg/pretty-yaml Author: Mike Kazantsev @@ -22,6 +22,9 @@ Requires-Dist: PyYAML Provides-Extra: anchors Requires-Dist: unidecode; extra == "anchors" +Dynamic: author +Dynamic: home-page +Dynamic: license-file pretty-yaml (or pyaml) ====================== @@ -251,12 +254,19 @@ % python -m pyaml -r mydata.yml -* Easier "debug printf" for more complex data (all funcs below are aliases to same thing):: +* Easier "debug printf to YAML" for some complex data:: + + pyaml.debug(data) + pyaml.debug(node_graph, ifaces, group_vars) + + debug() is an alias for pprint(repr_unknown=True) to dump non-YAML types as well. + + More strict YAML-print funcs (all aliases to same thing):: pyaml.p(stuff) pyaml.pprint(my_data) pyaml.pprint('----- HOW DOES THAT BREAKS!?!?', input_data, some_var, more_stuff) - pyaml.print(data, file=sys.stderr) # needs "from __future__ import print_function" + pyaml.print(data, file=sys.stderr) * Force all string values to a certain style (see info on these in `PyYAML docs`_):: @@ -284,7 +294,7 @@ * Control thresholds for vertical spacing of values (0 = always space stuff out), and clump all oneliner ones at the top:: - >>> pyaml.dump( data, + >>> pyaml.p( data, sort_dicts=pyaml.PYAMLSort.oneline_group, vspacing=dict(split_lines=0, split_count=0) ) @@ -311,6 +321,20 @@ Or same thing with cli tool ``-v/--vspacing`` option: ``pyaml -v 0/0g mydata.yaml`` +* Dump any non-YAML-type values when debugging or to replace later:: + + >>> test2 = type('test2', (object,), dict(a='b'))() + >>> test3 = type('test3', (object,), dict(__repr__=lambda s: '# test3 repr'+' '*80))() + >>> pyaml.p(dict(test1='test1', test2=test2, test3=test3), repr_unknown=True) + + test1: test1 + test2: <__main__.test2 object at 0x7f00ccd1ade0> # python value + test3: '# test3 repr ...[50/92]' # python __main__.test3 + + Such unknown-type values get truncated if their repr() is too long, which can + be controlled by passing int max-length to repr_unknown instead of bool. + pyaml.debug() alias also implies repr_unknown=True flag. + .. _PyYAML docs: http://pyyaml.org/wiki/PyYAMLDocumentation#Scalars .. _this SO thread: http://stackoverflow.com/a/7445560 .. _github-issue-7: https://github.com/mk-fg/pretty-yaml/issues/7 @@ -326,7 +350,7 @@ Module uses PyYAML_ for processing of the actual YAML files and should pull it in as a dependency. -Dependency on unidecode_ module is optional and only be used with +Dependency on unidecode_ module is optional and only used with force_embed=False keyword (defaults to True), and same-id objects or recursion within serialized data - i.e. only when generating &some_key_id anchors is actually needed. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyaml-24.9.0/README.rst new/pyaml-25.7.0/README.rst --- old/pyaml-24.9.0/README.rst 2024-07-18 15:00:33.000000000 +0200 +++ new/pyaml-25.7.0/README.rst 2024-12-12 20:16:00.000000000 +0100 @@ -226,12 +226,19 @@ % python -m pyaml -r mydata.yml -* Easier "debug printf" for more complex data (all funcs below are aliases to same thing):: +* Easier "debug printf to YAML" for some complex data:: + + pyaml.debug(data) + pyaml.debug(node_graph, ifaces, group_vars) + + debug() is an alias for pprint(repr_unknown=True) to dump non-YAML types as well. + + More strict YAML-print funcs (all aliases to same thing):: pyaml.p(stuff) pyaml.pprint(my_data) pyaml.pprint('----- HOW DOES THAT BREAKS!?!?', input_data, some_var, more_stuff) - pyaml.print(data, file=sys.stderr) # needs "from __future__ import print_function" + pyaml.print(data, file=sys.stderr) * Force all string values to a certain style (see info on these in `PyYAML docs`_):: @@ -259,7 +266,7 @@ * Control thresholds for vertical spacing of values (0 = always space stuff out), and clump all oneliner ones at the top:: - >>> pyaml.dump( data, + >>> pyaml.p( data, sort_dicts=pyaml.PYAMLSort.oneline_group, vspacing=dict(split_lines=0, split_count=0) ) @@ -286,6 +293,20 @@ Or same thing with cli tool ``-v/--vspacing`` option: ``pyaml -v 0/0g mydata.yaml`` +* Dump any non-YAML-type values when debugging or to replace later:: + + >>> test2 = type('test2', (object,), dict(a='b'))() + >>> test3 = type('test3', (object,), dict(__repr__=lambda s: '# test3 repr'+' '*80))() + >>> pyaml.p(dict(test1='test1', test2=test2, test3=test3), repr_unknown=True) + + test1: test1 + test2: <__main__.test2 object at 0x7f00ccd1ade0> # python value + test3: '# test3 repr ...[50/92]' # python __main__.test3 + + Such unknown-type values get truncated if their repr() is too long, which can + be controlled by passing int max-length to repr_unknown instead of bool. + pyaml.debug() alias also implies repr_unknown=True flag. + .. _PyYAML docs: http://pyyaml.org/wiki/PyYAMLDocumentation#Scalars .. _this SO thread: http://stackoverflow.com/a/7445560 .. _github-issue-7: https://github.com/mk-fg/pretty-yaml/issues/7 @@ -301,7 +322,7 @@ Module uses PyYAML_ for processing of the actual YAML files and should pull it in as a dependency. -Dependency on unidecode_ module is optional and only be used with +Dependency on unidecode_ module is optional and only used with force_embed=False keyword (defaults to True), and same-id objects or recursion within serialized data - i.e. only when generating &some_key_id anchors is actually needed. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyaml-24.9.0/pyaml/__init__.py new/pyaml-25.7.0/pyaml/__init__.py --- old/pyaml-24.9.0/pyaml/__init__.py 2024-09-27 05:16:16.000000000 +0200 +++ new/pyaml-25.7.0/pyaml/__init__.py 2025-06-19 22:37:36.000000000 +0200 @@ -9,13 +9,14 @@ class str_ext(str): __slots__ = 'ext', pyaml_anchor_decode = None # imported from unidecode module when needed - pyaml_sort_dicts = None + pyaml_sort_dicts = pyaml_repr_unknown = None - def __init__( self, *args, sort_dicts=None, - force_embed=True, string_val_style=None, anchor_len_max=40, **kws ): + def __init__( self, *args, sort_dicts=None, force_embed=True, + string_val_style=None, anchor_len_max=40, repr_unknown=False, **kws ): self.pyaml_force_embed = force_embed self.pyaml_string_val_style = string_val_style self.pyaml_anchor_len_max = anchor_len_max + self.pyaml_repr_unknown = repr_unknown if isinstance(sort_dicts, PYAMLSort): if sort_dicts is sort_dicts.none: kws['sort_keys'] = False elif sort_dicts is sort_dicts.keys: kws['sort_keys'] = True @@ -136,15 +137,30 @@ if not callable(getattr(data, 'tolist', None)): raise AttributeError except: pass # can raise other errors with custom types else: return self.represent_data(data.tolist()) + if self.pyaml_repr_unknown: # repr value as a short oneliner + if isinstance(n := self.pyaml_repr_unknown, bool): n = 50 + if len(s := repr(data).replace('\n', '⏎')) > n + 10: + if (m := re.search(r' at (0x[0-9a-f]+>)$', s)) and n > len(m[0]): + s = s[:n-len(m[0])] + f' ~[{n:,d}/{len(s):,d}]~ ' + m[1] + else: s = s[:n] + f' ...[{n:,d}/{len(s):,d}]' + cls, node = data.__class__, self.represent_data(s) + if (st := f'{cls.__module__}.{cls.__name__}') in s: st = 'value' + node.value = (s := self.str_ext(s)); s.ext = f'# python {st}'; return node return super().represent_undefined(data) # will raise RepresenterError def write_ext(self, func, text, *args, **kws): # Emitter write-funcs extension to append comments to values + if ext := getattr(text, 'ext', None): + # Commented values are enums/class-reprs and such, which shouldn't be split + if args: args = [False, *args[1:]] + else: kws['split'] = False getattr(super(), f'write_{func}')(text, *args, **kws) - if ext := getattr(text, 'ext', None): super().write_plain(ext) + if ext: super().write_plain(ext, split=False) write_folded = lambda s,v,*a,**kw: s.write_ext('folded', v, *a, **kw) write_literal = lambda s,v,*a,**kw: s.write_ext('literal', v, *a, **kw) - write_plain = lambda s,v,*a,**kw: s.write_ext('plain', v, *a, **kw) + write_single_quoted = lambda s,v,*a,**kw: s.write_ext('single_quoted', v, *a, **kw) + write_double_quoted = lambda s,v,*a,**kw: s.write_ext('double_quoted', v, *a, **kw) + write_plain = lambda s,v,split=True: s.write_ext('plain', v, split) # Unsafe was a separate class in <23.x versions, left here for compatibility @@ -205,7 +221,8 @@ def dump( data, dst=None, safe=None, force_embed=True, vspacing=True, - string_val_style=None, sort_dicts=None, multiple_docs=False, width=100, **pyyaml_kws ): + string_val_style=None, sort_dicts=None, multiple_docs=False, width=100, + repr_unknown=False, **pyyaml_kws ): '''Serialize data as pretty-YAML to specified dst file-like object, or return as str with dst=str (default) or encoded to bytes with dst=bytes.''' if safe is not None: @@ -225,7 +242,8 @@ buff = io.StringIO() Dumper = lambda *a,**kw: PYAMLDumper( *a, **kw, - force_embed=force_embed, string_val_style=string_val_style, sort_dicts=sort_dicts ) + force_embed=force_embed, string_val_style=string_val_style, + sort_dicts=sort_dicts, repr_unknown=repr_unknown ) if not multiple_docs: data = [data] else: pyyaml_kws.setdefault('explicit_start', True) yaml.dump_all( data, buff, Dumper=Dumper, width=width, @@ -253,18 +271,25 @@ else: dst.write(buff.encode()) -# Simplier pyaml.dump() aliases +# Simpler pyaml.dump() aliases def dump_all(data, *dump_args, **dump_kws): + 'Alias to dump(list, multiple_docs=True) for API compatibility with pyyaml' return dump(data, *dump_args, multiple_docs=True, **dump_kws) def dumps(data, **dump_kws): + 'Alias to dump() for API compatibility with stdlib conventions' return dump(data, **dump_kws) def pprint(*data, **dump_kws): + 'Similar to how print() works, with any number of arguments and stdout-default' dst = dump_kws.pop('file', dump_kws.pop('dst', sys.stdout)) if len(data) == 1: data, = data dump(data, dst=dst, **dump_kws) +def debug(*data, **dump_kws): + 'Same as pprint, but also repr-printing any non-yaml types' + pprint(*data, repr_unknown=True, **dump_kws) + _p = lambda *a,_p=print,**kw: _p(*a, **kw, flush=True) # to use here for debug p = print = pprint diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyaml-24.9.0/pyaml/__main__.py new/pyaml-25.7.0/pyaml/__main__.py --- old/pyaml-24.9.0/pyaml/__main__.py 2024-04-17 22:41:02.000000000 +0200 +++ new/pyaml-25.7.0/pyaml/__main__.py 2025-01-01 15:49:27.000000000 +0100 @@ -1,7 +1,9 @@ import os, sys, pyaml.cli +main = pyaml.cli.main # was defined here before moving to cli.py + if __name__ == '__main__': - try: sys.exit(pyaml.cli.main()) + try: sys.exit(main()) except BrokenPipeError: # stdout pipe closed os.dup2(os.open(os.devnull, os.O_WRONLY), sys.stdout.fileno()) sys.exit(1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyaml-24.9.0/pyaml/tests/test_dump.py new/pyaml-25.7.0/pyaml/tests/test_dump.py --- old/pyaml-24.9.0/pyaml/tests/test_dump.py 2024-09-27 05:29:34.000000000 +0200 +++ new/pyaml-25.7.0/pyaml/tests/test_dump.py 2025-07-10 20:43:38.000000000 +0200 @@ -592,6 +592,40 @@ self.assertNotEqual(ys2, ys3) self.assertEqual(self.empty_line_list(ys3), [1, 4, 8, 11, 14, 18]) + def test_repr_undefined(self): + class TestType1: + def __repr__(self): return large_yaml.decode() + class TestType2: + def __repr__(self): return '# should end up quoted' + ' '*100 + unknown3 = type('TestType3', (object,), dict(a='b'))() + with open('/dev/null') as unknown4: + data = dict( known='val', unknown1=TestType1(), + unknown2=TestType2(), unknown3=unknown3, unknown4=unknown4 ) + with self.assertRaises(yaml.YAMLError): ys = pyaml.dump(data) + with self.assertRaises(yaml.YAMLError): ys = pyaml.dump(unknown3) + self.assertIn(' ...[1/', pyaml.dump(data, repr_unknown=1)) + ys = pyaml.dump(data, repr_unknown=True) + self.assertEqual(len(ys.splitlines()), 5) + self.assertIn('.test_dump.TestType3', ys) + self.assertIn('TextIOWrapper', ys) + ys = pyaml.dump(data, width=30, repr_unknown=30) + self.assertEqual(len(ys.splitlines()), 5) + self.assertIn(' ...[30/', ys) + self.assertNotIn('unknown2: # should end up quoted', ys) + self.assertIn('.test_dump.TestType3', ys) + + def test_long_value_split(self): + data = dict( + sshkey=dict(__XML__PARAM__line=dict(__XML__value=f'ssh-rsa {"X"*372} user@host')), + vlan=[{'__XML__PARAM__vlan-id-create-delete': dict(__XML__value='1, 30, 50,' + ' 110, 121-126, 999-1001, 1010, 1012, 1014, 1016, 1018, 1020-1022, 1060-1063,' + ' 1080-1083, 1111-1113, 2000, 2201-2202, 2206, 2208, 2210, 2254, 3000, 3002,' + ' 3006, 3008, 3021, 3100-3102, 3106, 3108, 3121, 3322, 3326, 3328, 3448-3452,' + ' 3455-3458, 3950, 3955, 3960, 3965-3966')}] ) + ys = pyaml.dump(data) + self.assertEqual(len(ys.splitlines()), 9) + self.assertEqual(yaml.safe_load(ys), data) + if __name__ == '__main__': unittest.main() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyaml-24.9.0/pyaml.egg-info/PKG-INFO new/pyaml-25.7.0/pyaml.egg-info/PKG-INFO --- old/pyaml-24.9.0/pyaml.egg-info/PKG-INFO 2024-09-28 00:24:07.000000000 +0200 +++ new/pyaml-25.7.0/pyaml.egg-info/PKG-INFO 2025-07-10 20:44:48.000000000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 2.1 +Metadata-Version: 2.4 Name: pyaml -Version: 24.9.0 +Version: 25.7.0 Summary: PyYAML-based module to produce a bit more pretty and readable YAML-serialized data Home-page: https://github.com/mk-fg/pretty-yaml Author: Mike Kazantsev @@ -22,6 +22,9 @@ Requires-Dist: PyYAML Provides-Extra: anchors Requires-Dist: unidecode; extra == "anchors" +Dynamic: author +Dynamic: home-page +Dynamic: license-file pretty-yaml (or pyaml) ====================== @@ -251,12 +254,19 @@ % python -m pyaml -r mydata.yml -* Easier "debug printf" for more complex data (all funcs below are aliases to same thing):: +* Easier "debug printf to YAML" for some complex data:: + + pyaml.debug(data) + pyaml.debug(node_graph, ifaces, group_vars) + + debug() is an alias for pprint(repr_unknown=True) to dump non-YAML types as well. + + More strict YAML-print funcs (all aliases to same thing):: pyaml.p(stuff) pyaml.pprint(my_data) pyaml.pprint('----- HOW DOES THAT BREAKS!?!?', input_data, some_var, more_stuff) - pyaml.print(data, file=sys.stderr) # needs "from __future__ import print_function" + pyaml.print(data, file=sys.stderr) * Force all string values to a certain style (see info on these in `PyYAML docs`_):: @@ -284,7 +294,7 @@ * Control thresholds for vertical spacing of values (0 = always space stuff out), and clump all oneliner ones at the top:: - >>> pyaml.dump( data, + >>> pyaml.p( data, sort_dicts=pyaml.PYAMLSort.oneline_group, vspacing=dict(split_lines=0, split_count=0) ) @@ -311,6 +321,20 @@ Or same thing with cli tool ``-v/--vspacing`` option: ``pyaml -v 0/0g mydata.yaml`` +* Dump any non-YAML-type values when debugging or to replace later:: + + >>> test2 = type('test2', (object,), dict(a='b'))() + >>> test3 = type('test3', (object,), dict(__repr__=lambda s: '# test3 repr'+' '*80))() + >>> pyaml.p(dict(test1='test1', test2=test2, test3=test3), repr_unknown=True) + + test1: test1 + test2: <__main__.test2 object at 0x7f00ccd1ade0> # python value + test3: '# test3 repr ...[50/92]' # python __main__.test3 + + Such unknown-type values get truncated if their repr() is too long, which can + be controlled by passing int max-length to repr_unknown instead of bool. + pyaml.debug() alias also implies repr_unknown=True flag. + .. _PyYAML docs: http://pyyaml.org/wiki/PyYAMLDocumentation#Scalars .. _this SO thread: http://stackoverflow.com/a/7445560 .. _github-issue-7: https://github.com/mk-fg/pretty-yaml/issues/7 @@ -326,7 +350,7 @@ Module uses PyYAML_ for processing of the actual YAML files and should pull it in as a dependency. -Dependency on unidecode_ module is optional and only be used with +Dependency on unidecode_ module is optional and only used with force_embed=False keyword (defaults to True), and same-id objects or recursion within serialized data - i.e. only when generating &some_key_id anchors is actually needed. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyaml-24.9.0/pyaml.egg-info/entry_points.txt new/pyaml-25.7.0/pyaml.egg-info/entry_points.txt --- old/pyaml-24.9.0/pyaml.egg-info/entry_points.txt 2024-09-28 00:24:07.000000000 +0200 +++ new/pyaml-25.7.0/pyaml.egg-info/entry_points.txt 2025-07-10 20:44:48.000000000 +0200 @@ -1,2 +1,2 @@ [console_scripts] -pyaml = pyaml.__main__:main +pyaml = pyaml.cli:main diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyaml-24.9.0/pyproject.toml new/pyaml-25.7.0/pyproject.toml --- old/pyaml-24.9.0/pyproject.toml 2024-09-27 05:31:06.000000000 +0200 +++ new/pyaml-25.7.0/pyproject.toml 2025-07-10 20:43:58.000000000 +0200 @@ -1,7 +1,7 @@ [project] name = "pyaml" -version = "24.09.0" +version = "25.7.0" description = "PyYAML-based module to produce a bit more pretty and readable YAML-serialized data" authors = [{name="Mike Kazantsev", email="mk.frag...@gmail.com"}] @@ -31,4 +31,4 @@ anchors = ["unidecode"] [project.scripts] -pyaml = "pyaml.__main__:main" +pyaml = "pyaml.cli:main"