feat: RFCP MVP deployed on VPS

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
This commit is contained in:
lazard36
2026-01-30 07:38:51 +00:00
parent 05a464ce22
commit 3f04d5101e
1798 changed files with 330597 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
# This only works if using a file system, other loaders not implemented.
import importlib.util
import sys
import warnings
from pathlib import Path
for p in sys.path:
file_path = Path(p, "multipart.py")
try:
if file_path.is_file():
spec = importlib.util.spec_from_file_location("multipart", file_path)
assert spec is not None, f"{file_path} found but not loadable!"
module = importlib.util.module_from_spec(spec)
sys.modules["multipart"] = module
assert spec.loader is not None, f"{file_path} must be loadable!"
spec.loader.exec_module(module)
break
except PermissionError:
pass
else:
warnings.warn("Please use `import python_multipart` instead.", PendingDeprecationWarning, stacklevel=2)
from python_multipart import *
from python_multipart import __all__, __author__, __copyright__, __license__, __version__

View File

@@ -0,0 +1 @@
from python_multipart.decoders import *

View File

@@ -0,0 +1 @@
from python_multipart.exceptions import *

View File

@@ -0,0 +1 @@
from python_multipart.multipart import *