|
|
from __future__ import annotations |
|
|
|
|
|
from typing import TYPE_CHECKING |
|
|
|
|
|
if TYPE_CHECKING: |
|
|
from mdurl._url import URL |
|
|
|
|
|
|
|
|
def format(url: URL) -> str: |
|
|
result = "" |
|
|
|
|
|
result += url.protocol or "" |
|
|
result += "//" if url.slashes else "" |
|
|
result += url.auth + "@" if url.auth else "" |
|
|
|
|
|
if url.hostname and ":" in url.hostname: |
|
|
|
|
|
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 |
|
|
|