| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- from __future__ import annotations
- import json
- from typing import Any, Tuple
- def url_from_host_port(host: str, port: int) -> str:
- host = (host or "").strip()
- if not host:
- host = "127.0.0.1"
- if host.startswith("http://") or host.startswith("https://"):
- return f"{host}:{port}"
- return f"http://{host}:{port}"
- def parse_host_port(base_url: str) -> Tuple[str, int]:
- s = (base_url or "").strip()
- s = s.replace("http://", "").replace("https://", "")
- if ":" not in s:
- return (s or "127.0.0.1"), 8000
- host, port_s = s.split(":", 1)
- try:
- port = int(port_s)
- except Exception:
- port = 8000
- return (host or "127.0.0.1"), port
- def short_json(x: Any, max_len: int = 500) -> str:
- try:
- s = json.dumps(x, ensure_ascii=False)
- except Exception:
- s = str(x)
- if len(s) > max_len:
- return s[:max_len] + "..."
- return s
- def short_path(p: str, max_len: int = 160) -> str:
- p = p or ""
- if len(p) > max_len:
- return "..." + p[-(max_len - 3):]
- return p
|