From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Tue, 7 Nov 2023 01:00:16 +0000 (+0100) Subject: [3.12] gh-111729: update generic syntax for `typing.Concatenate` sample code in ... X-Git-Tag: v3.12.1~165 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35141842d350bfa2c8dc04e7cc886bdff03cf3b7;p=thirdparty%2FPython%2Fcpython.git [3.12] gh-111729: update generic syntax for `typing.Concatenate` sample code in `Doc/library/typing.rst` (GH-111734) (#111814) (cherry picked from commit c3e19c3a62e82b9e77563e934059895b6230de6e) Co-authored-by: 方糖 --- diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 44665b63487b..7cec24464a4c 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.