From 35141842d350bfa2c8dc04e7cc886bdff03cf3b7 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Tue, 7 Nov 2023 02:00:16 +0100 Subject: [3.12] gh-111729: update generic syntax for `typing.Concatenate` sample code in `Doc/library/typing.rst` (GH-111734) (#111814) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit c3e19c3a62e82b9e77563e934059895b6230de6e) Co-authored-by: 方糖 --- Doc/library/typing.rst | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 44665b6..7cec244 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -1135,16 +1135,13 @@ These can be used as types in annotations. They all support subscription using from collections.abc import Callable from threading import Lock - from typing import Concatenate, ParamSpec, TypeVar - - P = ParamSpec('P') - R = TypeVar('R') + from typing import Concatenate # Use this lock to ensure that only one thread is executing a function # at any time. my_lock = Lock() - def with_lock(f: Callable[Concatenate[Lock, P], R]) -> Callable[P, R]: + def with_lock[**P, R](f: Callable[Concatenate[Lock, P], R]) -> Callable[P, R]: '''A type-safe decorator which provides a lock.''' def inner(*args: P.args, **kwargs: P.kwargs) -> R: # Provide the lock as the first argument. -- cgit v0.12