docs: add docstrings to Unix traceroute helper functions

This commit is contained in:
qwen.ai[bot] 2026-08-12 14:43:54 +00:00
parent de193b5459
commit 3d7980e7e2

View file

@ -53,6 +53,18 @@ def _extract_ip(text: str) -> str | None:
def _unix_host_and_ip(body: str) -> tuple[str | None, str | None]: def _unix_host_and_ip(body: str) -> tuple[str | None, str | None]:
"""Extract hostname and IP address from a Unix traceroute hop line.
Parses output like 'hostname (192.168.1.1)' or just an IP address,
returning the hostname only if it differs from the IP.
Args:
body: The text portion of a traceroute hop line after the TTL number.
Returns:
A tuple of (hostname_or_None, ip_address_or_None).
Hostname is None if it matches the IP or isn't present.
"""
match = _UNIX_HOSTIP_RE.search(body) match = _UNIX_HOSTIP_RE.search(body)
if match: if match:
name, ip = match.group("name"), match.group("ip") name, ip = match.group("name"), match.group("ip")
@ -61,6 +73,16 @@ def _unix_host_and_ip(body: str) -> tuple[str | None, str | None]:
def _unix_probes(body: str) -> list[float | None]: def _unix_probes(body: str) -> list[float | None]:
"""Extract RTT probe values from a Unix traceroute hop line.
Parses measurements like '1.234 ms' or '*' (timeout) from the hop body.
Args:
body: The text portion of a traceroute hop line containing probe results.
Returns:
A list of float RTT values in milliseconds, with None for timeouts (*).
"""
return [ return [
None if match.group("star") else float(match.group("rtt")) None if match.group("star") else float(match.group("rtt"))
for match in _UNIX_PROBE_RE.finditer(body) for match in _UNIX_PROBE_RE.finditer(body)
@ -68,6 +90,17 @@ def _unix_probes(body: str) -> list[float | None]:
def _unix_annotations(body: str) -> list[str]: def _unix_annotations(body: str) -> list[str]:
"""Extract annotation markers from a Unix traceroute hop line.
Annotations are special codes like '!H' (host unreachable) or '!N'
(network unreachable) that appear in traceroute output.
Args:
body: The text portion of a traceroute hop line.
Returns:
A deduplicated list of annotation markers found in the body.
"""
return list(dict.fromkeys(ANNOTATION_RE.findall(body))) return list(dict.fromkeys(ANNOTATION_RE.findall(body)))