Iteration 1: - Dark theme with 3-way toggle - Dynamic heatmap gradient (blue→red) - Radius up to 100km - Save & Calculate workflow Iteration 2: - Terrain overlay toggle - Batch height operations - Zoom-dependent heatmap rendering Infrastructure: - Backend FastAPI on 8888 - Frontend static build via Caddy - Systemd services - Caddy reverse proxy integration
65 lines
1.2 KiB
Python
65 lines
1.2 KiB
Python
from ..base import AsyncBase, AsyncIndirectBase
|
|
from .utils import delegate_to_executor, proxy_method_directly, proxy_property_directly
|
|
|
|
|
|
@delegate_to_executor(
|
|
"close",
|
|
"flush",
|
|
"isatty",
|
|
"read",
|
|
"readable",
|
|
"readline",
|
|
"readlines",
|
|
"seek",
|
|
"seekable",
|
|
"tell",
|
|
"truncate",
|
|
"write",
|
|
"writable",
|
|
"writelines",
|
|
)
|
|
@proxy_method_directly("detach", "fileno", "readable")
|
|
@proxy_property_directly(
|
|
"buffer",
|
|
"closed",
|
|
"encoding",
|
|
"errors",
|
|
"line_buffering",
|
|
"newlines",
|
|
"name",
|
|
"mode",
|
|
)
|
|
class AsyncTextIOWrapper(AsyncBase):
|
|
"""The asyncio executor version of io.TextIOWrapper."""
|
|
|
|
|
|
@delegate_to_executor(
|
|
"close",
|
|
"flush",
|
|
"isatty",
|
|
"read",
|
|
"readable",
|
|
"readline",
|
|
"readlines",
|
|
"seek",
|
|
"seekable",
|
|
"tell",
|
|
"truncate",
|
|
"write",
|
|
"writable",
|
|
"writelines",
|
|
)
|
|
@proxy_method_directly("detach", "fileno", "readable")
|
|
@proxy_property_directly(
|
|
"buffer",
|
|
"closed",
|
|
"encoding",
|
|
"errors",
|
|
"line_buffering",
|
|
"newlines",
|
|
"name",
|
|
"mode",
|
|
)
|
|
class AsyncTextIndirectIOWrapper(AsyncIndirectBase):
|
|
"""The indirect asyncio executor version of io.TextIOWrapper."""
|