gauravandClaude Opus 5 f4ad063adb style: Apply ruff rule ISC004
ruff 0.16.0 (released 2026-07-23) stabilized `ISC004`
`implicit-string-concatenation-in-collection-literal` out of preview.
https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md#stabilization
https://docs.astral.sh/ruff/rules/implicit-string-concatenation-in-collection-literal

Since `ruff` is unpinned in `dependency-groups.dev` and `pyproject.toml`
selects the whole `ISC` family, the `Linters` job now fails on `master`
and on every open PR with 7 errors in `tests/test_cli.py` and
`tests/test_config.py`. Master's last green run was 2026-07-20, three
days before the release.

This applies the rule to the 7 affected sites by parenthesizing the
concatenations. Where the extra indentation would have pushed a line
past the 79-column limit, the enclosing `assertEqual(...)` call is
wrapped instead of re-splitting the strings, so **every string literal
is byte-identical to `master`** — verified by comparing all
`ast.Constant` string nodes before and after (435/435 in `test_cli.py`,
539/539 in `test_config.py`).

Verified locally with ruff 0.16.0: `ruff check`, `flake8`, `doc8`,
`rstcheck`, `yamllint --strict` and `make -C docs html` all clean, and
`python -X warn_default_encoding -W error::EncodingWarning -m unittest
discover` passes 432 tests.

Separately, you may want to consider upper-bounding `ruff` in
`dependency-groups.dev` so that a ruff release can't turn unrelated PRs
red — but that's a policy call, and the `style: Apply ruff rule X`
history suggests you may prefer riding latest.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 11:40:38 +02:00
2026-08-19 11:40:38 +02:00
2024-02-02 10:05:14 +01:00
2020-09-27 10:06:33 +02:00
2026-01-13 08:45:53 +01:00

yamllint
========

A linter for YAML files.

yamllint does not only check for syntax validity, but for weirdnesses like key
repetition and cosmetic problems such as lines length, trailing spaces,
indentation, etc.

.. image::
   https://github.com/adrienverge/yamllint/actions/workflows/tests.yaml/badge.svg?branch=master
   :target: https://github.com/adrienverge/yamllint/actions/workflows/tests.yaml?query=branch%3Amaster
   :alt: CI tests status
.. image::
   https://coveralls.io/repos/github/adrienverge/yamllint/badge.svg?branch=master
   :target: https://coveralls.io/github/adrienverge/yamllint?branch=master
   :alt: Code coverage status
.. image:: https://readthedocs.org/projects/yamllint/badge/?version=latest
   :target: https://yamllint.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation status

Written in Python.

Documentation
-------------

https://yamllint.readthedocs.io/

Overview
--------

Screenshot
^^^^^^^^^^

.. image:: docs/screenshot.png
   :alt: yamllint screenshot

Installation
^^^^^^^^^^^^

Using pip, the Python package manager:

.. code:: bash

 pip install --user yamllint

yamllint is also packaged for all major operating systems, see installation
examples (``dnf``, ``apt-get``...) `in the documentation
<https://yamllint.readthedocs.io/en/stable/quickstart.html>`_.

Usage
^^^^^

.. code:: bash

 # Lint one or more files
 yamllint my_file.yml my_other_file.yaml ...

.. code:: bash

 # Recursively lint all YAML files in a directory
 yamllint .

.. code:: bash

 # Use a pre-defined lint configuration
 yamllint -d relaxed file.yaml

 # Use a custom lint configuration
 yamllint -c /path/to/myconfig file-to-lint.yaml

.. code:: bash

 # Output a parsable format (for syntax checking in editors like Vim, emacs...)
 yamllint -f parsable file.yaml

`Read more in the complete documentation! <https://yamllint.readthedocs.io/>`__

Features
^^^^^^^^

Here is a yamllint configuration file example:

.. code:: yaml

 extends: default

 rules:
   # 80 chars should be enough, but don't fail if a line is longer
   line-length:
     max: 80
     level: warning

   # don't bother me with this rule
   indentation: disable

Within a YAML file, special comments can be used to disable checks for a single
line:

.. code:: yaml

 This line is waaaaaaaaaay too long  # yamllint disable-line

or for a whole block:

.. code:: yaml

 # yamllint disable rule:colons
 - Lorem       : ipsum
   dolor       : sit amet,
   consectetur : adipiscing elit
 # yamllint enable

Specific files can be ignored (totally or for some rules only) using a
``.gitignore``-style pattern:

.. code:: yaml

 # For all rules
 ignore: |
   *.dont-lint-me.yaml
   /bin/
   !/bin/*.lint-me-anyway.yaml

 rules:
   key-duplicates:
     ignore: |
       generated
       *.template.yaml
   trailing-spaces:
     ignore: |
       *.ignore-trailing-spaces.yaml
       /ascii-art/*

`Read more in the complete documentation! <https://yamllint.readthedocs.io/>`__

License
-------

`GPL version 3 <LICENSE>`_
S
Description
A linter for YAML files.
Readme GPL-3.0
2.6 MiB
Languages
Python 100%