about summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authornicoo <nicoo@mur.at>2023-12-18 20:28:35 +0000
committernicoo <nicoo@mur.at>2023-12-18 20:38:17 +0000
commit38e912eaa3890122be2c1354772d1791e53ea8dc (patch)
tree5e0620706eb5a547fd6f1845ef5a4e1e813ac121 /doc
parentba387f0a5be2a11366b046c6e28f9ce4bd348f58 (diff)
doc/tests/manpage-urls.py: Add type annotations
Diffstat (limited to 'doc')
-rwxr-xr-xdoc/tests/manpage-urls.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/doc/tests/manpage-urls.py b/doc/tests/manpage-urls.py
index e5242892b7fb9..a1ea6d27969e7 100755
--- a/doc/tests/manpage-urls.py
+++ b/doc/tests/manpage-urls.py
@@ -1,11 +1,13 @@
 #! /usr/bin/env nix-shell
 #! nix-shell -i "python3 -I" -p "python3.withPackages(p: with p; [ aiohttp rich structlog ])"
 
-from argparse import ArgumentParser
+from argparse import ArgumentParser, Namespace
 from collections import defaultdict
+from collections.abc import Mapping, Sequence
 from enum import IntEnum
 from http import HTTPStatus
 from pathlib import Path
+from typing import Optional
 import asyncio, json, logging
 
 import aiohttp, structlog
@@ -24,7 +26,7 @@ EXPECTED_STATUS=frozenset((
     HTTPStatus.NOT_FOUND,
 ))
 
-async def check(session, manpage: str, url: str) -> HTTPStatus:
+async def check(session: aiohttp.ClientSession, manpage: str, url: str) -> HTTPStatus:
     with log_context(manpage=manpage, url=url):
         logger.debug("Checking")
         async with session.head(url) as resp:
@@ -41,12 +43,12 @@ async def check(session, manpage: str, url: str) -> HTTPStatus:
 
             return st
 
-async def main(urls_path):
+async def main(urls_path: Path) -> Mapping[HTTPStatus, int]:
     logger.info(f"Parsing {urls_path}")
     with urls_path.open() as urls_file:
         urls = json.load(urls_file)
 
-    count = defaultdict(lambda: 0)
+    count: defaultdict[HTTPStatus, int] = defaultdict(lambda: 0)
 
     logger.info(f"Checking URLs from {urls_path}")
     async with aiohttp.ClientSession() as session:
@@ -65,7 +67,7 @@ async def main(urls_path):
     return count
 
 
-def parse_args(args=None):
+def parse_args(args: Optional[Sequence[str]] = None) -> Namespace:
     parser = ArgumentParser(
         prog = 'check-manpage-urls',
         description = 'Check the validity of the manpage URLs linked in the nixpkgs manual',