mirror of
https://github.com/davidhalter/typeshed.git
synced 2026-05-04 20:45:49 +08:00
Enable Ruff PLR (Pylint Refactor) (#13307)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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":
|
||||
|
||||
@@ -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: ...
|
||||
|
||||
@@ -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: ...
|
||||
|
||||
Reference in New Issue
Block a user