Skip to content

Commit 2eb8e26

Browse files
fix(Kill): kill rpc
1 parent a9ee392 commit 2eb8e26

File tree

7 files changed

+57
-34
lines changed

7 files changed

+57
-34
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ __pycache__/
66
.env
77
/node_modules
88
latest_logs
9-
schemas.json
109
build
1110
/src/tests/tests_output/
1211
*.egg-info
1312
.coverage*
14-
.mypy_cache
13+
.mypy_cache
14+
opengeodeweb_viewer_schemas.json

package-lock.json

Lines changed: 9 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ dependencies = {file = ["requirements.txt"]}
3737
where = ["src"]
3838

3939
[tool.setuptools.package-data]
40+
"opengeodeweb_viewer.rpc.schemas" = ["*.json"]
4041
"opengeodeweb_viewer.rpc.generic.schemas" = ["*.json"]
4142
"opengeodeweb_viewer.rpc.mesh.schemas" = ["*.json"]
4243
"opengeodeweb_viewer.rpc.mesh.points.schemas" = ["*.json"]

requirements.txt

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This file is autogenerated by pip-compile with Python 3.12
33
# by the following command:
44
#
5-
# pip-compile --output-file=requirements.txt --pre requirements-internal.in requirements.in
5+
# pip-compile --cert=None --client-cert=None --index-url=None --output-file=requirements.txt --pip-args=None requirements-internal.in requirements.in
66
#
77
aiohappyeyeballs==2.6.1
88
# via aiohttp
@@ -13,50 +13,37 @@ aiosignal==1.4.0
1313
attrs==25.3.0
1414
# via aiohttp
1515
blinker==1.9.0
16-
# via
17-
# flask
18-
# opengeodeweb-microservice
16+
# via flask
1917
click==8.3.0
20-
# via
21-
# flask
22-
# opengeodeweb-microservice
18+
# via flask
2319
fastjsonschema==2.21.1
2420
# via opengeodeweb-microservice
2521
flask==3.1.2
26-
# via
27-
# flask-sqlalchemy
28-
# opengeodeweb-microservice
22+
# via flask-sqlalchemy
2923
flask-sqlalchemy==3.1.1
3024
# via opengeodeweb-microservice
3125
frozenlist==1.7.0
3226
# via
3327
# aiohttp
3428
# aiosignal
3529
greenlet==3.2.4
36-
# via
37-
# opengeodeweb-microservice
38-
# sqlalchemy
30+
# via sqlalchemy
3931
idna==3.10
4032
# via yarl
4133
itsdangerous==2.2.0
42-
# via
43-
# flask
44-
# opengeodeweb-microservice
34+
# via flask
4535
jinja2==3.1.6
46-
# via
47-
# flask
48-
# opengeodeweb-microservice
49-
markupsafe==3.0.2
36+
# via flask
37+
markupsafe==3.0.3
5038
# via
5139
# flask
5240
# jinja2
53-
# opengeodeweb-microservice
5441
# werkzeug
5542
multidict==6.6.4
5643
# via
5744
# aiohttp
5845
# yarl
59-
opengeodeweb-microservice==1.*,>=1.0.1rc1
46+
opengeodeweb-microservice==1.0.0
6047
# via -r requirements-internal.in
6148
propcache==0.3.2
6249
# via
@@ -69,14 +56,11 @@ sqlalchemy==2.0.43
6956
typing-extensions==4.15.0
7057
# via
7158
# aiosignal
72-
# opengeodeweb-microservice
7359
# sqlalchemy
7460
websocket-client==1.8.0
7561
# via -r requirements.in
7662
werkzeug==3.1.3
77-
# via
78-
# flask
79-
# opengeodeweb-microservice
63+
# via flask
8064
wslink==1.12.4
8165
# via -r requirements.in
8266
yarl==1.20.1
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"rpc": "kill",
3+
"type": "object",
4+
"properties": {},
5+
"required": [],
6+
"additionalProperties": false
7+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Standard library imports
2+
import os
3+
4+
# Third party imports
5+
import vtk
6+
from wslink import register as exportRpc
7+
8+
# Local application imports
9+
from opengeodeweb_viewer.utils_functions import get_schemas_dict, validate_schema
10+
from opengeodeweb_viewer.vtk_protocol import VtkView
11+
12+
13+
class VtkUtilsView(VtkView):
14+
mesh_prefix = "opengeodeweb_viewer.utils"
15+
mesh_schemas_dict = get_schemas_dict(
16+
os.path.join(os.path.dirname(__file__), "schemas")
17+
)
18+
19+
def __init__(self) -> None:
20+
super().__init__()
21+
22+
@exportRpc(mesh_prefix + mesh_schemas_dict["kill"]["rpc"])
23+
def kill(self, params) -> None:
24+
validate_schema(params, self.mesh_schemas_dict["kill"], self.mesh_prefix)
25+
print("Manual viewer kill, shutting down...", flush=True)
26+
os._exit(0)

src/opengeodeweb_viewer/vtkw_server.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
VtkModelBlocksView,
3838
)
3939
from .rpc.generic.generic_protocols import VtkGenericView
40+
from .rpc.utils_protocols import VtkUtilsView
4041

4142

4243
# =============================================================================
@@ -78,6 +79,7 @@ def initialize(self):
7879
model_protocols = VtkModelView()
7980
vtk_view = VtkView()
8081
self.registerVtkWebProtocol(vtk_view)
82+
self.registerVtkWebProtocol(VtkUtilsView())
8183
self.registerVtkWebProtocol(VtkViewerView())
8284
self.registerVtkWebProtocol(mesh_protocols)
8385
self.registerVtkWebProtocol(VtkMeshPointsView())

0 commit comments

Comments
 (0)