mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 20:54:28 +08:00
tests/check_new_syntax.py: check order of if statements (#6423)
This commit is contained in:
@@ -13,8 +13,8 @@ if sys.version_info < (3, 11):
|
||||
|
||||
def iscoroutinefunction(func: object) -> bool: ...
|
||||
|
||||
if sys.version_info < (3, 8):
|
||||
def iscoroutine(obj: object) -> TypeGuard[types.GeneratorType[Any, Any, Any] | Coroutine[Any, Any, Any]]: ...
|
||||
if sys.version_info >= (3, 8):
|
||||
def iscoroutine(obj: object) -> TypeGuard[Coroutine[Any, Any, Any]]: ...
|
||||
|
||||
else:
|
||||
def iscoroutine(obj: object) -> TypeGuard[Coroutine[Any, Any, Any]]: ...
|
||||
def iscoroutine(obj: object) -> TypeGuard[types.GeneratorType[Any, Any, Any] | Coroutine[Any, Any, Any]]: ...
|
||||
|
||||
@@ -93,14 +93,7 @@ def isframe(object: object) -> TypeGuard[FrameType]: ...
|
||||
def iscode(object: object) -> TypeGuard[CodeType]: ...
|
||||
def isbuiltin(object: object) -> TypeGuard[BuiltinFunctionType]: ...
|
||||
|
||||
if sys.version_info < (3, 7):
|
||||
def isroutine(
|
||||
object: object,
|
||||
) -> TypeGuard[FunctionType | LambdaType | MethodType | BuiltinFunctionType | BuiltinMethodType]: ...
|
||||
def ismethoddescriptor(object: object) -> bool: ...
|
||||
def ismemberdescriptor(object: object) -> bool: ...
|
||||
|
||||
else:
|
||||
if sys.version_info >= (3, 7):
|
||||
def isroutine(
|
||||
object: object,
|
||||
) -> TypeGuard[
|
||||
@@ -116,6 +109,13 @@ else:
|
||||
def ismethoddescriptor(object: object) -> TypeGuard[MethodDescriptorType]: ...
|
||||
def ismemberdescriptor(object: object) -> TypeGuard[MemberDescriptorType]: ...
|
||||
|
||||
else:
|
||||
def isroutine(
|
||||
object: object,
|
||||
) -> TypeGuard[FunctionType | LambdaType | MethodType | BuiltinFunctionType | BuiltinMethodType]: ...
|
||||
def ismethoddescriptor(object: object) -> bool: ...
|
||||
def ismemberdescriptor(object: object) -> bool: ...
|
||||
|
||||
def isabstract(object: object) -> bool: ...
|
||||
def isgetsetdescriptor(object: object) -> TypeGuard[GetSetDescriptorType]: ...
|
||||
def isdatadescriptor(object: object) -> TypeGuard[_SupportsSet[Any, Any] | _SupportsDelete[Any]]: ...
|
||||
|
||||
@@ -308,7 +308,9 @@ class SSLSocket(socket.socket):
|
||||
server_hostname: str | None
|
||||
session: SSLSession | None
|
||||
session_reused: bool | None
|
||||
if sys.version_info < (3, 7):
|
||||
if sys.version_info >= (3, 7):
|
||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||
else:
|
||||
def __init__(
|
||||
self,
|
||||
sock: socket.socket | None = ...,
|
||||
@@ -330,8 +332,6 @@ class SSLSocket(socket.socket):
|
||||
_context: SSLContext | None = ...,
|
||||
_session: Any | None = ...,
|
||||
) -> None: ...
|
||||
else:
|
||||
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
|
||||
def connect(self, addr: socket._Address | bytes) -> None: ...
|
||||
def connect_ex(self, addr: socket._Address | bytes) -> int: ...
|
||||
def recv(self, buflen: int = ..., flags: int = ...) -> bytes: ...
|
||||
|
||||
@@ -117,7 +117,18 @@ def check_new_syntax(tree: ast.AST, path: Path) -> list[str]:
|
||||
self.old_syntax_finder().visit(node.returns)
|
||||
self.generic_visit(node)
|
||||
|
||||
class IfFinder(ast.NodeVisitor):
|
||||
def visit_If(self, node: ast.If) -> None:
|
||||
if isinstance(node.test, ast.Compare) and ast.unparse(node.test).startswith("sys.version_info < ") and node.orelse:
|
||||
new_syntax = "if " + ast.unparse(node.test).replace("<", ">=", 1)
|
||||
errors.append(
|
||||
f"{path}:{node.lineno}: When using if/else with sys.version_info, "
|
||||
f"put the code for new Python versions first, e.g. `{new_syntax}`"
|
||||
)
|
||||
self.generic_visit(node)
|
||||
|
||||
AnnotationFinder().visit(tree)
|
||||
IfFinder().visit(tree)
|
||||
return errors
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user