From 574e787bf12148191477bc01abbf742f65e2e4ee Mon Sep 17 00:00:00 2001 From: Daniel Eades Date: Mon, 10 Jan 2022 15:35:27 +0000 Subject: [PATCH] use class-style syntax for 'NamedTuple's --- sphinx/builders/linkcheck.py | 37 ++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/sphinx/builders/linkcheck.py b/sphinx/builders/linkcheck.py index 61b6b45f9..ea8aaa300 100644 --- a/sphinx/builders/linkcheck.py +++ b/sphinx/builders/linkcheck.py @@ -43,18 +43,31 @@ logger = logging.getLogger(__name__) uri_re = re.compile('([a-z]+:)?//') # matches to foo:// and // (a protocol relative URL) -Hyperlink = NamedTuple('Hyperlink', (('uri', str), - ('docname', str), - ('lineno', Optional[int]))) -CheckRequest = NamedTuple('CheckRequest', (('next_check', float), - ('hyperlink', Optional[Hyperlink]))) -CheckResult = NamedTuple('CheckResult', (('uri', str), - ('docname', str), - ('lineno', int), - ('status', str), - ('message', str), - ('code', int))) -RateLimit = NamedTuple('RateLimit', (('delay', float), ('next_check', float))) + +class Hyperlink(NamedTuple): + uri: str + docname: str + lineno: Optional[int] + + +class CheckRequest(NamedTuple): + next_check: float + hyperlink: Optional[Hyperlink] + + +class CheckResult(NamedTuple): + uri: str + docname: str + lineno: int + status: str + message: str + code: int + + +class RateLimit(NamedTuple): + delay: float + next_check: float + # Tuple is old styled CheckRequest CheckRequestType = Union[CheckRequest, Tuple[float, str, str, int]]