cli.contributing.network.diagnose package

Submodules

cli.contributing.network.diagnose.cli module

Diagnose CLI orchestration.

cli.contributing.network.diagnose.cli.main() → int
cli.contributing.network.diagnose.cli.resolve_hosts() → list[str]

cli.contributing.network.diagnose.config module

Single point of truth for diagnose constants.

cli.contributing.network.diagnose.format module

Output and subprocess helpers.

cli.contributing.network.diagnose.format.cmd_capture(argv: Sequence[str], timeout: float = 5.0) → tuple[int, str]

Run argv and return (returncode, combined stdout+stderr).

Returns (-1, “command not found: …”) when the binary is missing. Returns (-2, “timeout after …”) when the call exceeds timeout.

cli.contributing.network.diagnose.format.line(label: str, value: str, *, file=None) → None
cli.contributing.network.diagnose.format.section(title: str, *, file=None) → None

cli.contributing.network.diagnose.probes module

Per-host probes: DNS, TCP, TLS handshake, path MTU.

cli.contributing.network.diagnose.probes.dns_resolve(host: str, family: int) → tuple[bool, str, str | None]

Return (ok, info_string, first_address_or_None).

cli.contributing.network.diagnose.probes.path_mtu_probe(host: str, family: int) → tuple[int | str | None, int | str | None]

Probe the largest ICMP-DF payload that survives without fragmentation.

Returns:

  • (payload_bytes, total_bytes) on success

  • ("SKIPPED", reason) when ping is unavailable or lacks CAP_NET_RAW

  • (None, None) when every probe size is dropped

cli.contributing.network.diagnose.probes.per_host_check(hosts: Sequence[str], family: int, family_label: str) → None
cli.contributing.network.diagnose.probes.tcp_connect(addr: str, family: int, port: int = 443, timeout: float = 5.0) → tuple[bool, str]
cli.contributing.network.diagnose.probes.tls_handshake(host: str, addr: str, family: int, port: int = 443, timeout: float = 8.0) → tuple[bool, str]

cli.contributing.network.diagnose.report module

Per-system info dumps: identity, interfaces+MTU, /etc/resolv.conf, /etc/hosts, proxies, CA bundles.

cli.contributing.network.diagnose.report.has_ipv6_default_route() → bool

True when an IPv6 default route exists on a non-loopback interface.

cli.contributing.network.diagnose.report.show_ca_bundle() → None
cli.contributing.network.diagnose.report.show_hosts() → None
cli.contributing.network.diagnose.report.show_identity() → None
cli.contributing.network.diagnose.report.show_iface_routes() → None
cli.contributing.network.diagnose.report.show_proxies() → None
cli.contributing.network.diagnose.report.show_resolv() → None

cli.contributing.network.diagnose.tools module

Detect the host distro and self-install the binaries the diagnose probes need.

cli.contributing.network.diagnose.tools.detect_distro_id(*, os_release_path: str = '/etc/os-release') → str

Return the distro id from /etc/os-release, lowercased; empty string when unreadable.

cli.contributing.network.diagnose.tools.ensure_tools() → None

Install the missing TOOLS via the distro’s package manager, when possible.

cli.contributing.network.diagnose.tools.missing_tools() → list[str]

Module contents