diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0ce43e88..d7756dcb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -34,13 +34,13 @@ repos: types: [python, toml] stages: [commit] - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.5.0 + rev: v4.6.0 hooks: - id: debug-statements - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/google/keep-sorted - rev: v0.3.0 + rev: v0.4.0 hooks: - id: keep-sorted - repo: https://github.com/pappasam/toml-sort @@ -52,7 +52,7 @@ repos: # - poetry.lock: auto-generated file exclude: (ideas/|resources/|tests/|poetry.lock) - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.1.14 + rev: v0.3.5 hooks: - id: ruff args: [--fix] @@ -66,7 +66,7 @@ repos: hooks: - id: sort-all - repo: https://github.com/psf/black - rev: 23.12.1 + rev: 24.3.0 hooks: - id: black args: [--safe, --quiet] @@ -86,7 +86,7 @@ repos: - id: prettier stages: [commit] - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.8.0 + rev: v1.9.0 hooks: - id: mypy # https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-show-error-codes @@ -121,7 +121,7 @@ repos: types: [python] exclude: tests/ - repo: https://github.com/shellcheck-py/shellcheck-py - rev: v0.9.0.6 + rev: v0.10.0.1 hooks: - id: shellcheck - repo: https://github.com/openstack/bashate @@ -131,7 +131,7 @@ repos: # https://docs.openstack.org/bashate/latest/man/bashate.html#options args: [-i, E006] - repo: https://github.com/commitizen-tools/commitizen - rev: v3.13.0 + rev: v3.21.3 hooks: - id: commitizen stages: [commit-msg] diff --git a/docs/autofix_docs.py b/docs/autofix_docs.py index 775aa892..bcb1dc14 100644 --- a/docs/autofix_docs.py +++ b/docs/autofix_docs.py @@ -7,6 +7,7 @@ It doesn't recognise the "styles" dir anywhere (on the root, under "docs", under "_static"...). Not even changing ``html_static_path`` on ``conf.py`` worked. """ + from __future__ import annotations import sys diff --git a/docs/conf.py b/docs/conf.py index 2c450a98..7fc509c8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -4,6 +4,7 @@ full list see the documentation: http://www.sphinx-doc.org/en/master/config """ + from __future__ import annotations import os diff --git a/docs/ideas/lab.py b/docs/ideas/lab.py index 0140076e..37f99f40 100644 --- a/docs/ideas/lab.py +++ b/docs/ideas/lab.py @@ -1,4 +1,5 @@ """Laboratory of Nitpick ideas.""" + import json from pathlib import Path from pprint import pprint diff --git a/docs/requirements.txt b/docs/requirements.txt index 9f99800f..f4cb8a60 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -22,7 +22,7 @@ imagesize==1.4.1 ; python_version >= "3.8" and python_version < "4.0" importlib-metadata==6.8.0 ; python_version >= "3.8" and python_version < "3.10" importlib-resources==6.1.0 ; python_version >= "3.8" and python_version < "3.9" iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "4.0" -jinja2==3.1.2 ; python_version >= "3.8" and python_version < "4.0" +jinja2==3.1.3 ; python_version >= "3.8" and python_version < "4.0" jmespath==1.0.1 ; python_version >= "3.8" and python_version < "4.0" jsonschema-specifications==2023.7.1 ; python_version >= "3.8" and python_version < "4.0" jsonschema==4.19.1 ; python_version >= "3.8" and python_version < "4.0" @@ -57,7 +57,7 @@ sphinx-gitref==0.2.1 ; python_version >= "3.8" and python_version < "4.0" sphinx-rtd-theme==1.3.0 ; python_version >= "3.8" and python_version < "4.0" sphinx==6.2.1 ; python_version >= "3.8" and python_version < "4.0" sphinxcontrib-applehelp==1.0.4 ; python_version >= "3.8" and python_version < "4.0" -sphinxcontrib-devhelp==1.0.6 ; python_version >= "3.8" and python_version < "4.0" +sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.8" and python_version < "4.0" sphinxcontrib-htmlhelp==2.0.1 ; python_version >= "3.8" and python_version < "4.0" sphinxcontrib-jquery==4.1 ; python_version >= "3.8" and python_version < "4.0" sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.8" and python_version < "4.0" diff --git a/src/nitpick/__init__.py b/src/nitpick/__init__.py index 58fa0c8a..53c345d4 100644 --- a/src/nitpick/__init__.py +++ b/src/nitpick/__init__.py @@ -1,4 +1,5 @@ """Main module.""" + from loguru import logger from nitpick.constants import PROJECT_NAME diff --git a/src/nitpick/__main__.py b/src/nitpick/__main__.py index 4b444d19..df73ded7 100644 --- a/src/nitpick/__main__.py +++ b/src/nitpick/__main__.py @@ -5,6 +5,7 @@ - https://www.python.org/dev/peps/pep-0338/ - https://docs.python.org/3/using/cmdline.html#cmdoption-m """ + from nitpick.cli import nitpick_cli # pragma: no cover from nitpick.constants import PROJECT_NAME # pragma: no cover diff --git a/src/nitpick/blender.py b/src/nitpick/blender.py index 23b6d206..bc7f0786 100644 --- a/src/nitpick/blender.py +++ b/src/nitpick/blender.py @@ -4,6 +4,7 @@ from nitpick.generic import * """ + from __future__ import annotations import abc diff --git a/src/nitpick/cli.py b/src/nitpick/cli.py index b84f920c..9f4e22fe 100644 --- a/src/nitpick/cli.py +++ b/src/nitpick/cli.py @@ -12,6 +12,7 @@ Also see (1) from https://click.palletsprojects.com/en/5.x/setuptools/#setuptools-integration """ + from __future__ import annotations import logging diff --git a/src/nitpick/compat.py b/src/nitpick/compat.py index ba46e4ca..e2a996b3 100644 --- a/src/nitpick/compat.py +++ b/src/nitpick/compat.py @@ -1,4 +1,5 @@ """Handle import compatibility issues.""" + # pylint: skip-file try: from importlib.abc import Traversable # type: ignore[attr-defined] diff --git a/src/nitpick/config.py b/src/nitpick/config.py index eefde797..8127be2c 100644 --- a/src/nitpick/config.py +++ b/src/nitpick/config.py @@ -1,4 +1,5 @@ """Special configurations.""" + from attr import Factory, define # type: ignore[attr-defined] from nitpick.typedefs import JsonDict diff --git a/src/nitpick/constants.py b/src/nitpick/constants.py index 48aac637..58d06df0 100644 --- a/src/nitpick/constants.py +++ b/src/nitpick/constants.py @@ -1,4 +1,5 @@ """Constants.""" + from __future__ import annotations import os diff --git a/src/nitpick/core.py b/src/nitpick/core.py index 7a45735d..647adf70 100644 --- a/src/nitpick/core.py +++ b/src/nitpick/core.py @@ -1,4 +1,5 @@ """The Nitpick application and project-related utilities.""" + from __future__ import annotations import itertools diff --git a/src/nitpick/exceptions.py b/src/nitpick/exceptions.py index 4ac3d402..daecb638 100644 --- a/src/nitpick/exceptions.py +++ b/src/nitpick/exceptions.py @@ -1,4 +1,5 @@ """Nitpick exceptions.""" + from __future__ import annotations import warnings diff --git a/src/nitpick/fields.py b/src/nitpick/fields.py index 8cf19b39..c6abe7c3 100644 --- a/src/nitpick/fields.py +++ b/src/nitpick/fields.py @@ -1,4 +1,5 @@ """Custom Marshmallow fields and validators.""" + import json from marshmallow import ValidationError, fields diff --git a/src/nitpick/flake8.py b/src/nitpick/flake8.py index c7228b6a..29c02241 100644 --- a/src/nitpick/flake8.py +++ b/src/nitpick/flake8.py @@ -1,4 +1,5 @@ """Flake8 plugin to check files.""" + import logging from functools import lru_cache from pathlib import Path diff --git a/src/nitpick/generic.py b/src/nitpick/generic.py index b10f0f3f..284dba78 100644 --- a/src/nitpick/generic.py +++ b/src/nitpick/generic.py @@ -4,6 +4,7 @@ from nitpick.generic import * """ + from __future__ import annotations import subprocess diff --git a/src/nitpick/plugins/__init__.py b/src/nitpick/plugins/__init__.py index 85d0032d..2b8b4582 100644 --- a/src/nitpick/plugins/__init__.py +++ b/src/nitpick/plugins/__init__.py @@ -5,6 +5,7 @@ The hook specifications and the plugin classes are still experimental and considered as an internal API. They might change at any time; use at your own risk. """ + from __future__ import annotations from typing import TYPE_CHECKING diff --git a/src/nitpick/plugins/base.py b/src/nitpick/plugins/base.py index 05d759a4..6c5eabdd 100644 --- a/src/nitpick/plugins/base.py +++ b/src/nitpick/plugins/base.py @@ -1,4 +1,5 @@ """Base class for file checkers.""" + from __future__ import annotations import abc diff --git a/src/nitpick/plugins/info.py b/src/nitpick/plugins/info.py index a66fa7c0..4e22352c 100644 --- a/src/nitpick/plugins/info.py +++ b/src/nitpick/plugins/info.py @@ -1,4 +1,5 @@ """Info needed by the plugins.""" + from __future__ import annotations from dataclasses import dataclass, field diff --git a/src/nitpick/plugins/ini.py b/src/nitpick/plugins/ini.py index 5aa0d3ef..2d2f8484 100644 --- a/src/nitpick/plugins/ini.py +++ b/src/nitpick/plugins/ini.py @@ -1,4 +1,5 @@ """INI files.""" + from __future__ import annotations from configparser import ConfigParser, DuplicateOptionError, Error, MissingSectionHeaderError, ParsingError diff --git a/src/nitpick/plugins/json.py b/src/nitpick/plugins/json.py index b34e4d03..16e93e38 100644 --- a/src/nitpick/plugins/json.py +++ b/src/nitpick/plugins/json.py @@ -1,4 +1,5 @@ """JSON files.""" + from __future__ import annotations import json diff --git a/src/nitpick/plugins/text.py b/src/nitpick/plugins/text.py index 501e3691..57f5b6c4 100644 --- a/src/nitpick/plugins/text.py +++ b/src/nitpick/plugins/text.py @@ -1,4 +1,5 @@ """Text files.""" + from __future__ import annotations from typing import TYPE_CHECKING, ClassVar, Iterator diff --git a/src/nitpick/plugins/toml.py b/src/nitpick/plugins/toml.py index c137f46d..f526f24b 100644 --- a/src/nitpick/plugins/toml.py +++ b/src/nitpick/plugins/toml.py @@ -1,4 +1,5 @@ """TOML files.""" + from __future__ import annotations from itertools import chain diff --git a/src/nitpick/plugins/yaml.py b/src/nitpick/plugins/yaml.py index dd357c98..b4de38b2 100644 --- a/src/nitpick/plugins/yaml.py +++ b/src/nitpick/plugins/yaml.py @@ -1,4 +1,5 @@ """YAML files.""" + from __future__ import annotations from itertools import chain diff --git a/src/nitpick/schemas.py b/src/nitpick/schemas.py index 271d7a5c..745947a6 100644 --- a/src/nitpick/schemas.py +++ b/src/nitpick/schemas.py @@ -1,4 +1,5 @@ """Marshmallow schemas.""" + from __future__ import annotations from marshmallow import Schema diff --git a/src/nitpick/style.py b/src/nitpick/style.py index 807119fe..5edd38dd 100644 --- a/src/nitpick/style.py +++ b/src/nitpick/style.py @@ -1,4 +1,5 @@ """Style parsing and merging.""" + from __future__ import annotations import os diff --git a/src/nitpick/tomlkit_ext.py b/src/nitpick/tomlkit_ext.py index 56fb44ce..1211d69c 100644 --- a/src/nitpick/tomlkit_ext.py +++ b/src/nitpick/tomlkit_ext.py @@ -2,6 +2,7 @@ Eventually, some of the code here should/could be proposed as pull requests to the original package. """ + from __future__ import annotations from functools import wraps diff --git a/src/nitpick/typedefs.py b/src/nitpick/typedefs.py index faa5d052..05b4adc2 100644 --- a/src/nitpick/typedefs.py +++ b/src/nitpick/typedefs.py @@ -1,4 +1,5 @@ """Type definitions.""" + from pathlib import Path from typing import Any, Dict, Iterable, List, Tuple, Type, Union diff --git a/src/nitpick/violations.py b/src/nitpick/violations.py index 64bed010..2d057108 100644 --- a/src/nitpick/violations.py +++ b/src/nitpick/violations.py @@ -2,6 +2,7 @@ Name inspired by `flake8's violations `_. """ + from __future__ import annotations from dataclasses import dataclass diff --git a/tasks.py b/tasks.py index de999feb..5c063e4f 100644 --- a/tasks.py +++ b/tasks.py @@ -4,6 +4,7 @@ - https://www.pyinvoke.org/ - https://docs.pyinvoke.org/en/stable/api/runners.html#invoke.runners.Runner.run """ + from __future__ import annotations import sys diff --git a/tests/conftest.py b/tests/conftest.py index fd85bae3..414add80 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,6 +8,7 @@ .tox/py38/lib/python3.8/site-packages/pytest_cov/plugin.py:271: PytestWarning: Failed to generate report: No data to report. """ + import logging from pathlib import Path from textwrap import dedent diff --git a/tests/data/hello.py b/tests/data/hello.py index 8cc042cf..0076ea4a 100644 --- a/tests/data/hello.py +++ b/tests/data/hello.py @@ -1,3 +1,4 @@ """Some empty Python file.""" + x = 1 print(x) diff --git a/tests/helpers.py b/tests/helpers.py index 28ac415f..caf7bf2b 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -1,4 +1,5 @@ """Test helpers.""" + from __future__ import annotations import os diff --git a/tests/test_builtin.py b/tests/test_builtin.py index 74f129bc..6a1b72ff 100644 --- a/tests/test_builtin.py +++ b/tests/test_builtin.py @@ -1,4 +1,5 @@ """Test built-in styles shipped as resources under the ``nitpick.resources`` module.""" + from __future__ import annotations from pathlib import Path diff --git a/tests/test_cache.py b/tests/test_cache.py index 092e2018..49eddb18 100644 --- a/tests/test_cache.py +++ b/tests/test_cache.py @@ -1,4 +1,5 @@ """Test cache.""" + from datetime import timedelta import pytest diff --git a/tests/test_cli.py b/tests/test_cli.py index 31dd9308..8ce59c75 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1,4 +1,5 @@ """CLI tests.""" + from __future__ import annotations from pathlib import Path diff --git a/tests/test_generic.py b/tests/test_generic.py index 562676ff..597e2fb1 100644 --- a/tests/test_generic.py +++ b/tests/test_generic.py @@ -1,4 +1,5 @@ """Generic functions tests.""" + from __future__ import annotations import os diff --git a/tests/test_ini.py b/tests/test_ini.py index d914680f..13761acb 100644 --- a/tests/test_ini.py +++ b/tests/test_ini.py @@ -1,4 +1,5 @@ """Test INI files.""" + from configparser import ParsingError from unittest import mock diff --git a/tests/test_json.py b/tests/test_json.py index db50ae54..daddb064 100644 --- a/tests/test_json.py +++ b/tests/test_json.py @@ -1,4 +1,5 @@ """JSON tests.""" + import warnings from nitpick.constants import JAVASCRIPT_PACKAGE_JSON, READ_THE_DOCS_URL diff --git a/tests/test_meta.py b/tests/test_meta.py index 186fa7f2..82a285cc 100644 --- a/tests/test_meta.py +++ b/tests/test_meta.py @@ -1,4 +1,5 @@ """Meta tests for sanity check purposes.""" + import json from configparser import ConfigParser from pathlib import Path diff --git a/tests/test_plugin.py b/tests/test_plugin.py index 1ccd58cb..645c12c3 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -1,4 +1,5 @@ """Plugin tests.""" + import os from enum import Enum diff --git a/tests/test_project.py b/tests/test_project.py index 740d8265..a2012652 100644 --- a/tests/test_project.py +++ b/tests/test_project.py @@ -1,4 +1,5 @@ """Config tests.""" + import os import shutil diff --git a/tests/test_style.py b/tests/test_style.py index 6c169ab6..1763a66c 100644 --- a/tests/test_style.py +++ b/tests/test_style.py @@ -1,4 +1,5 @@ """Style tests.""" + import warnings from pathlib import Path from textwrap import dedent diff --git a/tests/test_text.py b/tests/test_text.py index 1ccd4984..cf807497 100644 --- a/tests/test_text.py +++ b/tests/test_text.py @@ -1,4 +1,5 @@ """Text file tests.""" + from nitpick.constants import READ_THE_DOCS_URL from nitpick.violations import Fuss from tests.helpers import NBSP, SUGGESTION_BEGIN, SUGGESTION_END, ProjectMock diff --git a/tests/test_toml.py b/tests/test_toml.py index 194ff684..48f0e0d3 100644 --- a/tests/test_toml.py +++ b/tests/test_toml.py @@ -1,4 +1,5 @@ """TOML tests.""" + from nitpick.constants import PYTHON_PYPROJECT_TOML from nitpick.plugins.toml import TomlPlugin from nitpick.violations import Fuss, SharedViolations diff --git a/tests/test_tomlkit_ext.py b/tests/test_tomlkit_ext.py index c977dc53..f29319ae 100644 --- a/tests/test_tomlkit_ext.py +++ b/tests/test_tomlkit_ext.py @@ -1,4 +1,5 @@ """Test the tomlkit extensions.""" + from pathlib import Path from textwrap import dedent diff --git a/tests/test_violations.py b/tests/test_violations.py index 336dd72c..19f057e8 100644 --- a/tests/test_violations.py +++ b/tests/test_violations.py @@ -1,4 +1,5 @@ """Violations.""" + from textwrap import dedent import pytest diff --git a/tests/test_yaml.py b/tests/test_yaml.py index b4b3669c..d1a97c27 100644 --- a/tests/test_yaml.py +++ b/tests/test_yaml.py @@ -1,4 +1,5 @@ """YAML tests.""" + import warnings from nitpick.plugins.yaml import YamlPlugin diff --git a/tests/test_yaml_github_workflows.py b/tests/test_yaml_github_workflows.py index 813de71d..4be022a0 100644 --- a/tests/test_yaml_github_workflows.py +++ b/tests/test_yaml_github_workflows.py @@ -1,4 +1,5 @@ """Test GitHub workflows.""" + from nitpick.violations import Fuss from tests.helpers import ProjectMock diff --git a/tests/test_yaml_old_pre_commit.py b/tests/test_yaml_old_pre_commit.py index 3d97efac..813c6c5f 100644 --- a/tests/test_yaml_old_pre_commit.py +++ b/tests/test_yaml_old_pre_commit.py @@ -4,6 +4,7 @@ Read the warning on :py:class:`nitpick.plugins.yaml.YamlPlugin`. """ + import warnings import pytest diff --git a/tests/test_yaml_pre_commit.py b/tests/test_yaml_pre_commit.py index 456f92ec..6b98a3c0 100644 --- a/tests/test_yaml_pre_commit.py +++ b/tests/test_yaml_pre_commit.py @@ -1,4 +1,5 @@ """Test .pre-commit-config.yaml.""" + from nitpick.constants import PRE_COMMIT_CONFIG_YAML from nitpick.plugins.yaml import YamlPlugin from nitpick.violations import Fuss, SharedViolations