Enable Ruff PLR (Pylint Refactor) (#13307)

This commit is contained in:
Avasam
2025-03-03 12:03:34 -05:00
committed by GitHub
parent 3e83e42a0f
commit 6f98c59f93
8 changed files with 18 additions and 8 deletions
+7
View File
@@ -46,6 +46,7 @@ select = [
"N", # pep8-naming
"PGH", # pygrep-hooks
"PLC", # Pylint Convention
"PLR", # Pylint Refactor
"RUF", # Ruff-specific and unused-noqa
"TRY", # tryceratops
"UP", # pyupgrade
@@ -142,6 +143,12 @@ ignore = [
# Used for direct, non-subclass type comparison, for example: `type(val) is str`
# see https://github.com/astral-sh/ruff/issues/6465
"E721", # Do not compare types, use `isinstance()`
# Leave the size and complexity of tests to human interpretation
"PLR09", # Too many ...
# Too many magic number "2" that are preferable inline. https://github.com/astral-sh/ruff/issues/10009
"PLR2004", # Magic value used in comparison, consider replacing `{value}` with a constant variable
# Keep codeflow path separation explicit
"PLR5501", # Use `elif` instead of `else` then `if`, to reduce indentation
# Mostly from scripts and tests, it's ok to have messages passed directly to exceptions
"TRY003", # Avoid specifying long messages outside the exception class
# Slower and more verbose https://github.com/astral-sh/ruff/issues/7871
+3 -2
View File
@@ -18,6 +18,7 @@ import re
import subprocess
import sys
import urllib.parse
from http import HTTPStatus
from importlib.metadata import distribution
import aiohttp
@@ -72,7 +73,7 @@ def run_ruff(stub_dir: str) -> None:
async def get_project_urls_from_pypi(project: str, session: aiohttp.ClientSession) -> dict[str, str]:
pypi_root = f"https://pypi.org/pypi/{urllib.parse.quote(project)}"
async with session.get(f"{pypi_root}/json") as response:
if response.status != 200:
if response.status != HTTPStatus.OK:
return {}
j: dict[str, dict[str, dict[str, str]]]
j = await response.json()
@@ -107,7 +108,7 @@ async def get_upstream_repo_url(project: str) -> str | None:
# truncate to https://site.com/user/repo
upstream_repo_url = "/".join(url.split("/")[:5])
async with session.get(upstream_repo_url) as response:
if response.status == 200:
if response.status == HTTPStatus.OK:
return upstream_repo_url
return None
+1 -1
View File
@@ -308,7 +308,7 @@ async def get_github_repo_info(session: aiohttp.ClientSession, stub_info: StubMe
assert len(Path(url_path).parts) == 2
github_tags_info_url = f"https://api.github.com/repos/{url_path}/tags"
async with session.get(github_tags_info_url, headers=get_github_api_headers()) as response:
if response.status == 200:
if response.status == HTTPStatus.OK:
tags: list[dict[str, Any]] = await response.json()
assert isinstance(tags, list)
return GitHubInfo(repo_path=url_path, tags=tags)
+2
View File
@@ -1,3 +1,5 @@
# ruff: noqa: PLR5501 # This condition is so big, it's clearer to keep to platform condition in two blocks
# Can't NOQA on a specific line: https://github.com/plinss/flake8-noqa/issues/22
import sys
from collections.abc import Awaitable, Coroutine, Generator
from typing import Any, TypeVar
+2 -2
View File
@@ -16,9 +16,9 @@ if sys.version_info >= (3, 10):
from zipimport import zipimporter
if sys.version_info >= (3, 11):
import importlib.resources.abc as abc
from importlib.resources import abc
else:
import importlib.abc as abc
from importlib import abc
if sys.version_info >= (3, 10):
if sys.version_info >= (3, 11):
+1 -1
View File
@@ -5,9 +5,9 @@ from types import TracebackType
from typing import Any
from typing_extensions import ParamSpec
import gevent.libev.watcher as watcher
from gevent._ffi.loop import _ErrorHandler
from gevent._types import _Callback
from gevent.libev import watcher
# this c extension is only available on posix
if sys.platform != "win32":
+1 -1
View File
@@ -2,8 +2,8 @@ import sys
from _typeshed import FileDescriptor
from collections.abc import Sequence
import gevent.libev.watcher as watcher
from gevent._ffi.loop import AbstractLoop
from gevent.libev import watcher
def get_version() -> str: ...
def get_header_version() -> str: ...
+1 -1
View File
@@ -2,9 +2,9 @@ import sys
from _typeshed import FileDescriptor
from typing import NamedTuple
import gevent.libuv.watcher as watcher
from gevent._ffi.loop import AbstractLoop
from gevent._types import _IoWatcher
from gevent.libuv import watcher
def get_version() -> str: ...
def get_header_version() -> str: ...