From 6d59fd7f5884d652c4488c975ab9c690f3918469 Mon Sep 17 00:00:00 2001 From: Yu-Ting Hsiung Date: Sun, 8 Jun 2025 23:10:04 +0800 Subject: [PATCH] build: add PGH003 and PGH004, add types-colorama --- commitizen/__init__.py | 2 +- commitizen/commands/bump.py | 4 ++-- commitizen/commands/changelog.py | 4 ++-- commitizen/config/base_config.py | 2 +- commitizen/config/toml_config.py | 6 +++--- commitizen/cz/customize/__init__.py | 2 +- commitizen/cz/customize/customize.py | 4 ++-- commitizen/providers/base_provider.py | 4 ++-- commitizen/providers/cargo_provider.py | 12 ++++++------ commitizen/providers/commitizen_provider.py | 2 +- commitizen/providers/poetry_provider.py | 4 ++-- commitizen/version_schemes.py | 4 ++-- poetry.lock | 14 +++++++++++++- pyproject.toml | 14 ++++++-------- tests/commands/test_bump_command.py | 2 +- 15 files changed, 45 insertions(+), 35 deletions(-) diff --git a/commitizen/__init__.py b/commitizen/__init__.py index f16def4441..6db9e6e7db 100644 --- a/commitizen/__init__.py +++ b/commitizen/__init__.py @@ -1,7 +1,7 @@ import logging import logging.config -from colorama import init # type: ignore +from colorama import init from commitizen.cz.base import BaseCommitizen diff --git a/commitizen/commands/bump.py b/commitizen/commands/bump.py index ba252fcf21..2a84483c94 100644 --- a/commitizen/commands/bump.py +++ b/commitizen/commands/bump.py @@ -331,14 +331,14 @@ def __call__(self) -> None: "dry_run": dry_run, } if self.changelog_to_stdout: - changelog_cmd = Changelog(self.config, {**args, "dry_run": True}) # type: ignore + changelog_cmd = Changelog(self.config, {**args, "dry_run": True}) # type: ignore[typeddict-item] try: changelog_cmd() except DryRunExit: pass args["file_name"] = self.file_name - changelog_cmd = Changelog(self.config, args) # type: ignore + changelog_cmd = Changelog(self.config, args) # type: ignore[arg-type] changelog_cmd() files.append(changelog_cmd.file_name) diff --git a/commitizen/commands/changelog.py b/commitizen/commands/changelog.py index 8ca36bdb9a..dc50eb3ad2 100644 --- a/commitizen/commands/changelog.py +++ b/commitizen/commands/changelog.py @@ -177,8 +177,8 @@ def _write_changelog( def _export_template(self) -> None: tpl = changelog.get_changelog_template(self.cz.template_loader, self.template) # TODO: fix the following type ignores - src = Path(tpl.filename) # type: ignore - Path(self.export_template_to).write_text(src.read_text()) # type: ignore + src = Path(tpl.filename) # type: ignore[arg-type] + Path(self.export_template_to).write_text(src.read_text()) # type: ignore[arg-type] def __call__(self) -> None: commit_parser = self.cz.commit_parser diff --git a/commitizen/config/base_config.py b/commitizen/config/base_config.py index 59c0d16a06..4b8f5f05fc 100644 --- a/commitizen/config/base_config.py +++ b/commitizen/config/base_config.py @@ -27,7 +27,7 @@ def settings(self) -> Settings: @property def path(self) -> Path: - return self._path # type: ignore + return self._path # type: ignore[return-value] @path.setter def path(self, path: str | Path) -> None: diff --git a/commitizen/config/toml_config.py b/commitizen/config/toml_config.py index 3571c9c882..2164d3f992 100644 --- a/commitizen/config/toml_config.py +++ b/commitizen/config/toml_config.py @@ -37,7 +37,7 @@ def init_empty_config_content(self) -> None: with open(self.path, "wb") as output_toml_file: if parser.get("tool") is None: parser["tool"] = table() - parser["tool"]["commitizen"] = table() # type: ignore + parser["tool"]["commitizen"] = table() # type: ignore[index] output_toml_file.write(parser.as_string().encode(self.encoding)) def set_key(self, key: str, value: Any) -> Self: @@ -49,7 +49,7 @@ def set_key(self, key: str, value: Any) -> Self: with open(self.path, "rb") as f: parser = parse(f.read()) - parser["tool"]["commitizen"][key] = value # type: ignore + parser["tool"]["commitizen"][key] = value # type: ignore[index] with open(self.path, "wb") as f: f.write(parser.as_string().encode(self.encoding)) return self @@ -68,6 +68,6 @@ def _parse_setting(self, data: bytes | str) -> None: raise InvalidConfigurationError(f"Failed to parse {self.path}: {e}") try: - self.settings.update(doc["tool"]["commitizen"]) # type: ignore + self.settings.update(doc["tool"]["commitizen"]) # type: ignore[index,typeddict-item] # TODO: fix this except exceptions.NonExistentKey: self.is_empty_config = True diff --git a/commitizen/cz/customize/__init__.py b/commitizen/cz/customize/__init__.py index c5af001a79..0aedb9337a 100644 --- a/commitizen/cz/customize/__init__.py +++ b/commitizen/cz/customize/__init__.py @@ -1 +1 @@ -from .customize import CustomizeCommitsCz # noqa +from .customize import CustomizeCommitsCz # noqa: F401 diff --git a/commitizen/cz/customize/customize.py b/commitizen/cz/customize/customize.py index d6e9f9a5c3..dde2685496 100644 --- a/commitizen/cz/customize/customize.py +++ b/commitizen/cz/customize/customize.py @@ -48,12 +48,12 @@ def __init__(self, config: BaseConfig) -> None: setattr(self, attr_name, value) def questions(self) -> list[CzQuestion]: - return self.custom_settings.get("questions", [{}]) # type: ignore + return self.custom_settings.get("questions", [{}]) # type: ignore[return-value] def message(self, answers: Mapping[str, Any]) -> str: message_template = Template(self.custom_settings.get("message_template", "")) if getattr(Template, "substitute", None): - return message_template.substitute(**answers) # type: ignore + return message_template.substitute(**answers) # type: ignore[attr-defined,no-any-return] # pragma: no cover # TODO: check if we can fix this return message_template.render(**answers) def example(self) -> str: diff --git a/commitizen/providers/base_provider.py b/commitizen/providers/base_provider.py index 27c3123416..c91bfdae20 100644 --- a/commitizen/providers/base_provider.py +++ b/commitizen/providers/base_provider.py @@ -86,7 +86,7 @@ def set_version(self, version: str) -> None: self.file.write_text(tomlkit.dumps(document)) def get(self, document: tomlkit.TOMLDocument) -> str: - return document["project"]["version"] # type: ignore + return document["project"]["version"] # type: ignore[index,return-value] def set(self, document: tomlkit.TOMLDocument, version: str) -> None: - document["project"]["version"] = version # type: ignore + document["project"]["version"] = version # type: ignore[index] diff --git a/commitizen/providers/cargo_provider.py b/commitizen/providers/cargo_provider.py index 87e45cd71c..d453a4aa5b 100644 --- a/commitizen/providers/cargo_provider.py +++ b/commitizen/providers/cargo_provider.py @@ -23,18 +23,18 @@ def lock_file(self) -> Path: def get(self, document: tomlkit.TOMLDocument) -> str: try: - return document["package"]["version"] # type: ignore + return document["package"]["version"] # type: ignore[index,return-value] except tomlkit.exceptions.NonExistentKey: ... - return document["workspace"]["package"]["version"] # type: ignore + return document["workspace"]["package"]["version"] # type: ignore[index,return-value] def set(self, document: tomlkit.TOMLDocument, version: str) -> None: try: - document["workspace"]["package"]["version"] = version # type: ignore + document["workspace"]["package"]["version"] = version # type: ignore[index] return except tomlkit.exceptions.NonExistentKey: ... - document["package"]["version"] = version # type: ignore + document["package"]["version"] = version # type: ignore[index] def set_version(self, version: str) -> None: super().set_version(version) @@ -44,9 +44,9 @@ def set_version(self, version: str) -> None: def set_lock_version(self, version: str) -> None: cargo_toml_content = tomlkit.parse(self.file.read_text()) try: - package_name = cargo_toml_content["package"]["name"] # type: ignore + package_name = cargo_toml_content["package"]["name"] # type: ignore[index] except tomlkit.exceptions.NonExistentKey: - package_name = cargo_toml_content["workspace"]["package"]["name"] # type: ignore + package_name = cargo_toml_content["workspace"]["package"]["name"] # type: ignore[index] cargo_lock_content = tomlkit.parse(self.lock_file.read_text()) packages: tomlkit.items.AoT = cargo_lock_content["package"] # type: ignore[assignment] diff --git a/commitizen/providers/commitizen_provider.py b/commitizen/providers/commitizen_provider.py index 7ce177a604..d9207b19ff 100644 --- a/commitizen/providers/commitizen_provider.py +++ b/commitizen/providers/commitizen_provider.py @@ -9,7 +9,7 @@ class CommitizenProvider(VersionProvider): """ def get_version(self) -> str: - return self.config.settings["version"] # type: ignore + return self.config.settings["version"] # type: ignore[return-value] # TODO: check if we can fix this by tweaking the `Settings` type def set_version(self, version: str) -> None: self.config.set_key("version", version) diff --git a/commitizen/providers/poetry_provider.py b/commitizen/providers/poetry_provider.py index 1dd33f053e..f63b13b793 100644 --- a/commitizen/providers/poetry_provider.py +++ b/commitizen/providers/poetry_provider.py @@ -13,7 +13,7 @@ class PoetryProvider(TomlProvider): filename = "pyproject.toml" def get(self, pyproject: tomlkit.TOMLDocument) -> str: - return pyproject["tool"]["poetry"]["version"] # type: ignore + return pyproject["tool"]["poetry"]["version"] # type: ignore[index,return-value] def set(self, pyproject: tomlkit.TOMLDocument, version: str) -> None: - pyproject["tool"]["poetry"]["version"] = version # type: ignore + pyproject["tool"]["poetry"]["version"] = version # type: ignore[index] diff --git a/commitizen/version_schemes.py b/commitizen/version_schemes.py index a59d3c0aa0..e9f99c5514 100644 --- a/commitizen/version_schemes.py +++ b/commitizen/version_schemes.py @@ -266,7 +266,7 @@ def bump( if self.local and is_local_version: local_version = self.scheme(self.local).bump(increment) - return self.scheme(f"{self.public}+{local_version}") # type: ignore + return self.scheme(f"{self.public}+{local_version}") # type: ignore[return-value] base = self._get_increment_base(increment, exact_increment) dev_version = self.generate_devrelease(devrelease) @@ -283,7 +283,7 @@ def bump( # TODO: post version return self.scheme( f"{base}{pre_version}{dev_version}{self.generate_build_metadata(build_metadata)}" - ) # type: ignore + ) # type: ignore[return-value] def _get_increment_base( self, increment: Increment | None, exact_increment: bool diff --git a/poetry.lock b/poetry.lock index f9f74513a8..c5c893931a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1746,6 +1746,18 @@ files = [ docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] +[[package]] +name = "types-colorama" +version = "0.4.15.20240311" +description = "Typing stubs for colorama" +optional = false +python-versions = ">=3.8" +groups = ["linters"] +files = [ + {file = "types-colorama-0.4.15.20240311.tar.gz", hash = "sha256:a28e7f98d17d2b14fb9565d32388e419f4108f557a7d939a66319969b2b99c7a"}, + {file = "types_colorama-0.4.15.20240311-py3-none-any.whl", hash = "sha256:6391de60ddc0db3f147e31ecb230006a6823e81e380862ffca1e4695c13a0b8e"}, +] + [[package]] name = "types-deprecated" version = "1.2.15.20250304" @@ -2014,4 +2026,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = ">=3.9,<4.0" -content-hash = "10e298e9b4d2f2d81a82b43649a68d557ed3e9824b3b210b5b6a607935f9fe9d" +content-hash = "f35cf57718e28836cf1e70b33edab9ce623b01a7f2d31d712585554721f6d403" diff --git a/pyproject.toml b/pyproject.toml index ee0ecc9ced..a2c9b505d3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -126,6 +126,7 @@ types-deprecated = "^1.2.9.2" types-python-dateutil = "^2.8.19.13" types-PyYAML = ">=5.4.3,<7.0.0" types-termcolor = "^0.1.1" +types-colorama = "^0.4.15.20240311" [tool.poetry.group.documentation.dependencies] mkdocs = "^1.4.2" @@ -198,6 +199,9 @@ select = [ "UP", # isort "I", + # pygrep-hooks + "PGH003", + "PGH004", # unsorted-dunder-all "RUF022", # unused-noqa @@ -238,16 +242,10 @@ poetry_command = "" [tool.poe.tasks] format.help = "Format the code" -format.sequence = [ - { cmd = "ruff check --fix" }, - { cmd = "ruff format" }, -] +format.sequence = [{ cmd = "ruff check --fix" }, { cmd = "ruff format" }] lint.help = "Lint the code" -lint.sequence = [ - { cmd = "ruff check" }, - { cmd = "mypy" }, -] +lint.sequence = [{ cmd = "ruff check" }, { cmd = "mypy" }] check-commit.help = "Check the commit message" check-commit.cmd = "cz -nr 3 check --rev-range origin/master.." diff --git a/tests/commands/test_bump_command.py b/tests/commands/test_bump_command.py index 64b810e4de..59297b1726 100644 --- a/tests/commands/test_bump_command.py +++ b/tests/commands/test_bump_command.py @@ -1721,7 +1721,7 @@ def test_is_initial_tag(mocker: MockFixture, tmp_commitizen_project): "extras": None, } - bump_cmd = bump.Bump(config, arguments) # type: ignore + bump_cmd = bump.Bump(config, arguments) # type: ignore[arg-type] # Test case 1: No current tag, not yes mode mocker.patch("questionary.confirm", return_value=mocker.Mock(ask=lambda: True))