from __future__ import annotations from typing import TYPE_CHECKING if TYPE_CHECKING: from mdurl._url import URL def format(url: URL) -> str: # noqa: A001 result = "" result += url.protocol or "" result += "//" if url.slashes else "" result += url.auth + "@" if url.auth else "" if url.hostname and ":" in url.hostname: # ipv6 address result += "[" + url.hostname + "]" else: result += url.hostname or "" result += ":" + url.port if url.port else "" result += url.pathname or "" result += url.search or "" result += url.hash or "" return result