Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-yamllint for openSUSE:Factory
checked in at 2023-12-17 21:31:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-yamllint (Old)
and /work/SRC/openSUSE:Factory/.python-yamllint.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-yamllint"
Sun Dec 17 21:31:43 2023 rev:18 rq:1133548 version:1.33.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-yamllint/python-yamllint.changes
2023-06-01 17:21:14.550772887 +0200
+++
/work/SRC/openSUSE:Factory/.python-yamllint.new.25432/python-yamllint.changes
2023-12-17 21:34:15.861812603 +0100
@@ -1,0 +2,9 @@
+Fri Dec 15 22:11:00 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 1.33.0:
+ * Add support for Python 3.12, drop support for Python 3.7
+ * Rule ``document-end``: fix spurious "missing document end"
+ * Rule ``empty-values``: add ``forbid-in-block-sequences``
+ option
+
+-------------------------------------------------------------------
Old:
----
yamllint-1.32.0.tar.gz
New:
----
yamllint-1.33.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-yamllint.spec ++++++
--- /var/tmp/diff_new_pack.KmqliQ/_old 2023-12-17 21:34:16.353830479 +0100
+++ /var/tmp/diff_new_pack.KmqliQ/_new 2023-12-17 21:34:16.353830479 +0100
@@ -18,23 +18,19 @@
%{?sle15_python_module_pythons}
Name: python-yamllint
-Version: 1.32.0
+Version: 1.33.0
Release: 0
Summary: A linter for YAML files
License: GPL-3.0-only
Group: Development/Languages/Python
URL: https://github.com/adrienverge/yamllint
Source:
https://files.pythonhosted.org/packages/source/y/yamllint/yamllint-%{version}.tar.gz
-BuildRequires: %{python_module base >= 3.6}
+BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-PyYAML
Requires: python-pathspec >= 0.5.3
-%if 0%{python_version_nodots} < 38
-# boo#1151703, See below
-Requires: python-setuptools
-%endif
Requires(post): update-alternatives
Requires(postun):update-alternatives
BuildArch: noarch
++++++ yamllint-1.32.0.tar.gz -> yamllint-1.33.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/CHANGELOG.rst
new/yamllint-1.33.0/CHANGELOG.rst
--- old/yamllint-1.32.0/CHANGELOG.rst 2023-05-22 18:01:32.000000000 +0200
+++ new/yamllint-1.33.0/CHANGELOG.rst 2023-11-09 10:32:03.000000000 +0100
@@ -1,6 +1,13 @@
Changelog
=========
+1.33.0 (2023-11-09)
+-------------------
+
+- Add support for Python 3.12, drop support for Python 3.7
+- Rule ``document-end``: fix spurious "missing document end"
+- Rule ``empty-values``: add ``forbid-in-block-sequences`` option
+
1.32.0 (2023-05-22)
-------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/PKG-INFO new/yamllint-1.33.0/PKG-INFO
--- old/yamllint-1.32.0/PKG-INFO 2023-05-22 18:03:07.044988400 +0200
+++ new/yamllint-1.33.0/PKG-INFO 2023-11-09 10:34:59.056179000 +0100
@@ -1,9 +1,9 @@
Metadata-Version: 2.1
Name: yamllint
-Version: 1.32.0
+Version: 1.33.0
Summary: A linter for YAML files.
Author: Adrien Vergé
-License: GPL-3.0-only
+License: GPL-3.0-or-later
Project-URL: homepage, https://github.com/adrienverge/yamllint
Project-URL: repository, https://github.com/adrienverge/yamllint
Project-URL: documentation, https://yamllint.readthedocs.io
@@ -17,10 +17,17 @@
Classifier: Topic :: Software Development :: Debuggers
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
-Requires-Python: >=3.7
+Requires-Python: >=3.8
Description-Content-Type: text/x-rst
-Provides-Extra: dev
License-File: LICENSE
+Requires-Dist: pathspec>=0.5.3
+Requires-Dist: pyyaml
+Provides-Extra: dev
+Requires-Dist: doc8; extra == "dev"
+Requires-Dist: flake8; extra == "dev"
+Requires-Dist: flake8-import-order; extra == "dev"
+Requires-Dist: rstcheck[sphinx]; extra == "dev"
+Requires-Dist: sphinx; extra == "dev"
yamllint
========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/pyproject.toml
new/yamllint-1.33.0/pyproject.toml
--- old/yamllint-1.32.0/pyproject.toml 2023-05-06 10:13:45.000000000 +0200
+++ new/yamllint-1.33.0/pyproject.toml 2023-09-14 16:20:09.000000000 +0200
@@ -2,8 +2,8 @@
name = "yamllint"
description = "A linter for YAML files."
readme = {file = "README.rst", content-type = "text/x-rst"}
-requires-python = ">=3.7"
-license = {text = "GPL-3.0-only"}
+requires-python = ">=3.8"
+license = {text = "GPL-3.0-or-later"}
authors = [{name = "Adrien Vergé"}]
keywords = ["yaml", "lint", "linter", "syntax", "checker"]
classifiers = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/tests/rules/test_document_end.py
new/yamllint-1.33.0/tests/rules/test_document_end.py
--- old/yamllint-1.32.0/tests/rules/test_document_end.py 2022-06-20
18:34:21.000000000 +0200
+++ new/yamllint-1.33.0/tests/rules/test_document_end.py 2023-06-27
11:20:04.000000000 +0200
@@ -71,3 +71,22 @@
'---\n'
'third: document\n'
'...\n', conf, problem=(6, 1))
+
+ def test_directives(self):
+ conf = 'document-end: {present: true}'
+ self.check('%YAML 1.2\n'
+ '---\n'
+ 'document: end\n'
+ '...\n', conf)
+ self.check('%YAML 1.2\n'
+ '%TAG ! tag:clarkevans.com,2002:\n'
+ '---\n'
+ 'document: end\n'
+ '...\n', conf)
+ self.check('---\n'
+ 'first: document\n'
+ '...\n'
+ '%YAML 1.2\n'
+ '---\n'
+ 'second: document\n'
+ '...\n', conf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/tests/rules/test_empty_values.py
new/yamllint-1.33.0/tests/rules/test_empty_values.py
--- old/yamllint-1.32.0/tests/rules/test_empty_values.py 2022-06-20
18:34:21.000000000 +0200
+++ new/yamllint-1.33.0/tests/rules/test_empty_values.py 2023-11-09
10:29:12.000000000 +0100
@@ -42,7 +42,8 @@
def test_in_block_mappings_disabled(self):
conf = ('empty-values: {forbid-in-block-mappings: false,\n'
- ' forbid-in-flow-mappings: false}\n')
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n')
self.check('---\n'
'foo:\n', conf)
self.check('---\n'
@@ -51,7 +52,8 @@
def test_in_block_mappings_single_line(self):
conf = ('empty-values: {forbid-in-block-mappings: true,\n'
- ' forbid-in-flow-mappings: false}\n')
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n')
self.check('---\n'
'implicitly-null:\n', conf, problem1=(2, 17))
self.check('---\n'
@@ -63,7 +65,8 @@
def test_in_block_mappings_all_lines(self):
conf = ('empty-values: {forbid-in-block-mappings: true,\n'
- ' forbid-in-flow-mappings: false}\n')
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n')
self.check('---\n'
'foo:\n'
'bar:\n'
@@ -72,14 +75,16 @@
def test_in_block_mappings_explicit_end_of_document(self):
conf = ('empty-values: {forbid-in-block-mappings: true,\n'
- ' forbid-in-flow-mappings: false}\n')
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n')
self.check('---\n'
'foo:\n'
'...\n', conf, problem1=(2, 5))
def test_in_block_mappings_not_end_of_document(self):
conf = ('empty-values: {forbid-in-block-mappings: true,\n'
- ' forbid-in-flow-mappings: false}\n')
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n')
self.check('---\n'
'foo:\n'
'bar:\n'
@@ -87,7 +92,8 @@
def test_in_block_mappings_different_level(self):
conf = ('empty-values: {forbid-in-block-mappings: true,\n'
- ' forbid-in-flow-mappings: false}\n')
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n')
self.check('---\n'
'foo:\n'
' bar:\n'
@@ -95,7 +101,8 @@
def test_in_block_mappings_empty_flow_mapping(self):
conf = ('empty-values: {forbid-in-block-mappings: true,\n'
- ' forbid-in-flow-mappings: false}\n'
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n'
'braces: disable\n'
'commas: disable\n')
self.check('---\n'
@@ -107,14 +114,16 @@
def test_in_block_mappings_empty_block_sequence(self):
conf = ('empty-values: {forbid-in-block-mappings: true,\n'
- ' forbid-in-flow-mappings: false}\n')
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n')
self.check('---\n'
'foo:\n'
' -\n', conf)
def test_in_block_mappings_not_empty_or_explicit_null(self):
conf = ('empty-values: {forbid-in-block-mappings: true,\n'
- ' forbid-in-flow-mappings: false}\n')
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n')
self.check('---\n'
'foo:\n'
' bar:\n'
@@ -137,7 +146,8 @@
def test_in_block_mappings_various_explicit_null(self):
conf = ('empty-values: {forbid-in-block-mappings: true,\n'
- ' forbid-in-flow-mappings: false}\n')
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n')
self.check('---\n'
'null-alias: ~\n', conf)
self.check('---\n'
@@ -147,7 +157,8 @@
def test_in_block_mappings_comments(self):
conf = ('empty-values: {forbid-in-block-mappings: true,\n'
- ' forbid-in-flow-mappings: false}\n'
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n'
'comments: disable\n')
self.check('---\n'
'empty: # comment\n'
@@ -158,7 +169,8 @@
def test_in_flow_mappings_disabled(self):
conf = ('empty-values: {forbid-in-block-mappings: false,\n'
- ' forbid-in-flow-mappings: false}\n'
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n'
'braces: disable\n'
'commas: disable\n')
self.check('---\n'
@@ -175,7 +187,8 @@
def test_in_flow_mappings_single_line(self):
conf = ('empty-values: {forbid-in-block-mappings: false,\n'
- ' forbid-in-flow-mappings: true}\n'
+ ' forbid-in-flow-mappings: true,\n'
+ ' forbid-in-block-sequences: false}\n'
'braces: disable\n'
'commas: disable\n')
self.check('---\n'
@@ -201,7 +214,8 @@
def test_in_flow_mappings_multi_line(self):
conf = ('empty-values: {forbid-in-block-mappings: false,\n'
- ' forbid-in-flow-mappings: true}\n'
+ ' forbid-in-flow-mappings: true,\n'
+ ' forbid-in-block-sequences: false}\n'
'braces: disable\n'
'commas: disable\n')
self.check('---\n'
@@ -226,7 +240,8 @@
def test_in_flow_mappings_various_explicit_null(self):
conf = ('empty-values: {forbid-in-block-mappings: false,\n'
- ' forbid-in-flow-mappings: true}\n'
+ ' forbid-in-flow-mappings: true,\n'
+ ' forbid-in-block-sequences: false}\n'
'braces: disable\n'
'commas: disable\n')
self.check('---\n'
@@ -240,7 +255,8 @@
def test_in_flow_mappings_comments(self):
conf = ('empty-values: {forbid-in-block-mappings: false,\n'
- ' forbid-in-flow-mappings: true}\n'
+ ' forbid-in-flow-mappings: true,\n'
+ ' forbid-in-block-sequences: false}\n'
'braces: disable\n'
'commas: disable\n'
'comments: disable\n')
@@ -258,3 +274,95 @@
problem1=(4, 7),
problem2=(7, 9),
problem3=(10, 5))
+
+ def test_in_block_sequences_disabled(self):
+ conf = ('empty-values: {forbid-in-block-mappings: false,\n'
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: false}\n')
+ self.check('---\n'
+ 'foo:\n'
+ ' - bar\n'
+ ' -\n', conf)
+ self.check('---\n'
+ 'foo:\n'
+ ' -\n', conf)
+
+ def test_in_block_sequences_primative_item(self):
+ conf = ('empty-values: {forbid-in-block-mappings: false,\n'
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: true}\n')
+ self.check('---\n'
+ 'foo:\n'
+ ' -\n', conf,
+ problem=(3, 4))
+ self.check('---\n'
+ 'foo:\n'
+ ' - bar\n'
+ ' -\n', conf,
+ problem=(4, 4))
+ self.check('---\n'
+ 'foo:\n'
+ ' - 1\n'
+ ' - 2\n'
+ ' -\n', conf,
+ problem=(5, 4))
+ self.check('---\n'
+ 'foo:\n'
+ ' - true\n', conf)
+
+ def test_in_block_sequences_complex_objects(self):
+ conf = ('empty-values: {forbid-in-block-mappings: false,\n'
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: true}\n')
+ self.check('---\n'
+ 'foo:\n'
+ ' - a: 1\n', conf)
+ self.check('---\n'
+ 'foo:\n'
+ ' - a: 1\n'
+ ' -\n', conf,
+ problem=(4, 4))
+ self.check('---\n'
+ 'foo:\n'
+ ' - a: 1\n'
+ ' b: 2\n'
+ ' -\n', conf,
+ problem=(5, 4))
+ self.check('---\n'
+ 'foo:\n'
+ ' - a: 1\n'
+ ' - b: 2\n'
+ ' -\n', conf,
+ problem=(5, 4))
+ self.check('---\n'
+ 'foo:\n'
+ ' - - a\n'
+ ' - b: 2\n'
+ ' -\n', conf,
+ problem=(5, 6))
+ self.check('---\n'
+ 'foo:\n'
+ ' - - a\n'
+ ' - b: 2\n'
+ ' -\n', conf,
+ problem=(5, 4))
+
+ def test_in_block_sequences_various_explicit_null(self):
+ conf = ('empty-values: {forbid-in-block-mappings: false,\n'
+ ' forbid-in-flow-mappings: false,\n'
+ ' forbid-in-block-sequences: true}\n')
+ self.check('---\n'
+ 'foo:\n'
+ ' - null\n', conf)
+ self.check('---\n'
+ '- null\n', conf)
+ self.check('---\n'
+ 'foo:\n'
+ ' - bar: null\n'
+ ' - null\n', conf)
+ self.check('---\n'
+ '- null\n'
+ '- null\n', conf)
+ self.check('---\n'
+ '- - null\n'
+ ' - null\n', conf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/tests/test_cli.py
new/yamllint-1.33.0/tests/test_cli.py
--- old/yamllint-1.32.0/tests/test_cli.py 2023-05-22 18:00:04.000000000
+0200
+++ new/yamllint-1.33.0/tests/test_cli.py 2023-10-06 09:19:49.000000000
+0200
@@ -65,7 +65,7 @@
class CommandLineTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
- super(CommandLineTestCase, cls).setUpClass()
+ super().setUpClass()
cls.wd = build_temp_workspace({
# .yaml file at root
@@ -97,7 +97,7 @@
'- hétérogénéité\n'
'# 19.99 â¬\n'
'- ãæ©ã御座ãã¾ãã\n'
- '# Ø§ÙØ£ÙØ¨ÙØ¬ÙدÙÙÙÙØ©
Ø§ÙØ¹ÙØ±ÙØ¨ÙÙÙÙØ©\n').encode('utf-8'),
+ '# Ø§ÙØ£ÙØ¨ÙØ¬ÙدÙÙÙÙØ©
Ø§ÙØ¹ÙØ±ÙØ¨ÙÙÙÙØ©\n').encode(),
# dos line endings yaml
'dos.yml': '---\r\n'
'dos: true',
@@ -112,7 +112,7 @@
@classmethod
def tearDownClass(cls):
- super(CommandLineTestCase, cls).tearDownClass()
+ super().tearDownClass()
shutil.rmtree(cls.wd)
@@ -286,8 +286,8 @@
with RunContext(self) as ctx:
cli.run(('-d', 'default', '-f', 'parsable', path))
- expected_out = ('%s:1:1: [warning] missing document start "---" '
- '(document-start)\n' % path)
+ expected_out = (f'{path}:1:1: [warning] missing document start "---" '
+ f'(document-start)\n')
self.assertEqual(
(ctx.returncode, ctx.stdout, ctx.stderr), (0, expected_out, ''))
@@ -424,9 +424,9 @@
cli.run(('-f', 'parsable', path))
self.assertEqual(ctx.returncode, 1)
self.assertEqual(ctx.stdout, (
- '%s:2:4: [error] trailing spaces (trailing-spaces)\n'
- '%s:3:4: [error] no new line character at the end of file '
- '(new-line-at-end-of-file)\n' % (path, path)))
+ f'{path}:2:4: [error] trailing spaces (trailing-spaces)\n'
+ f'{path}:3:4: [error] no new line character at the end of file '
+ f'(new-line-at-end-of-file)\n'))
self.assertEqual(ctx.stderr, '')
def test_run_one_warning(self):
@@ -476,8 +476,8 @@
cli.run(['-f', 'parsable'] + items)
self.assertEqual((ctx.returncode, ctx.stderr), (1, ''))
self.assertEqual(ctx.stdout, (
- '%s:3:1: [error] duplication of key "key" in mapping '
- '(key-duplicates)\n') % path)
+ f'{path}:3:1: [error] duplication of key "key" in mapping '
+ f'(key-duplicates)\n'))
def test_run_piped_output_nocolor(self):
path = os.path.join(self.wd, 'a.yaml')
@@ -486,11 +486,11 @@
cli.run((path, ))
self.assertEqual((ctx.returncode, ctx.stderr), (1, ''))
self.assertEqual(ctx.stdout, (
- '%s\n'
- ' 2:4 error trailing spaces (trailing-spaces)\n'
- ' 3:4 error no new line character at the end of file '
- '(new-line-at-end-of-file)\n'
- '\n' % path))
+ f'{path}\n'
+ f' 2:4 error trailing spaces (trailing-spaces)\n'
+ f' 3:4 error no new line character at the end of file '
+ f'(new-line-at-end-of-file)\n'
+ f'\n'))
def test_run_default_format_output_in_tty(self):
path = os.path.join(self.wd, 'a.yaml')
@@ -517,13 +517,13 @@
output.close()
self.assertEqual(out, (
- '\033[4m%s\033[0m\n'
- ' \033[2m2:4\033[0m \033[31merror\033[0m '
- 'trailing spaces \033[2m(trailing-spaces)\033[0m\n'
- ' \033[2m3:4\033[0m \033[31merror\033[0m '
- 'no new line character at the end of file '
- '\033[2m(new-line-at-end-of-file)\033[0m\n'
- '\n' % path))
+ f'\033[4m{path}\033[0m\n'
+ f' \033[2m2:4\033[0m \033[31merror\033[0m '
+ f'trailing spaces \033[2m(trailing-spaces)\033[0m\n'
+ f' \033[2m3:4\033[0m \033[31merror\033[0m '
+ f'no new line character at the end of file '
+ f'\033[2m(new-line-at-end-of-file)\033[0m\n'
+ f'\n'))
def test_run_default_format_output_without_tty(self):
path = os.path.join(self.wd, 'a.yaml')
@@ -531,11 +531,11 @@
with RunContext(self) as ctx:
cli.run((path, ))
expected_out = (
- '%s\n'
- ' 2:4 error trailing spaces (trailing-spaces)\n'
- ' 3:4 error no new line character at the end of file '
- '(new-line-at-end-of-file)\n'
- '\n' % path)
+ f'{path}\n'
+ f' 2:4 error trailing spaces (trailing-spaces)\n'
+ f' 3:4 error no new line character at the end of file '
+ f'(new-line-at-end-of-file)\n'
+ f'\n')
self.assertEqual(
(ctx.returncode, ctx.stdout, ctx.stderr), (1, expected_out, ''))
@@ -545,11 +545,11 @@
with RunContext(self) as ctx:
cli.run((path, '--format', 'auto'))
expected_out = (
- '%s\n'
- ' 2:4 error trailing spaces (trailing-spaces)\n'
- ' 3:4 error no new line character at the end of file '
- '(new-line-at-end-of-file)\n'
- '\n' % path)
+ f'{path}\n'
+ f' 2:4 error trailing spaces (trailing-spaces)\n'
+ f' 3:4 error no new line character at the end of file '
+ f'(new-line-at-end-of-file)\n'
+ f'\n')
self.assertEqual(
(ctx.returncode, ctx.stdout, ctx.stderr), (1, expected_out, ''))
@@ -559,13 +559,13 @@
with RunContext(self) as ctx:
cli.run((path, '--format', 'colored'))
expected_out = (
- '\033[4m%s\033[0m\n'
- ' \033[2m2:4\033[0m \033[31merror\033[0m '
- 'trailing spaces \033[2m(trailing-spaces)\033[0m\n'
- ' \033[2m3:4\033[0m \033[31merror\033[0m '
- 'no new line character at the end of file '
- '\033[2m(new-line-at-end-of-file)\033[0m\n'
- '\n' % path)
+ f'\033[4m{path}\033[0m\n'
+ f' \033[2m2:4\033[0m \033[31merror\033[0m '
+ f'trailing spaces \033[2m(trailing-spaces)\033[0m\n'
+ f' \033[2m3:4\033[0m \033[31merror\033[0m '
+ f'no new line character at the end of file '
+ f'\033[2m(new-line-at-end-of-file)\033[0m\n'
+ f'\n')
self.assertEqual(
(ctx.returncode, ctx.stdout, ctx.stderr), (1, expected_out, ''))
@@ -575,10 +575,10 @@
with RunContext(self) as ctx:
cli.run((path, '--format', 'colored'))
expected_out = (
- '\033[4m%s\033[0m\n'
- ' \033[2m1:1\033[0m \033[33mwarning\033[0m '
- 'missing document start "---" \033[2m(document-start)\033[0m\n'
- '\n' % path)
+ f'\033[4m{path}\033[0m\n'
+ f' \033[2m1:1\033[0m \033[33mwarning\033[0m '
+ f'missing document start "---" \033[2m(document-start)\033[0m\n'
+ f'\n')
self.assertEqual(
(ctx.returncode, ctx.stdout, ctx.stderr), (0, expected_out, ''))
@@ -588,13 +588,12 @@
with RunContext(self) as ctx:
cli.run((path, '--format', 'github'))
expected_out = (
- '::group::%s\n'
- '::error file=%s,line=2,col=4::2:4 [trailing-spaces] trailing'
- ' spaces\n'
- '::error file=%s,line=3,col=4::3:4 [new-line-at-end-of-file] no'
- ' new line character at the end of file\n'
- '::endgroup::\n\n'
- % (path, path, path))
+ f'::group::{path}\n'
+ f'::error file={path},line=2,col=4::2:4 [trailing-spaces] trailing'
+ f' spaces\n'
+ f'::error file={path},line=3,col=4::3:4 [new-line-at-end-of-file]'
+ f' no new line character at the end of file\n'
+ f'::endgroup::\n\n')
self.assertEqual(
(ctx.returncode, ctx.stdout, ctx.stderr), (1, expected_out, ''))
@@ -608,13 +607,12 @@
os.environ['GITHUB_WORKFLOW'] = 'something'
cli.run((path, ))
expected_out = (
- '::group::%s\n'
- '::error file=%s,line=2,col=4::2:4 [trailing-spaces] trailing'
- ' spaces\n'
- '::error file=%s,line=3,col=4::3:4 [new-line-at-end-of-file] no'
- ' new line character at the end of file\n'
- '::endgroup::\n\n'
- % (path, path, path))
+ f'::group::{path}\n'
+ f'::error file={path},line=2,col=4::2:4 [trailing-spaces] trailing'
+ f' spaces\n'
+ f'::error file={path},line=3,col=4::3:4 [new-line-at-end-of-file]'
+ f' no new line character at the end of file\n'
+ f'::endgroup::\n\n')
self.assertEqual(
(ctx.returncode, ctx.stdout, ctx.stderr), (1, expected_out, ''))
@@ -640,11 +638,11 @@
with RunContext(self) as ctx:
cli.run((path, '--no-warnings', '-f', 'auto'))
expected_out = (
- '%s\n'
- ' 2:4 error trailing spaces (trailing-spaces)\n'
- ' 3:4 error no new line character at the end of file '
- '(new-line-at-end-of-file)\n'
- '\n' % path)
+ f'{path}\n'
+ f' 2:4 error trailing spaces (trailing-spaces)\n'
+ f' 3:4 error no new line character at the end of file '
+ f'(new-line-at-end-of-file)\n'
+ f'\n')
self.assertEqual(
(ctx.returncode, ctx.stdout, ctx.stderr), (1, expected_out, ''))
@@ -671,10 +669,10 @@
with RunContext(self) as ctx:
cli.run(('-d', 'rules:\n new-lines:\n type: unix', path))
expected_out = (
- '%s\n'
- ' 1:4 error wrong new line character: expected \\n'
- ' (new-lines)\n'
- '\n' % path)
+ f'{path}\n'
+ f' 1:4 error wrong new line character: expected \\n'
+ f' (new-lines)\n'
+ f'\n')
self.assertEqual(
(ctx.returncode, ctx.stdout, ctx.stderr), (1, expected_out, ''))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/tests/test_spec_examples.py
new/yamllint-1.33.0/tests/test_spec_examples.py
--- old/yamllint-1.32.0/tests/test_spec_examples.py 2022-11-06
11:49:08.000000000 +0100
+++ new/yamllint-1.33.0/tests/test_spec_examples.py 2023-10-06
09:19:49.000000000 +0200
@@ -39,7 +39,7 @@
# text = text.replace('\u21d4', '') # byte order mark
# text = text.replace('\u2192', '\t') # right arrow
# text = text.replace('\u00b0', '') # empty scalar
-# with open('tests/yaml-1.2-spec-examples/%s' % id, 'w',
+# with open(f'tests/yaml-1.2-spec-examples/{id}', 'w',
# encoding='utf-8') as g:
# g.write(text)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/__init__.py
new/yamllint-1.33.0/yamllint/__init__.py
--- old/yamllint-1.32.0/yamllint/__init__.py 2023-05-22 18:00:15.000000000
+0200
+++ new/yamllint-1.33.0/yamllint/__init__.py 2023-11-09 10:29:45.000000000
+0100
@@ -21,7 +21,7 @@
APP_NAME = 'yamllint'
-APP_VERSION = '1.32.0'
+APP_VERSION = '1.33.0'
APP_DESCRIPTION = __doc__
__author__ = 'Adrien Vergé'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/cli.py
new/yamllint-1.33.0/yamllint/cli.py
--- old/yamllint-1.32.0/yamllint/cli.py 2023-05-22 18:00:04.000000000 +0200
+++ new/yamllint-1.33.0/yamllint/cli.py 2023-10-06 09:19:49.000000000 +0200
@@ -49,52 +49,41 @@
class Format:
@staticmethod
def parsable(problem, filename):
- return ('%(file)s:%(line)s:%(column)s: [%(level)s] %(message)s' %
- {'file': filename,
- 'line': problem.line,
- 'column': problem.column,
- 'level': problem.level,
- 'message': problem.message})
+ return (f'{filename}:{problem.line}:{problem.column}: '
+ f'[{problem.level}] {problem.message}')
@staticmethod
def standard(problem, filename):
- line = ' %d:%d' % (problem.line, problem.column)
+ line = f' {problem.line}:{problem.column}'
line += max(12 - len(line), 0) * ' '
line += problem.level
line += max(21 - len(line), 0) * ' '
line += problem.desc
if problem.rule:
- line += ' (%s)' % problem.rule
+ line += f' ({problem.rule})'
return line
@staticmethod
def standard_color(problem, filename):
- line = ' \033[2m%d:%d\033[0m' % (problem.line, problem.column)
+ line = f' \033[2m{problem.line}:{problem.column}\033[0m'
line += max(20 - len(line), 0) * ' '
if problem.level == 'warning':
- line += '\033[33m%s\033[0m' % problem.level
+ line += f'\033[33m{problem.level}\033[0m'
else:
- line += '\033[31m%s\033[0m' % problem.level
+ line += f'\033[31m{problem.level}\033[0m'
line += max(38 - len(line), 0) * ' '
line += problem.desc
if problem.rule:
- line += ' \033[2m(%s)\033[0m' % problem.rule
+ line += f' \033[2m({problem.rule})\033[0m'
return line
@staticmethod
def github(problem, filename):
- line = '::'
- line += problem.level
- line += ' file=' + filename + ','
- line += 'line=' + format(problem.line) + ','
- line += 'col=' + format(problem.column)
- line += '::'
- line += format(problem.line)
- line += ':'
- line += format(problem.column)
- line += ' '
+ line = f'::{problem.level} file={format(filename)},' \
+ f'line={format(problem.line)},col={format(problem.column)}' \
+ f'::{format(problem.line)}:{format(problem.column)} '
if problem.rule:
- line += '[' + problem.rule + '] '
+ line += f'[{problem.rule}] '
line += problem.desc
return line
@@ -118,12 +107,12 @@
print(Format.parsable(problem, file))
elif args_format == 'github':
if first:
- print('::group::%s' % file)
+ print(f'::group::{file}')
first = False
print(Format.github(problem, file))
elif args_format == 'colored':
if first:
- print('\033[4m%s\033[0m' % file)
+ print(f'\033[4m{file}\033[0m')
first = False
print(Format.standard_color(problem, file))
else:
@@ -184,7 +173,7 @@
action='store_true',
help='output only error level problems')
parser.add_argument('-v', '--version', action='version',
- version='{} {}'.format(APP_NAME, APP_VERSION))
+ version=f'{APP_NAME} {APP_VERSION}')
args = parser.parse_args(argv)
@@ -202,7 +191,7 @@
try:
if args.config_data is not None:
if args.config_data != '' and ':' not in args.config_data:
- args.config_data = 'extends: ' + args.config_data
+ args.config_data = f'extends: {args.config_data}'
conf = YamlLintConfig(content=args.config_data)
elif args.config_file is not None:
conf = YamlLintConfig(file=args.config_file)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/config.py
new/yamllint-1.33.0/yamllint/config.py
--- old/yamllint-1.32.0/yamllint/config.py 2023-04-13 19:27:24.000000000
+0200
+++ new/yamllint-1.33.0/yamllint/config.py 2023-10-06 09:19:49.000000000
+0200
@@ -76,7 +76,7 @@
try:
conf = yaml.safe_load(raw_content)
except Exception as e:
- raise YamlLintConfigError('invalid config: %s' % e)
+ raise YamlLintConfigError(f'invalid config: {e}')
if not isinstance(conf, dict):
raise YamlLintConfigError('invalid config: not a dict')
@@ -95,7 +95,7 @@
try:
self.extend(base)
except Exception as e:
- raise YamlLintConfigError('invalid config: %s' % e)
+ raise YamlLintConfigError(f'invalid config: {e}')
if 'ignore' in conf and 'ignore-from-file' in conf:
raise YamlLintConfigError(
@@ -143,7 +143,7 @@
try:
rule = yamllint.rules.get(id)
except Exception as e:
- raise YamlLintConfigError('invalid config: %s' % e)
+ raise YamlLintConfigError(f'invalid config: {e}')
self.rules[id] = validate_rule_conf(rule, self.rules[id])
@@ -179,16 +179,16 @@
continue
if optkey not in options:
raise YamlLintConfigError(
- 'invalid config: unknown option "%s" for rule "%s"' %
- (optkey, rule.ID))
+ f'invalid config: unknown option "{optkey}" for rule '
+ f'"{rule.ID}"')
# Example: CONF = {option: (bool, 'mixed')}
# â {option: true} â {option: mixed}
if isinstance(options[optkey], tuple):
if (conf[optkey] not in options[optkey] and
type(conf[optkey]) not in options[optkey]):
raise YamlLintConfigError(
- 'invalid config: option "%s" of "%s" should be in %s'
- % (optkey, rule.ID, options[optkey]))
+ f'invalid config: option "{optkey}" of "{rule.ID}" '
+ f'should be in {options[optkey]}')
# Example: CONF = {option: ['flag1', 'flag2', int]}
# â {option: [flag1]} â {option: [42, flag1,
flag2]}
elif isinstance(options[optkey], list):
@@ -197,16 +197,15 @@
type(flag) not in options[optkey]
for flag in conf[optkey])):
raise YamlLintConfigError(
- ('invalid config: option "%s" of "%s" should only '
- 'contain values in %s')
- % (optkey, rule.ID, str(options[optkey])))
+ f'invalid config: option "{optkey}" of "{rule.ID}" '
+ f'should only contain values in {options[optkey]}')
# Example: CONF = {option: int}
# â {option: 42}
else:
if not isinstance(conf[optkey], options[optkey]):
raise YamlLintConfigError(
- 'invalid config: option "%s" of "%s" should be %s'
- % (optkey, rule.ID, options[optkey].__name__))
+ f'invalid config: option "{optkey}" of "{rule.ID}" '
+ f'should be {options[optkey].__name__}')
for optkey in options:
if optkey not in conf:
conf[optkey] = options_default[optkey]
@@ -214,12 +213,11 @@
if hasattr(rule, 'VALIDATE'):
res = rule.VALIDATE(conf)
if res:
- raise YamlLintConfigError('invalid config: %s: %s' %
- (rule.ID, res))
+ raise YamlLintConfigError(f'invalid config: {rule.ID}: {res}')
else:
- raise YamlLintConfigError(('invalid config: rule "%s": should be '
- 'either "enable", "disable" or a dict')
- % rule.ID)
+ raise YamlLintConfigError(
+ f'invalid config: rule "{rule.ID}": should be either "enable", '
+ f'"disable" or a dict')
return conf
@@ -228,7 +226,7 @@
# Is it a standard conf shipped with yamllint...
if '/' not in name:
std_conf = os.path.join(os.path.dirname(os.path.realpath(__file__)),
- 'conf', name + '.yaml')
+ 'conf', f'{name}.yaml')
if os.path.isfile(std_conf):
return std_conf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/linter.py
new/yamllint-1.33.0/yamllint/linter.py
--- old/yamllint-1.32.0/yamllint/linter.py 2023-03-19 11:18:44.000000000
+0100
+++ new/yamllint-1.33.0/yamllint/linter.py 2023-10-06 09:19:49.000000000
+0200
@@ -50,7 +50,7 @@
@property
def message(self):
if self.rule is not None:
- return '{} ({})'.format(self.desc, self.rule)
+ return f'{self.desc} ({self.rule})'
return self.desc
def __eq__(self, other):
@@ -63,7 +63,7 @@
(self.line == other.line and self.column < other.column))
def __repr__(self):
- return '%d:%d: %s' % (self.line, self.column, self.message)
+ return f'{self.line}:{self.column}: {self.message}'
def get_cosmetic_problems(buffer, conf, filepath):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/rules/__init__.py
new/yamllint-1.33.0/yamllint/rules/__init__.py
--- old/yamllint-1.32.0/yamllint/rules/__init__.py 2023-04-04
17:57:30.000000000 +0200
+++ new/yamllint-1.33.0/yamllint/rules/__init__.py 2023-10-06
09:19:49.000000000 +0200
@@ -68,6 +68,6 @@
def get(id):
if id not in _RULES:
- raise ValueError('no such rule: "%s"' % id)
+ raise ValueError(f'no such rule: "{id}"')
return _RULES[id]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/rules/document_end.py
new/yamllint-1.33.0/yamllint/rules/document_end.py
--- old/yamllint-1.32.0/yamllint/rules/document_end.py 2022-06-20
18:34:21.000000000 +0200
+++ new/yamllint-1.33.0/yamllint/rules/document_end.py 2023-06-27
11:20:04.000000000 +0200
@@ -99,11 +99,13 @@
prev_is_end_or_stream_start = isinstance(
prev, (yaml.DocumentEndToken, yaml.StreamStartToken)
)
+ prev_is_directive = isinstance(prev, yaml.DirectiveToken)
if is_stream_end and not prev_is_end_or_stream_start:
yield LintProblem(token.start_mark.line, 1,
'missing document end "..."')
- elif is_start and not prev_is_end_or_stream_start:
+ elif is_start and not (prev_is_end_or_stream_start
+ or prev_is_directive):
yield LintProblem(token.start_mark.line + 1, 1,
'missing document end "..."')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/rules/empty_lines.py
new/yamllint-1.33.0/yamllint/rules/empty_lines.py
--- old/yamllint-1.32.0/yamllint/rules/empty_lines.py 2022-06-20
18:34:21.000000000 +0200
+++ new/yamllint-1.33.0/yamllint/rules/empty_lines.py 2023-10-06
09:19:49.000000000 +0200
@@ -113,5 +113,5 @@
max = conf['max-end']
if blank_lines > max:
- yield LintProblem(line.line_no, 1, 'too many blank lines (%d > %d)'
- % (blank_lines, max))
+ yield LintProblem(line.line_no, 1,
+ f'too many blank lines ({blank_lines} > {max})')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/rules/empty_values.py
new/yamllint-1.33.0/yamllint/rules/empty_values.py
--- old/yamllint-1.32.0/yamllint/rules/empty_values.py 2022-06-20
18:34:21.000000000 +0200
+++ new/yamllint-1.33.0/yamllint/rules/empty_values.py 2023-11-09
10:29:12.000000000 +0100
@@ -21,6 +21,7 @@
* Use ``forbid-in-block-mappings`` to prevent empty values in block mappings.
* Use ``forbid-in-flow-mappings`` to prevent empty values in flow mappings.
+* Use ``forbid-in-block-sequences`` to prevent empty values in block sequences.
.. rubric:: Default values (when enabled)
@@ -30,6 +31,7 @@
empty-values:
forbid-in-block-mappings: true
forbid-in-flow-mappings: true
+ forbid-in-block-sequences: true
.. rubric:: Examples
@@ -72,6 +74,31 @@
{a: 1, b:, c: 3}
+#. With ``empty-values: {forbid-in-block-sequences: true}``
+
+ the following code snippet would **PASS**:
+ ::
+
+ some-sequence:
+ - string item
+
+ ::
+
+ some-sequence:
+ - null
+
+ the following code snippets would **FAIL**:
+ ::
+
+ some-sequence:
+ -
+
+ ::
+
+ some-sequence:
+ - string item
+ -
+
"""
import yaml
@@ -82,9 +109,11 @@
ID = 'empty-values'
TYPE = 'token'
CONF = {'forbid-in-block-mappings': bool,
- 'forbid-in-flow-mappings': bool}
+ 'forbid-in-flow-mappings': bool,
+ 'forbid-in-block-sequences': bool}
DEFAULT = {'forbid-in-block-mappings': True,
- 'forbid-in-flow-mappings': True}
+ 'forbid-in-flow-mappings': True,
+ 'forbid-in-block-sequences': True}
def check(conf, token, prev, next, nextnext, context):
@@ -102,3 +131,10 @@
yield LintProblem(token.start_mark.line + 1,
token.end_mark.column + 1,
'empty value in flow mapping')
+
+ if conf['forbid-in-block-sequences']:
+ if isinstance(token, yaml.BlockEntryToken) and isinstance(next, (
+ yaml.KeyToken, yaml.BlockEndToken, yaml.BlockEntryToken)):
+ yield LintProblem(token.start_mark.line + 1,
+ token.end_mark.column + 1,
+ 'empty value in block sequence')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/rules/indentation.py
new/yamllint-1.33.0/yamllint/rules/indentation.py
--- old/yamllint-1.32.0/yamllint/rules/indentation.py 2022-11-06
11:49:08.000000000 +0100
+++ new/yamllint-1.33.0/yamllint/rules/indentation.py 2023-10-06
09:19:49.000000000 +0200
@@ -227,7 +227,7 @@
self.implicit_block_seq = False
def __repr__(self):
- return '%s:%d' % (labels[self.type], self.indent)
+ return f'{labels[self.type]}:{self.indent}'
def check_scalar_indentation(conf, token, context):
@@ -303,8 +303,8 @@
if indent != expected_indent:
yield LintProblem(line_no, indent + 1,
- 'wrong indentation: expected %d but found %d' %
- (expected_indent, indent))
+ f'wrong indentation: expected {expected_indent}'
+ f'but found {indent}')
def _check(conf, token, prev, next, nextnext, context):
@@ -342,11 +342,11 @@
if found_indentation != expected:
if expected < 0:
- message = 'wrong indentation: expected at least %d' % \
- (found_indentation + 1)
+ message = f'wrong indentation: expected at least ' \
+ f'{found_indentation + 1}'
else:
- message = 'wrong indentation: expected %d but found %d' % \
- (expected, found_indentation)
+ message = f'wrong indentation: expected {expected} but ' \
+ f'found {found_indentation}'
yield LintProblem(token.start_mark.line + 1,
found_indentation + 1, message)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/rules/key_duplicates.py
new/yamllint-1.33.0/yamllint/rules/key_duplicates.py
--- old/yamllint-1.32.0/yamllint/rules/key_duplicates.py 2022-08-06
15:23:31.000000000 +0200
+++ new/yamllint-1.33.0/yamllint/rules/key_duplicates.py 2023-10-06
09:19:49.000000000 +0200
@@ -95,6 +95,6 @@
next.value != '<<'):
yield LintProblem(
next.start_mark.line + 1, next.start_mark.column + 1,
- 'duplication of key "%s" in mapping' % next.value)
+ f'duplication of key "{next.value}" in mapping')
else:
context['stack'][-1].keys.append(next.value)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/rules/key_ordering.py
new/yamllint-1.33.0/yamllint/rules/key_ordering.py
--- old/yamllint-1.32.0/yamllint/rules/key_ordering.py 2022-10-24
14:29:39.000000000 +0200
+++ new/yamllint-1.33.0/yamllint/rules/key_ordering.py 2023-10-06
09:19:49.000000000 +0200
@@ -122,6 +122,6 @@
for key in context['stack'][-1].keys):
yield LintProblem(
next.start_mark.line + 1, next.start_mark.column + 1,
- 'wrong ordering of key "%s" in mapping' % next.value)
+ f'wrong ordering of key "{next.value}" in mapping')
else:
context['stack'][-1].keys.append(next.value)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/rules/octal_values.py
new/yamllint-1.33.0/yamllint/rules/octal_values.py
--- old/yamllint-1.32.0/yamllint/rules/octal_values.py 2022-08-06
15:23:31.000000000 +0200
+++ new/yamllint-1.33.0/yamllint/rules/octal_values.py 2023-10-06
09:19:49.000000000 +0200
@@ -99,8 +99,7 @@
IS_OCTAL_NUMBER_PATTERN.match(val[1:])):
yield LintProblem(
token.start_mark.line + 1, token.end_mark.column + 1,
- 'forbidden implicit octal value "%s"' %
- token.value)
+ f'forbidden implicit octal value "{token.value}"')
if conf['forbid-explicit-octal']:
if isinstance(token, yaml.tokens.ScalarToken):
@@ -110,5 +109,4 @@
IS_OCTAL_NUMBER_PATTERN.match(val[2:])):
yield LintProblem(
token.start_mark.line + 1, token.end_mark.column + 1,
- 'forbidden explicit octal value "%s"' %
- token.value)
+ f'forbidden explicit octal value "{token.value}"')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/rules/quoted_strings.py
new/yamllint-1.33.0/yamllint/rules/quoted_strings.py
--- old/yamllint-1.32.0/yamllint/rules/quoted_strings.py 2022-11-06
11:49:08.000000000 +0100
+++ new/yamllint-1.33.0/yamllint/rules/quoted_strings.py 2023-10-06
09:19:49.000000000 +0200
@@ -176,7 +176,7 @@
|[-+]?0[0-7_]+
|[-+]?(?:0|[1-9][0-9_]*)
|[-+]?0x[0-9a-fA-F_]+
- |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$''', re.X),
+ |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$''', re.VERBOSE),
list('-+0123456789'))
@@ -240,7 +240,7 @@
if (token.style is None or
not (_quote_match(quote_type, token.style) or
(conf['allow-quoted-quotes'] and _has_quoted_quotes(token)))):
- msg = "string value is not quoted with %s quotes" % quote_type
+ msg = f"string value is not quoted with {quote_type} quotes"
elif conf['required'] is False:
@@ -249,7 +249,7 @@
not _quote_match(quote_type, token.style) and
not (conf['allow-quoted-quotes'] and
_has_quoted_quotes(token))):
- msg = "string value is not quoted with %s quotes" % quote_type
+ msg = f"string value is not quoted with {quote_type} quotes"
elif not token.style:
is_extra_required = any(re.search(r, token.value)
@@ -267,14 +267,14 @@
is_extra_allowed = any(re.search(r, token.value)
for r in conf['extra-allowed'])
if not (is_extra_required or is_extra_allowed):
- msg = "string value is redundantly quoted with %s quotes" % (
- quote_type)
+ msg = f"string value is redundantly quoted with " \
+ f"{quote_type} quotes"
# But when used need to match config
elif (token.style and
not _quote_match(quote_type, token.style) and
not (conf['allow-quoted-quotes'] and _has_quoted_quotes(token))):
- msg = "string value is not quoted with %s quotes" % quote_type
+ msg = f"string value is not quoted with {quote_type} quotes"
elif not token.style:
is_extra_required = len(conf['extra-required']) and any(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint/rules/truthy.py
new/yamllint-1.33.0/yamllint/rules/truthy.py
--- old/yamllint-1.32.0/yamllint/rules/truthy.py 2023-01-09
18:04:01.000000000 +0100
+++ new/yamllint-1.33.0/yamllint/rules/truthy.py 2023-10-04
17:53:25.000000000 +0200
@@ -136,7 +136,7 @@
ID = 'truthy'
TYPE = 'token'
-CONF = {'allowed-values': list(TRUTHY), 'check-keys': bool}
+CONF = {'allowed-values': TRUTHY.copy(), 'check-keys': bool}
DEFAULT = {'allowed-values': ['true', 'false'], 'check-keys': True}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yamllint-1.32.0/yamllint.egg-info/PKG-INFO
new/yamllint-1.33.0/yamllint.egg-info/PKG-INFO
--- old/yamllint-1.32.0/yamllint.egg-info/PKG-INFO 2023-05-22
18:03:06.000000000 +0200
+++ new/yamllint-1.33.0/yamllint.egg-info/PKG-INFO 2023-11-09
10:34:59.000000000 +0100
@@ -1,9 +1,9 @@
Metadata-Version: 2.1
Name: yamllint
-Version: 1.32.0
+Version: 1.33.0
Summary: A linter for YAML files.
Author: Adrien Vergé
-License: GPL-3.0-only
+License: GPL-3.0-or-later
Project-URL: homepage, https://github.com/adrienverge/yamllint
Project-URL: repository, https://github.com/adrienverge/yamllint
Project-URL: documentation, https://yamllint.readthedocs.io
@@ -17,10 +17,17 @@
Classifier: Topic :: Software Development :: Debuggers
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
-Requires-Python: >=3.7
+Requires-Python: >=3.8
Description-Content-Type: text/x-rst
-Provides-Extra: dev
License-File: LICENSE
+Requires-Dist: pathspec>=0.5.3
+Requires-Dist: pyyaml
+Provides-Extra: dev
+Requires-Dist: doc8; extra == "dev"
+Requires-Dist: flake8; extra == "dev"
+Requires-Dist: flake8-import-order; extra == "dev"
+Requires-Dist: rstcheck[sphinx]; extra == "dev"
+Requires-Dist: sphinx; extra == "dev"
yamllint
========