| 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 | |