From 5f330a36fa4cc5a7b609626d1cd2027e78c8f2d8 Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Sat, 28 Oct 2023 07:48:53 -0700 Subject: [PATCH 1/6] Baseline stubs for portpicker --- pyrightconfig.stricter.json | 1 + stubs/portpicker/METADATA.toml | 2 ++ stubs/portpicker/portpicker.pyi | 15 +++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 stubs/portpicker/METADATA.toml create mode 100644 stubs/portpicker/portpicker.pyi diff --git a/pyrightconfig.stricter.json b/pyrightconfig.stricter.json index 73be96fd5964..ece29653c974 100644 --- a/pyrightconfig.stricter.json +++ b/pyrightconfig.stricter.json @@ -56,6 +56,7 @@ "stubs/pexpect", "stubs/pika", "stubs/Pillow", + "stubs/portpicker", "stubs/protobuf", "stubs/psutil", "stubs/psycopg2", diff --git a/stubs/portpicker/METADATA.toml b/stubs/portpicker/METADATA.toml new file mode 100644 index 000000000000..626dbf6c4518 --- /dev/null +++ b/stubs/portpicker/METADATA.toml @@ -0,0 +1,2 @@ +version = "1.6.*" +upstream_repository = "https://github.com/google/python_portpicker" diff --git a/stubs/portpicker/portpicker.pyi b/stubs/portpicker/portpicker.pyi new file mode 100644 index 000000000000..a21ca017e97e --- /dev/null +++ b/stubs/portpicker/portpicker.pyi @@ -0,0 +1,15 @@ +from _typeshed import Incomplete + +class NoFreePortFoundError(Exception): ... + +def add_reserved_port(port) -> None: ... +def return_port(port) -> None: ... +def bind(port, socket_type, socket_proto): ... +def is_port_free(port): ... +def pick_unused_port(pid: Incomplete | None = ..., portserver_address: Incomplete | None = ...): ... +def get_port_from_port_server(portserver_address, pid: Incomplete | None = ...): ... + +Bind = bind +GetPortFromPortServer = get_port_from_port_server +IsPortFree = is_port_free +PickUnusedPort = pick_unused_port From 9f82707f0130ac1243786d329d33ec37a56de34b Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Sat, 28 Oct 2023 07:54:31 -0700 Subject: [PATCH 2/6] Add types --- stubs/portpicker/portpicker.pyi | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/stubs/portpicker/portpicker.pyi b/stubs/portpicker/portpicker.pyi index a21ca017e97e..8076d89437e0 100644 --- a/stubs/portpicker/portpicker.pyi +++ b/stubs/portpicker/portpicker.pyi @@ -1,14 +1,17 @@ -from _typeshed import Incomplete +from typing_extensions import TypeAlias + +_Port: TypeAlias = int class NoFreePortFoundError(Exception): ... -def add_reserved_port(port) -> None: ... -def return_port(port) -> None: ... -def bind(port, socket_type, socket_proto): ... -def is_port_free(port): ... -def pick_unused_port(pid: Incomplete | None = ..., portserver_address: Incomplete | None = ...): ... -def get_port_from_port_server(portserver_address, pid: Incomplete | None = ...): ... +def add_reserved_port(port: _Port) -> None: ... +def return_port(port: _Port) -> None: ... +def bind(port: _Port, socket_type: int, socket_proto: int) -> _Port | None: ... +def is_port_free(port: _Port) -> bool: ... +def pick_unused_port(pid: int | None = ..., portserver_address: str | tuple[str, _Port] | None = ...) -> _Port: ... +def get_port_from_port_server(portserver_address: str | tuple[str, _Port], pid: int | None = ...) -> _Port | None: ... +# legacy aliases Bind = bind GetPortFromPortServer = get_port_from_port_server IsPortFree = is_port_free From 586622079a81acb1e53c793f08675abaded22b61 Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Sat, 28 Oct 2023 07:55:02 -0700 Subject: [PATCH 3/6] strict pyright --- pyrightconfig.stricter.json | 1 - 1 file changed, 1 deletion(-) diff --git a/pyrightconfig.stricter.json b/pyrightconfig.stricter.json index ece29653c974..73be96fd5964 100644 --- a/pyrightconfig.stricter.json +++ b/pyrightconfig.stricter.json @@ -56,7 +56,6 @@ "stubs/pexpect", "stubs/pika", "stubs/Pillow", - "stubs/portpicker", "stubs/protobuf", "stubs/psutil", "stubs/psycopg2", From 57134745dd2b462ce129bc2b01b58d3483c3e690 Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Sat, 28 Oct 2023 10:58:27 -0700 Subject: [PATCH 4/6] Code review --- stubs/portpicker/portpicker.pyi | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/stubs/portpicker/portpicker.pyi b/stubs/portpicker/portpicker.pyi index 8076d89437e0..e9b7382f9ada 100644 --- a/stubs/portpicker/portpicker.pyi +++ b/stubs/portpicker/portpicker.pyi @@ -1,12 +1,15 @@ +import socket from typing_extensions import TypeAlias _Port: TypeAlias = int +__all__ = ("bind", "is_port_free", "pick_unused_port", "return_port", "add_reserved_port", "get_port_from_port_server") + class NoFreePortFoundError(Exception): ... def add_reserved_port(port: _Port) -> None: ... def return_port(port: _Port) -> None: ... -def bind(port: _Port, socket_type: int, socket_proto: int) -> _Port | None: ... +def bind(port: _Port, socket_type: socket.SocketKind, socket_proto: int) -> _Port | None: ... def is_port_free(port: _Port) -> bool: ... def pick_unused_port(pid: int | None = ..., portserver_address: str | tuple[str, _Port] | None = ...) -> _Port: ... def get_port_from_port_server(portserver_address: str | tuple[str, _Port], pid: int | None = ...) -> _Port | None: ... From 2beaa4fff4abcdeb67fae27fdd91d7e3e75a4dae Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Sat, 28 Oct 2023 11:14:00 -0700 Subject: [PATCH 5/6] Update stubs/portpicker/portpicker.pyi Co-authored-by: Alex Waygood --- stubs/portpicker/portpicker.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stubs/portpicker/portpicker.pyi b/stubs/portpicker/portpicker.pyi index e9b7382f9ada..c795b654c288 100644 --- a/stubs/portpicker/portpicker.pyi +++ b/stubs/portpicker/portpicker.pyi @@ -11,8 +11,8 @@ def add_reserved_port(port: _Port) -> None: ... def return_port(port: _Port) -> None: ... def bind(port: _Port, socket_type: socket.SocketKind, socket_proto: int) -> _Port | None: ... def is_port_free(port: _Port) -> bool: ... -def pick_unused_port(pid: int | None = ..., portserver_address: str | tuple[str, _Port] | None = ...) -> _Port: ... -def get_port_from_port_server(portserver_address: str | tuple[str, _Port], pid: int | None = ...) -> _Port | None: ... +def pick_unused_port(pid: int | None = None, portserver_address: str | tuple[str, _Port] | None = None) -> _Port: ... +def get_port_from_port_server(portserver_address: str | tuple[str, _Port], pid: int | None = None) -> _Port | None: ... # legacy aliases Bind = bind From 137171cae7c18cb6aef772c11d85cc7abe17be27 Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Sat, 28 Oct 2023 17:00:12 -0700 Subject: [PATCH 6/6] only str --- stubs/portpicker/portpicker.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stubs/portpicker/portpicker.pyi b/stubs/portpicker/portpicker.pyi index c795b654c288..cac293cbcf52 100644 --- a/stubs/portpicker/portpicker.pyi +++ b/stubs/portpicker/portpicker.pyi @@ -11,8 +11,8 @@ def add_reserved_port(port: _Port) -> None: ... def return_port(port: _Port) -> None: ... def bind(port: _Port, socket_type: socket.SocketKind, socket_proto: int) -> _Port | None: ... def is_port_free(port: _Port) -> bool: ... -def pick_unused_port(pid: int | None = None, portserver_address: str | tuple[str, _Port] | None = None) -> _Port: ... -def get_port_from_port_server(portserver_address: str | tuple[str, _Port], pid: int | None = None) -> _Port | None: ... +def pick_unused_port(pid: int | None = None, portserver_address: str | None = None) -> _Port: ... +def get_port_from_port_server(portserver_address: str, pid: int | None = None) -> _Port | None: ... # legacy aliases Bind = bind