xmas-app 0.11.0__py3-none-any.whl → 0.11.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- xmas_app/main.py +37 -45
- {xmas_app-0.11.0.dist-info → xmas_app-0.11.2.dist-info}/METADATA +1 -1
- {xmas_app-0.11.0.dist-info → xmas_app-0.11.2.dist-info}/RECORD +6 -6
- {xmas_app-0.11.0.dist-info → xmas_app-0.11.2.dist-info}/WHEEL +0 -0
- {xmas_app-0.11.0.dist-info → xmas_app-0.11.2.dist-info}/entry_points.txt +0 -0
- {xmas_app-0.11.0.dist-info → xmas_app-0.11.2.dist-info}/licenses/LICENSE +0 -0
xmas_app/main.py
CHANGED
|
@@ -3,36 +3,48 @@ import importlib
|
|
|
3
3
|
import inspect
|
|
4
4
|
import io
|
|
5
5
|
import logging
|
|
6
|
-
import os
|
|
7
6
|
import re
|
|
8
7
|
from contextlib import asynccontextmanager
|
|
9
8
|
from functools import partial
|
|
10
9
|
from pathlib import Path
|
|
11
|
-
from tempfile import NamedTemporaryFile
|
|
10
|
+
from tempfile import NamedTemporaryFile, gettempdir
|
|
12
11
|
from typing import Any, Literal
|
|
13
12
|
from uuid import uuid4
|
|
14
13
|
|
|
15
14
|
import pydantic
|
|
16
15
|
import pydantic_core
|
|
16
|
+
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
|
17
|
+
from nicegui import app, run, ui
|
|
18
|
+
from nicegui.events import ClickEventArguments, ValueChangeEventArguments
|
|
17
19
|
from nicegui.observables import ObservableSet
|
|
18
20
|
from pydantic import ValidationError
|
|
19
21
|
from starlette.applications import Starlette
|
|
20
|
-
from xplan_tools.
|
|
22
|
+
from xplan_tools.interface import repo_factory
|
|
23
|
+
from xplan_tools.interface.db import DBRepository
|
|
24
|
+
from xplan_tools.interface.gml import GMLRepository
|
|
25
|
+
from xplan_tools.model import model_factory
|
|
26
|
+
from xplan_tools.util import (
|
|
27
|
+
cast_geom_to_multi,
|
|
28
|
+
cast_geom_to_single,
|
|
29
|
+
get_geometry_type_from_wkt,
|
|
30
|
+
)
|
|
21
31
|
|
|
32
|
+
from xmas_app.db import get_db_feature_ids, get_nodes
|
|
22
33
|
from xmas_app.deps.version_guard import enforce_plugin_version
|
|
34
|
+
from xmas_app.form import ModelForm
|
|
35
|
+
from xmas_app.models.crud import InsertPayload, UpdatePayload
|
|
23
36
|
from xmas_app.schema import ErrorDetail, ErrorResponse, SplitPayload, SplitSuccess
|
|
37
|
+
from xmas_app.services import crud
|
|
38
|
+
from xmas_app.settings import get_appschema, settings
|
|
24
39
|
from xmas_app.split_service import PlanSplitService, SplitValidationError
|
|
25
40
|
|
|
26
41
|
|
|
27
42
|
def _resolve_log_dir() -> Path:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
# default: local repo logs (dev)
|
|
35
|
-
return Path(__file__).parent / "logs"
|
|
43
|
+
if settings.app_mode == "prod":
|
|
44
|
+
return Path(gettempdir()) / "xmas_log"
|
|
45
|
+
else:
|
|
46
|
+
# dev: local repo logs
|
|
47
|
+
return Path(__file__).parent.parent
|
|
36
48
|
|
|
37
49
|
|
|
38
50
|
log_dir = _resolve_log_dir()
|
|
@@ -40,34 +52,15 @@ log_dir.mkdir(exist_ok=True)
|
|
|
40
52
|
log_file = log_dir / "xmas_app.log"
|
|
41
53
|
|
|
42
54
|
logger = logging.getLogger("xmas_app")
|
|
55
|
+
logger.propagate = False
|
|
43
56
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
logger.addHandler(fh)
|
|
52
|
-
logger.debug(f"Writing logs to {log_file}")
|
|
53
|
-
|
|
54
|
-
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
|
55
|
-
from nicegui import app, run, ui
|
|
56
|
-
from nicegui.events import ClickEventArguments, ValueChangeEventArguments
|
|
57
|
-
from xplan_tools.interface import repo_factory
|
|
58
|
-
from xplan_tools.interface.db import DBRepository
|
|
59
|
-
from xplan_tools.interface.gml import GMLRepository
|
|
60
|
-
from xplan_tools.model import model_factory
|
|
61
|
-
from xplan_tools.util import (
|
|
62
|
-
cast_geom_to_multi,
|
|
63
|
-
cast_geom_to_single,
|
|
64
|
-
)
|
|
65
|
-
|
|
66
|
-
from xmas_app.db import get_db_feature_ids, get_nodes
|
|
67
|
-
from xmas_app.form import ModelForm
|
|
68
|
-
from xmas_app.models.crud import InsertPayload, UpdatePayload
|
|
69
|
-
from xmas_app.services import crud
|
|
70
|
-
from xmas_app.settings import get_appschema, settings
|
|
57
|
+
logger.handlers.clear()
|
|
58
|
+
logger.setLevel(logging.DEBUG if settings.debug else logging.INFO)
|
|
59
|
+
fh = logging.FileHandler(log_file, mode="w", encoding="utf-8")
|
|
60
|
+
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(name)s - %(message)s")
|
|
61
|
+
fh.setFormatter(formatter)
|
|
62
|
+
logger.addHandler(fh)
|
|
63
|
+
logger.debug(f"Writing logs to {log_file}")
|
|
71
64
|
|
|
72
65
|
ui.element.default_props("dense")
|
|
73
66
|
|
|
@@ -1239,15 +1232,14 @@ async def receive_split_plans(payload: SplitPayload) -> SplitSuccess:
|
|
|
1239
1232
|
|
|
1240
1233
|
@asynccontextmanager
|
|
1241
1234
|
async def lifespan(starlette_app):
|
|
1242
|
-
|
|
1243
|
-
f"
|
|
1244
|
-
)
|
|
1245
|
-
print(
|
|
1246
|
-
f"NiceGUI server is running on port {settings.app_port} in {settings.app_mode} mode."
|
|
1235
|
+
msg = (
|
|
1236
|
+
f"XMAS-App is running on port {settings.app_port} in {settings.app_mode} mode."
|
|
1247
1237
|
)
|
|
1238
|
+
logger.info(msg)
|
|
1239
|
+
print(msg)
|
|
1248
1240
|
yield
|
|
1249
|
-
logger.info("
|
|
1250
|
-
print("
|
|
1241
|
+
logger.info("XMAS-App is shutting down.")
|
|
1242
|
+
print("XMAS-App is shutting down.")
|
|
1251
1243
|
|
|
1252
1244
|
|
|
1253
1245
|
starlette_app = Starlette(
|
|
@@ -2,7 +2,7 @@ xmas_app/db.py,sha256=dHU8_xDsH2WduEMrYs0spY55hLlN5Xv12tRb8lHAado,7139
|
|
|
2
2
|
xmas_app/db_uow.py,sha256=usvqo1bO4dQnMbiub5PyQAAgu8Af-HYAJTsFNYS3Le0,761
|
|
3
3
|
xmas_app/deps/version_guard.py,sha256=iBVLOKfffdiMXI6dnU62TmVIUqOYV6BQP8KoF814Gu4,840
|
|
4
4
|
xmas_app/form.py,sha256=fO-7Fwl3TCEQIlZYrbathPIZ1iBIk7nkVLnLaN5vDbM,70954
|
|
5
|
-
xmas_app/main.py,sha256=
|
|
5
|
+
xmas_app/main.py,sha256=wvEo4ntXmqmpRLyUCoOQr13jPL2nNzTJbtWM8KeOLzI,50513
|
|
6
6
|
xmas_app/models/crud.py,sha256=p_NkUXAo9UkUPUPh2yPtuWoUnP2yMONjxgPaMmgkhzw,411
|
|
7
7
|
xmas_app/pygeoapi/config.yaml,sha256=lmb08zXk8-dB0sh_4EQ1enVBIqgBI-v6QcoIiHyH3N8,7992
|
|
8
8
|
xmas_app/pygeoapi/openapi.yaml,sha256=h4J4kYugyNVMFjL_C2CLcntELgIkGh0N4VzpPf8u_tE,40650
|
|
@@ -13,8 +13,8 @@ xmas_app/settings.py,sha256=ojXnVZk3kSCuueN84CeDX7Ts95rptZ8dfzn_eB9HDCE,2538
|
|
|
13
13
|
xmas_app/split_service.py,sha256=Ag_Ix2vMgT04OsQ0DIGK7WFKQlbktmmTqWlESO2ZgVs,26701
|
|
14
14
|
xmas_app/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
xmas_app/util/codelist.py,sha256=7qdiaKQLm38TA7WuAfizmdXd_AjJVZ-tnAFpQg4vdeA,1951
|
|
16
|
-
xmas_app-0.11.
|
|
17
|
-
xmas_app-0.11.
|
|
18
|
-
xmas_app-0.11.
|
|
19
|
-
xmas_app-0.11.
|
|
20
|
-
xmas_app-0.11.
|
|
16
|
+
xmas_app-0.11.2.dist-info/METADATA,sha256=lKzGZ6mu9VfyOWS7eT9iSZVidP9p1x8KIwvOGVSNX6k,5315
|
|
17
|
+
xmas_app-0.11.2.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
18
|
+
xmas_app-0.11.2.dist-info/entry_points.txt,sha256=uve2b0hgPbVfiD047-hOI6_dD97ZytvCPWk7HsN9Xng,53
|
|
19
|
+
xmas_app-0.11.2.dist-info/licenses/LICENSE,sha256=b8nnCcy_4Nd_v_okJ6mDKCvi64jkexzbSfIag7TR5mU,13827
|
|
20
|
+
xmas_app-0.11.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|