OpenGeodeWeb-Back 5.11.0__py3-none-any.whl → 5.11.1rc1__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.
Potentially problematic release.
This version of OpenGeodeWeb-Back might be problematic. Click here for more details.
- opengeodeweb_back/geode_functions.py +2 -2
- opengeodeweb_back/routes/blueprint_routes.py +92 -182
- opengeodeweb_back/routes/create/blueprint_create.py +24 -70
- opengeodeweb_back/routes/create/schemas/__init__.py +2 -0
- opengeodeweb_back/routes/create/schemas/create_aoi.py +19 -0
- opengeodeweb_back/routes/create/schemas/create_point.py +10 -0
- opengeodeweb_back/routes/models/blueprint_models.py +22 -27
- opengeodeweb_back/routes/models/schemas/__init__.py +2 -0
- opengeodeweb_back/routes/models/schemas/mesh_components.py +7 -0
- opengeodeweb_back/routes/models/schemas/vtm_component_indices.py +7 -0
- opengeodeweb_back/routes/schemas/__init__.py +14 -0
- opengeodeweb_back/routes/schemas/allowed_files.py +8 -0
- opengeodeweb_back/routes/schemas/allowed_objects.py +9 -0
- opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +8 -0
- opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +7 -0
- opengeodeweb_back/routes/schemas/inspect_file.py +8 -0
- opengeodeweb_back/routes/schemas/kill.py +7 -0
- opengeodeweb_back/routes/schemas/missing_files.py +8 -0
- opengeodeweb_back/routes/schemas/ping.py +7 -0
- opengeodeweb_back/routes/schemas/polygon_attribute_names.py +7 -0
- opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +7 -0
- opengeodeweb_back/routes/schemas/save_viewable_file.py +8 -0
- opengeodeweb_back/routes/schemas/texture_coordinates.py +7 -0
- opengeodeweb_back/routes/schemas/upload_file.py +8 -0
- opengeodeweb_back/routes/schemas/vertex_attribute_names.py +7 -0
- opengeodeweb_back/utils_functions.py +2 -4
- {opengeodeweb_back-5.11.0.dist-info → opengeodeweb_back-5.11.1rc1.dist-info}/METADATA +2 -2
- opengeodeweb_back-5.11.1rc1.dist-info/RECORD +56 -0
- opengeodeweb_back-5.11.0.dist-info/RECORD +0 -35
- {opengeodeweb_back-5.11.0.dist-info → opengeodeweb_back-5.11.1rc1.dist-info}/WHEEL +0 -0
- {opengeodeweb_back-5.11.0.dist-info → opengeodeweb_back-5.11.1rc1.dist-info}/entry_points.txt +0 -0
- {opengeodeweb_back-5.11.0.dist-info → opengeodeweb_back-5.11.1rc1.dist-info}/licenses/LICENSE +0 -0
- {opengeodeweb_back-5.11.0.dist-info → opengeodeweb_back-5.11.1rc1.dist-info}/top_level.txt +0 -0
|
@@ -175,7 +175,7 @@ def filter_geode_objects(key: str = None):
|
|
|
175
175
|
return geode_objects_filtered_list
|
|
176
176
|
|
|
177
177
|
|
|
178
|
-
def list_input_extensions(key: str = None):
|
|
178
|
+
def list_input_extensions(key: str | None = None) -> list[str]:
|
|
179
179
|
extensions_list = []
|
|
180
180
|
geode_objects_filtered_list = filter_geode_objects(key)
|
|
181
181
|
for geode_object in geode_objects_filtered_list:
|
|
@@ -192,7 +192,7 @@ def has_creator(geode_object: str, extension: str):
|
|
|
192
192
|
|
|
193
193
|
def list_geode_objects(
|
|
194
194
|
file_absolute_path: str,
|
|
195
|
-
key: str = None,
|
|
195
|
+
key: str | None = None,
|
|
196
196
|
):
|
|
197
197
|
return_dict = {}
|
|
198
198
|
file_extension = utils_functions.extension_from_filename(
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
# Standard library imports
|
|
2
|
-
import json
|
|
3
2
|
import os
|
|
4
3
|
import time
|
|
5
4
|
|
|
6
5
|
# Third party imports
|
|
7
6
|
import flask
|
|
8
|
-
import opengeode
|
|
9
7
|
import werkzeug
|
|
8
|
+
from opengeodeweb_microservice.schemas import get_schemas_dict
|
|
10
9
|
|
|
11
10
|
# Local application imports
|
|
12
|
-
from
|
|
13
|
-
from opengeodeweb_microservice.database.data import Data
|
|
14
|
-
from opengeodeweb_microservice.database.connection import get_session
|
|
11
|
+
from opengeodeweb_back import geode_functions, utils_functions
|
|
15
12
|
from .models import blueprint_models
|
|
13
|
+
from . import schemas
|
|
16
14
|
|
|
17
15
|
routes = flask.Blueprint("routes", __name__, url_prefix="/opengeodeweb_back")
|
|
18
16
|
|
|
@@ -23,39 +21,25 @@ routes.register_blueprint(
|
|
|
23
21
|
name=blueprint_models.routes.name,
|
|
24
22
|
)
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
with open(
|
|
29
|
-
os.path.join(schemas, "allowed_files.json"),
|
|
30
|
-
"r",
|
|
31
|
-
) as file:
|
|
32
|
-
allowed_files_json = json.load(file)
|
|
24
|
+
schemas_dict = get_schemas_dict(os.path.join(os.path.dirname(__file__), "schemas"))
|
|
33
25
|
|
|
34
26
|
|
|
35
27
|
@routes.route(
|
|
36
|
-
|
|
37
|
-
methods=
|
|
28
|
+
schemas_dict["allowed_files"]["route"],
|
|
29
|
+
methods=schemas_dict["allowed_files"]["methods"],
|
|
38
30
|
)
|
|
39
|
-
def allowed_files():
|
|
40
|
-
utils_functions.validate_request(flask.request,
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
)
|
|
31
|
+
def allowed_files() -> flask.Response:
|
|
32
|
+
utils_functions.validate_request(flask.request, schemas_dict["allowed_files"])
|
|
33
|
+
params = schemas.AllowedFiles.from_dict(flask.request.get_json())
|
|
34
|
+
extensions = geode_functions.list_input_extensions(params.supported_feature)
|
|
44
35
|
return flask.make_response({"extensions": extensions}, 200)
|
|
45
36
|
|
|
46
37
|
|
|
47
|
-
with open(
|
|
48
|
-
os.path.join(schemas, "upload_file.json"),
|
|
49
|
-
"r",
|
|
50
|
-
) as file:
|
|
51
|
-
upload_file_json = json.load(file)
|
|
52
|
-
|
|
53
|
-
|
|
54
38
|
@routes.route(
|
|
55
|
-
|
|
56
|
-
methods=
|
|
39
|
+
schemas_dict["upload_file"]["route"],
|
|
40
|
+
methods=schemas_dict["upload_file"]["methods"],
|
|
57
41
|
)
|
|
58
|
-
def upload_file():
|
|
42
|
+
def upload_file() -> flask.Response:
|
|
59
43
|
if flask.request.method == "OPTIONS":
|
|
60
44
|
return flask.make_response({}, 200)
|
|
61
45
|
|
|
@@ -68,48 +52,34 @@ def upload_file():
|
|
|
68
52
|
return flask.make_response({"message": "File uploaded"}, 201)
|
|
69
53
|
|
|
70
54
|
|
|
71
|
-
with open(
|
|
72
|
-
os.path.join(schemas, "allowed_objects.json"),
|
|
73
|
-
"r",
|
|
74
|
-
) as file:
|
|
75
|
-
allowed_objects_json = json.load(file)
|
|
76
|
-
|
|
77
|
-
|
|
78
55
|
@routes.route(
|
|
79
|
-
|
|
80
|
-
methods=
|
|
56
|
+
schemas_dict["allowed_objects"]["route"],
|
|
57
|
+
methods=schemas_dict["allowed_objects"]["methods"],
|
|
81
58
|
)
|
|
82
|
-
def allowed_objects():
|
|
59
|
+
def allowed_objects() -> flask.Response:
|
|
83
60
|
if flask.request.method == "OPTIONS":
|
|
84
61
|
return flask.make_response({}, 200)
|
|
85
62
|
|
|
86
|
-
utils_functions.validate_request(flask.request,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
)
|
|
63
|
+
utils_functions.validate_request(flask.request, schemas_dict["allowed_objects"])
|
|
64
|
+
params = schemas.AllowedObjects.from_dict(flask.request.get_json())
|
|
65
|
+
file_absolute_path = geode_functions.upload_file_path(params.filename)
|
|
90
66
|
allowed_objects = geode_functions.list_geode_objects(
|
|
91
|
-
file_absolute_path,
|
|
67
|
+
file_absolute_path, params.supported_feature
|
|
92
68
|
)
|
|
93
69
|
return flask.make_response({"allowed_objects": allowed_objects}, 200)
|
|
94
70
|
|
|
95
71
|
|
|
96
|
-
with open(
|
|
97
|
-
os.path.join(schemas, "missing_files.json"),
|
|
98
|
-
"r",
|
|
99
|
-
) as file:
|
|
100
|
-
missing_files_json = json.load(file)
|
|
101
|
-
|
|
102
|
-
|
|
103
72
|
@routes.route(
|
|
104
|
-
|
|
105
|
-
methods=
|
|
73
|
+
schemas_dict["missing_files"]["route"],
|
|
74
|
+
methods=schemas_dict["missing_files"]["methods"],
|
|
106
75
|
)
|
|
107
|
-
def missing_files():
|
|
108
|
-
utils_functions.validate_request(flask.request,
|
|
109
|
-
|
|
76
|
+
def missing_files() -> flask.Response:
|
|
77
|
+
utils_functions.validate_request(flask.request, schemas_dict["missing_files"])
|
|
78
|
+
params = schemas.MissingFiles.from_dict(flask.request.get_json())
|
|
79
|
+
file_path = geode_functions.upload_file_path(params.filename)
|
|
110
80
|
|
|
111
81
|
additional_files = geode_functions.additional_files(
|
|
112
|
-
|
|
82
|
+
params.input_geode_object,
|
|
113
83
|
file_path,
|
|
114
84
|
)
|
|
115
85
|
|
|
@@ -139,22 +109,16 @@ def missing_files():
|
|
|
139
109
|
)
|
|
140
110
|
|
|
141
111
|
|
|
142
|
-
with open(
|
|
143
|
-
os.path.join(schemas, "geographic_coordinate_systems.json"),
|
|
144
|
-
"r",
|
|
145
|
-
) as file:
|
|
146
|
-
geographic_coordinate_systems_json = json.load(file)
|
|
147
|
-
|
|
148
|
-
|
|
149
112
|
@routes.route(
|
|
150
|
-
|
|
151
|
-
methods=
|
|
113
|
+
schemas_dict["geographic_coordinate_systems"]["route"],
|
|
114
|
+
methods=schemas_dict["geographic_coordinate_systems"]["methods"],
|
|
152
115
|
)
|
|
153
|
-
def crs_converter_geographic_coordinate_systems():
|
|
154
|
-
utils_functions.validate_request(
|
|
155
|
-
|
|
156
|
-
flask.request.get_json()["input_geode_object"]
|
|
116
|
+
def crs_converter_geographic_coordinate_systems() -> flask.Response:
|
|
117
|
+
utils_functions.validate_request(
|
|
118
|
+
flask.request, schemas_dict["geographic_coordinate_systems"]
|
|
157
119
|
)
|
|
120
|
+
params = schemas.GeographicCoordinateSystems.from_dict(flask.request.get_json())
|
|
121
|
+
infos = geode_functions.geographic_coordinate_systems(params.input_geode_object)
|
|
158
122
|
crs_list = []
|
|
159
123
|
for info in infos:
|
|
160
124
|
crs = {}
|
|
@@ -166,55 +130,36 @@ def crs_converter_geographic_coordinate_systems():
|
|
|
166
130
|
return flask.make_response({"crs_list": crs_list}, 200)
|
|
167
131
|
|
|
168
132
|
|
|
169
|
-
with open(
|
|
170
|
-
os.path.join(schemas, "inspect_file.json"),
|
|
171
|
-
"r",
|
|
172
|
-
) as file:
|
|
173
|
-
inspect_file_json = json.load(file)
|
|
174
|
-
|
|
175
|
-
|
|
176
133
|
@routes.route(
|
|
177
|
-
|
|
178
|
-
methods=
|
|
134
|
+
schemas_dict["inspect_file"]["route"],
|
|
135
|
+
methods=schemas_dict["inspect_file"]["methods"],
|
|
179
136
|
)
|
|
180
|
-
def inspect_file():
|
|
181
|
-
utils_functions.validate_request(flask.request,
|
|
182
|
-
|
|
183
|
-
file_path = geode_functions.upload_file_path(
|
|
184
|
-
data = geode_functions.load(
|
|
185
|
-
|
|
186
|
-
)
|
|
187
|
-
class_inspector = geode_functions.inspect(
|
|
188
|
-
flask.request.get_json()["input_geode_object"], data
|
|
189
|
-
)
|
|
137
|
+
def inspect_file() -> flask.Response:
|
|
138
|
+
utils_functions.validate_request(flask.request, schemas_dict["inspect_file"])
|
|
139
|
+
params = schemas.InspectFile.from_dict(flask.request.get_json())
|
|
140
|
+
file_path = geode_functions.upload_file_path(params.filename)
|
|
141
|
+
data = geode_functions.load(params.input_geode_object, file_path)
|
|
142
|
+
class_inspector = geode_functions.inspect(params.input_geode_object, data)
|
|
190
143
|
inspection_result = geode_functions.get_inspector_children(class_inspector)
|
|
191
144
|
return flask.make_response({"inspection_result": inspection_result}, 200)
|
|
192
145
|
|
|
193
146
|
|
|
194
|
-
with open(
|
|
195
|
-
os.path.join(schemas, "geode_objects_and_output_extensions.json"),
|
|
196
|
-
"r",
|
|
197
|
-
) as file:
|
|
198
|
-
geode_objects_and_output_extensions_json = json.load(file)
|
|
199
|
-
|
|
200
|
-
|
|
201
147
|
@routes.route(
|
|
202
|
-
|
|
203
|
-
methods=
|
|
148
|
+
schemas_dict["geode_objects_and_output_extensions"]["route"],
|
|
149
|
+
methods=schemas_dict["geode_objects_and_output_extensions"]["methods"],
|
|
204
150
|
)
|
|
205
|
-
def geode_objects_and_output_extensions():
|
|
151
|
+
def geode_objects_and_output_extensions() -> flask.Response:
|
|
206
152
|
utils_functions.validate_request(
|
|
207
|
-
flask.request,
|
|
153
|
+
flask.request, schemas_dict["geode_objects_and_output_extensions"]
|
|
208
154
|
)
|
|
209
|
-
|
|
155
|
+
params = schemas.GeodeObjectsAndOutputExtensions.from_dict(flask.request.get_json())
|
|
156
|
+
file_path = geode_functions.upload_file_path(params.filename)
|
|
210
157
|
data = geode_functions.load(
|
|
211
|
-
|
|
158
|
+
params.input_geode_object,
|
|
212
159
|
file_path,
|
|
213
160
|
)
|
|
214
161
|
geode_objects_and_output_extensions = (
|
|
215
|
-
geode_functions.geode_objects_output_extensions(
|
|
216
|
-
flask.request.get_json()["input_geode_object"], data
|
|
217
|
-
)
|
|
162
|
+
geode_functions.geode_objects_output_extensions(params.input_geode_object, data)
|
|
218
163
|
)
|
|
219
164
|
return flask.make_response(
|
|
220
165
|
{"geode_objects_and_output_extensions": geode_objects_and_output_extensions},
|
|
@@ -222,57 +167,44 @@ def geode_objects_and_output_extensions():
|
|
|
222
167
|
)
|
|
223
168
|
|
|
224
169
|
|
|
225
|
-
with open(
|
|
226
|
-
os.path.join(schemas, "save_viewable_file.json"),
|
|
227
|
-
"r",
|
|
228
|
-
) as file:
|
|
229
|
-
save_viewable_file_json = json.load(file)
|
|
230
|
-
|
|
231
|
-
|
|
232
170
|
@routes.route(
|
|
233
|
-
|
|
234
|
-
methods=
|
|
171
|
+
schemas_dict["save_viewable_file"]["route"],
|
|
172
|
+
methods=schemas_dict["save_viewable_file"]["methods"],
|
|
235
173
|
)
|
|
236
|
-
def save_viewable_file():
|
|
237
|
-
utils_functions.validate_request(flask.request,
|
|
174
|
+
def save_viewable_file() -> flask.Response:
|
|
175
|
+
utils_functions.validate_request(flask.request, schemas_dict["save_viewable_file"])
|
|
176
|
+
params = schemas.SaveViewableFile.from_dict(flask.request.get_json())
|
|
238
177
|
return flask.make_response(
|
|
239
178
|
utils_functions.generate_native_viewable_and_light_viewable_from_file(
|
|
240
|
-
geode_object=
|
|
241
|
-
input_filename=
|
|
179
|
+
geode_object=params.input_geode_object,
|
|
180
|
+
input_filename=params.filename,
|
|
242
181
|
),
|
|
243
182
|
200,
|
|
244
183
|
)
|
|
245
184
|
|
|
246
185
|
|
|
247
|
-
with open(os.path.join(schemas, "texture_coordinates.json"), "r") as file:
|
|
248
|
-
texture_coordinates_json = json.load(file)
|
|
249
|
-
|
|
250
|
-
|
|
251
186
|
@routes.route(
|
|
252
|
-
|
|
253
|
-
methods=
|
|
187
|
+
schemas_dict["texture_coordinates"]["route"],
|
|
188
|
+
methods=schemas_dict["texture_coordinates"]["methods"],
|
|
254
189
|
)
|
|
255
|
-
def texture_coordinates():
|
|
256
|
-
utils_functions.validate_request(flask.request,
|
|
257
|
-
|
|
190
|
+
def texture_coordinates() -> flask.Response:
|
|
191
|
+
utils_functions.validate_request(flask.request, schemas_dict["texture_coordinates"])
|
|
192
|
+
params = schemas.TextureCoordinates.from_dict(flask.request.get_json())
|
|
193
|
+
data = geode_functions.load_data(params.id)
|
|
258
194
|
texture_coordinates = data.texture_manager().texture_names()
|
|
259
195
|
return flask.make_response({"texture_coordinates": texture_coordinates}, 200)
|
|
260
196
|
|
|
261
197
|
|
|
262
|
-
with open(
|
|
263
|
-
os.path.join(schemas, "vertex_attribute_names.json"),
|
|
264
|
-
"r",
|
|
265
|
-
) as file:
|
|
266
|
-
vertex_attribute_names_json = json.load(file)
|
|
267
|
-
|
|
268
|
-
|
|
269
198
|
@routes.route(
|
|
270
|
-
|
|
271
|
-
methods=
|
|
199
|
+
schemas_dict["vertex_attribute_names"]["route"],
|
|
200
|
+
methods=schemas_dict["vertex_attribute_names"]["methods"],
|
|
272
201
|
)
|
|
273
|
-
def vertex_attribute_names():
|
|
274
|
-
utils_functions.validate_request(
|
|
275
|
-
|
|
202
|
+
def vertex_attribute_names() -> flask.Response:
|
|
203
|
+
utils_functions.validate_request(
|
|
204
|
+
flask.request, schemas_dict["vertex_attribute_names"]
|
|
205
|
+
)
|
|
206
|
+
params = schemas.VertexAttributeNames.from_dict(flask.request.get_json())
|
|
207
|
+
data = geode_functions.load_data(params.id)
|
|
276
208
|
vertex_attribute_names = data.vertex_attribute_manager().attribute_names()
|
|
277
209
|
return flask.make_response(
|
|
278
210
|
{
|
|
@@ -282,20 +214,16 @@ def vertex_attribute_names():
|
|
|
282
214
|
)
|
|
283
215
|
|
|
284
216
|
|
|
285
|
-
with open(
|
|
286
|
-
os.path.join(schemas, "polygon_attribute_names.json"),
|
|
287
|
-
"r",
|
|
288
|
-
) as file:
|
|
289
|
-
polygon_attribute_names_json = json.load(file)
|
|
290
|
-
|
|
291
|
-
|
|
292
217
|
@routes.route(
|
|
293
|
-
|
|
294
|
-
methods=
|
|
218
|
+
schemas_dict["polygon_attribute_names"]["route"],
|
|
219
|
+
methods=schemas_dict["polygon_attribute_names"]["methods"],
|
|
295
220
|
)
|
|
296
|
-
def polygon_attribute_names():
|
|
297
|
-
utils_functions.validate_request(
|
|
298
|
-
|
|
221
|
+
def polygon_attribute_names() -> flask.Response:
|
|
222
|
+
utils_functions.validate_request(
|
|
223
|
+
flask.request, schemas_dict["polygon_attribute_names"]
|
|
224
|
+
)
|
|
225
|
+
params = schemas.PolygonAttributeNames.from_dict(flask.request.get_json())
|
|
226
|
+
data = geode_functions.load_data(params.id)
|
|
299
227
|
polygon_attribute_names = data.polygon_attribute_manager().attribute_names()
|
|
300
228
|
return flask.make_response(
|
|
301
229
|
{
|
|
@@ -305,20 +233,16 @@ def polygon_attribute_names():
|
|
|
305
233
|
)
|
|
306
234
|
|
|
307
235
|
|
|
308
|
-
with open(
|
|
309
|
-
os.path.join(schemas, "polyhedron_attribute_names.json"),
|
|
310
|
-
"r",
|
|
311
|
-
) as file:
|
|
312
|
-
polyhedron_attribute_names_json = json.load(file)
|
|
313
|
-
|
|
314
|
-
|
|
315
236
|
@routes.route(
|
|
316
|
-
|
|
317
|
-
methods=
|
|
237
|
+
schemas_dict["polyhedron_attribute_names"]["route"],
|
|
238
|
+
methods=schemas_dict["polyhedron_attribute_names"]["methods"],
|
|
318
239
|
)
|
|
319
|
-
def polyhedron_attribute_names():
|
|
320
|
-
utils_functions.validate_request(
|
|
321
|
-
|
|
240
|
+
def polyhedron_attribute_names() -> flask.Response:
|
|
241
|
+
utils_functions.validate_request(
|
|
242
|
+
flask.request, schemas_dict["polyhedron_attribute_names"]
|
|
243
|
+
)
|
|
244
|
+
params = schemas.PolyhedronAttributeNames.from_dict(flask.request.get_json())
|
|
245
|
+
data = geode_functions.load_data(params.id)
|
|
322
246
|
polyhedron_attribute_names = data.polyhedron_attribute_manager().attribute_names()
|
|
323
247
|
return flask.make_response(
|
|
324
248
|
{
|
|
@@ -328,31 +252,17 @@ def polyhedron_attribute_names():
|
|
|
328
252
|
)
|
|
329
253
|
|
|
330
254
|
|
|
331
|
-
with open(
|
|
332
|
-
os.path.join(schemas, "ping.json"),
|
|
333
|
-
"r",
|
|
334
|
-
) as file:
|
|
335
|
-
ping_json = json.load(file)
|
|
336
|
-
|
|
337
|
-
|
|
338
255
|
@routes.route(
|
|
339
|
-
|
|
340
|
-
methods=
|
|
256
|
+
schemas_dict["ping"]["route"],
|
|
257
|
+
methods=schemas_dict["ping"]["methods"],
|
|
341
258
|
)
|
|
342
|
-
def ping():
|
|
343
|
-
utils_functions.validate_request(flask.request,
|
|
259
|
+
def ping() -> flask.Response:
|
|
260
|
+
utils_functions.validate_request(flask.request, schemas_dict["ping"])
|
|
344
261
|
flask.current_app.config.update(LAST_PING_TIME=time.time())
|
|
345
262
|
return flask.make_response({"message": "Flask server is running"}, 200)
|
|
346
263
|
|
|
347
264
|
|
|
348
|
-
|
|
349
|
-
os.path.join(schemas, "kill.json"),
|
|
350
|
-
"r",
|
|
351
|
-
) as file:
|
|
352
|
-
kill_json = json.load(file)
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
@routes.route(kill_json["route"], methods=kill_json["methods"])
|
|
265
|
+
@routes.route(schemas_dict["kill"]["route"], methods=schemas_dict["kill"]["methods"])
|
|
356
266
|
def kill() -> flask.Response:
|
|
357
267
|
print("Manual server kill, shutting down...", flush=True)
|
|
358
268
|
os._exit(0)
|
|
@@ -1,117 +1,71 @@
|
|
|
1
1
|
# Standard library imports
|
|
2
|
-
import json
|
|
3
2
|
import os
|
|
4
|
-
from typing import Any, TypedDict
|
|
5
3
|
|
|
6
4
|
# Third party imports
|
|
7
5
|
import flask
|
|
8
6
|
import opengeode
|
|
7
|
+
from opengeodeweb_microservice.schemas import get_schemas_dict
|
|
9
8
|
|
|
10
9
|
# Local application imports
|
|
11
10
|
from opengeodeweb_back import geode_functions, utils_functions
|
|
11
|
+
from . import schemas
|
|
12
12
|
|
|
13
13
|
routes = flask.Blueprint("create", __name__, url_prefix="/create")
|
|
14
|
-
|
|
14
|
+
schemas_dict = get_schemas_dict(os.path.join(os.path.dirname(__file__), "schemas"))
|
|
15
15
|
|
|
16
|
-
# --- Type definitions ---
|
|
17
|
-
type SchemaDict = dict[str, Any]
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class CreatePointParams(TypedDict):
|
|
26
|
-
name: str
|
|
27
|
-
x: float
|
|
28
|
-
y: float
|
|
29
|
-
z: float
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
class CreateAOIParams(TypedDict):
|
|
33
|
-
name: str
|
|
34
|
-
points: list[PointDict]
|
|
35
|
-
z: float
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# Load schemas
|
|
39
|
-
with open(os.path.join(schemas, "create_point.json"), "r") as file:
|
|
40
|
-
create_point_json: SchemaDict = json.load(file)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
@routes.route(create_point_json["route"], methods=create_point_json["methods"])
|
|
17
|
+
@routes.route(
|
|
18
|
+
schemas_dict["create_point"]["route"],
|
|
19
|
+
methods=schemas_dict["create_point"]["methods"],
|
|
20
|
+
)
|
|
44
21
|
def create_point() -> flask.Response:
|
|
45
22
|
"""Endpoint to create a single point in 3D space."""
|
|
46
23
|
print(f"create_point : {flask.request=}", flush=True)
|
|
47
|
-
utils_functions.validate_request(flask.request,
|
|
48
|
-
|
|
49
|
-
# Extract and validate data from request
|
|
50
|
-
params: CreatePointParams = flask.request.get_json()
|
|
51
|
-
name = params["name"]
|
|
52
|
-
x = params["x"]
|
|
53
|
-
y = params["y"]
|
|
54
|
-
z = params["z"]
|
|
24
|
+
utils_functions.validate_request(flask.request, schemas_dict["create_point"])
|
|
25
|
+
params = schemas.CreatePoint.from_dict(flask.request.get_json())
|
|
55
26
|
|
|
56
27
|
# Create the point
|
|
57
|
-
|
|
58
|
-
pointset = class_.create()
|
|
28
|
+
pointset = geode_functions.geode_object_class("PointSet3D").create()
|
|
59
29
|
builder = geode_functions.create_builder("PointSet3D", pointset)
|
|
60
|
-
builder.set_name(name)
|
|
61
|
-
builder.create_point(opengeode.Point3D([x, y, z]))
|
|
30
|
+
builder.set_name(params.name)
|
|
31
|
+
builder.create_point(opengeode.Point3D([params.x, params.y, params.z]))
|
|
62
32
|
|
|
63
33
|
# Save and get info
|
|
64
34
|
result = utils_functions.generate_native_viewable_and_light_viewable_from_object(
|
|
65
35
|
geode_object="PointSet3D",
|
|
66
36
|
data=pointset,
|
|
67
37
|
)
|
|
68
|
-
result["name"] = name
|
|
69
38
|
return flask.make_response(result, 200)
|
|
70
39
|
|
|
71
40
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
@routes.route(create_aoi_json["route"], methods=create_aoi_json["methods"])
|
|
41
|
+
@routes.route(
|
|
42
|
+
schemas_dict["create_aoi"]["route"], methods=schemas_dict["create_aoi"]["methods"]
|
|
43
|
+
)
|
|
78
44
|
def create_aoi() -> flask.Response:
|
|
79
45
|
"""Endpoint to create an Area of Interest (AOI) as an EdgedCurve3D."""
|
|
80
46
|
print(f"create_aoi : {flask.request=}", flush=True)
|
|
81
|
-
utils_functions.validate_request(flask.request,
|
|
82
|
-
|
|
83
|
-
# Extract and validate data from request
|
|
84
|
-
params: CreateAOIParams = flask.request.get_json()
|
|
85
|
-
name = params["name"]
|
|
86
|
-
points = params["points"]
|
|
87
|
-
z = params["z"]
|
|
47
|
+
utils_functions.validate_request(flask.request, schemas_dict["create_aoi"])
|
|
48
|
+
params = schemas.CreateAoi.from_dict(flask.request.get_json())
|
|
88
49
|
|
|
89
50
|
# Create the edged curve
|
|
90
|
-
|
|
91
|
-
edged_curve = class_.create()
|
|
51
|
+
edged_curve = geode_functions.geode_object_class("EdgedCurve3D").create()
|
|
92
52
|
builder = geode_functions.create_builder("EdgedCurve3D", edged_curve)
|
|
93
|
-
builder.set_name(name)
|
|
53
|
+
builder.set_name(params.name)
|
|
94
54
|
|
|
95
55
|
# Create vertices first
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
vertex_indices.append(vertex_id)
|
|
56
|
+
for point in params.points:
|
|
57
|
+
pp = opengeode.Point3D([point.x, point.y, params.z])
|
|
58
|
+
builder.create_point(opengeode.Point3D([point.x, point.y, params.z]))
|
|
100
59
|
|
|
101
60
|
# Create edges between consecutive vertices and close the loop
|
|
102
|
-
num_vertices = len(
|
|
61
|
+
num_vertices = len(params.points)
|
|
103
62
|
for i in range(num_vertices):
|
|
104
63
|
next_i = (i + 1) % num_vertices
|
|
105
|
-
|
|
106
|
-
builder.set_edge_vertex(opengeode.EdgeVertex(edge_id, 0), vertex_indices[i])
|
|
107
|
-
builder.set_edge_vertex(
|
|
108
|
-
opengeode.EdgeVertex(edge_id, 1), vertex_indices[next_i]
|
|
109
|
-
)
|
|
64
|
+
builder.create_edge_with_vertices(i, next_i)
|
|
110
65
|
|
|
111
66
|
# Save and get info
|
|
112
67
|
result = utils_functions.generate_native_viewable_and_light_viewable_from_object(
|
|
113
68
|
geode_object="EdgedCurve3D",
|
|
114
69
|
data=edged_curve,
|
|
115
70
|
)
|
|
116
|
-
result["name"] = name
|
|
117
71
|
return flask.make_response(result, 200)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from dataclasses_json import DataClassJsonMixin
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@dataclass
|
|
7
|
+
class Point(DataClassJsonMixin):
|
|
8
|
+
x: float
|
|
9
|
+
y: float
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@dataclass
|
|
13
|
+
class CreateAoi(DataClassJsonMixin):
|
|
14
|
+
name: str
|
|
15
|
+
"""Name of the AOI"""
|
|
16
|
+
|
|
17
|
+
points: List[Point]
|
|
18
|
+
z: float
|
|
19
|
+
id: Optional[str] = None
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import json
|
|
2
1
|
import os
|
|
3
2
|
import xml.etree.ElementTree as ET
|
|
4
3
|
import flask
|
|
5
|
-
from
|
|
4
|
+
from opengeodeweb_microservice.schemas import get_schemas_dict
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
schemas = os.path.join(os.path.dirname(__file__), "schemas")
|
|
6
|
+
from opengeodeweb_back import geode_functions, utils_functions
|
|
7
|
+
from . import schemas
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
routes = flask.Blueprint("models", __name__, url_prefix="/models")
|
|
10
|
+
schemas_dict = get_schemas_dict(os.path.join(os.path.dirname(__file__), "schemas"))
|
|
14
11
|
|
|
15
12
|
|
|
16
13
|
@routes.route(
|
|
17
|
-
|
|
14
|
+
schemas_dict["vtm_component_indices"]["route"],
|
|
15
|
+
methods=schemas_dict["vtm_component_indices"]["methods"],
|
|
18
16
|
)
|
|
19
|
-
def uuid_to_flat_index():
|
|
20
|
-
utils_functions.validate_request(
|
|
21
|
-
|
|
22
|
-
vtm_file_path = geode_functions.data_file_path(
|
|
23
|
-
flask.request.get_json().get("id"), "viewable.vtm"
|
|
17
|
+
def uuid_to_flat_index() -> flask.Response:
|
|
18
|
+
utils_functions.validate_request(
|
|
19
|
+
flask.request, schemas_dict["vtm_component_indices"]
|
|
24
20
|
)
|
|
21
|
+
params = schemas.VtmComponentIndices.from_dict(flask.request.get_json())
|
|
22
|
+
vtm_file_path = geode_functions.data_file_path(params.id, "viewable.vtm")
|
|
25
23
|
tree = ET.parse(vtm_file_path)
|
|
26
24
|
root = tree.find("vtkMultiBlockDataSet")
|
|
25
|
+
if root is None:
|
|
26
|
+
raise Exception("Failed to read viewable file")
|
|
27
27
|
uuid_to_flat_index = {}
|
|
28
28
|
current_index = 0
|
|
29
29
|
for elem in root.iter():
|
|
@@ -33,22 +33,17 @@ def uuid_to_flat_index():
|
|
|
33
33
|
return flask.make_response({"uuid_to_flat_index": uuid_to_flat_index}, 200)
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
@routes.route(
|
|
37
|
+
schemas_dict["mesh_components"]["route"],
|
|
38
|
+
methods=schemas_dict["mesh_components"]["methods"],
|
|
39
|
+
)
|
|
40
|
+
def extract_uuids_endpoint() -> flask.Response:
|
|
41
|
+
utils_functions.validate_request(flask.request, schemas_dict["mesh_components"])
|
|
42
|
+
params = schemas.MeshComponents.from_dict(flask.request.get_json())
|
|
43
|
+
model = geode_functions.load_data(params.id)
|
|
37
44
|
mesh_components = model.mesh_components()
|
|
38
45
|
uuid_dict = {}
|
|
39
46
|
for mesh_component, ids in mesh_components.items():
|
|
40
47
|
component_name = mesh_component.get()
|
|
41
48
|
uuid_dict[component_name] = [id.string() for id in ids]
|
|
42
|
-
return uuid_dict
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
with open(os.path.join(schemas, "mesh_components.json"), "r") as file:
|
|
46
|
-
mesh_components_json = json.load(file)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
@routes.route(mesh_components_json["route"], methods=mesh_components_json["methods"])
|
|
50
|
-
def extract_uuids_endpoint():
|
|
51
|
-
utils_functions.validate_request(flask.request, mesh_components_json)
|
|
52
|
-
model = geode_functions.load_data(flask.request.get_json().get("id"))
|
|
53
|
-
uuid_dict = extract_model_uuids(model)
|
|
54
49
|
return flask.make_response({"uuid_dict": uuid_dict}, 200)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from .vertex_attribute_names import *
|
|
2
|
+
from .upload_file import *
|
|
3
|
+
from .texture_coordinates import *
|
|
4
|
+
from .save_viewable_file import *
|
|
5
|
+
from .polyhedron_attribute_names import *
|
|
6
|
+
from .polygon_attribute_names import *
|
|
7
|
+
from .ping import *
|
|
8
|
+
from .missing_files import *
|
|
9
|
+
from .kill import *
|
|
10
|
+
from .inspect_file import *
|
|
11
|
+
from .geographic_coordinate_systems import *
|
|
12
|
+
from .geode_objects_and_output_extensions import *
|
|
13
|
+
from .allowed_objects import *
|
|
14
|
+
from .allowed_files import *
|
|
@@ -16,6 +16,7 @@ import werkzeug
|
|
|
16
16
|
|
|
17
17
|
# Local application imports
|
|
18
18
|
from . import geode_functions
|
|
19
|
+
from opengeodeweb_microservice.schemas import SchemaDict
|
|
19
20
|
from opengeodeweb_microservice.database.data import Data
|
|
20
21
|
from opengeodeweb_microservice.database.connection import get_session
|
|
21
22
|
|
|
@@ -97,7 +98,7 @@ def versions(list_packages: list[str]) -> list[dict[str, str]]:
|
|
|
97
98
|
return list_with_versions
|
|
98
99
|
|
|
99
100
|
|
|
100
|
-
def validate_request(request: flask.Request, schema:
|
|
101
|
+
def validate_request(request: flask.Request, schema: SchemaDict) -> None:
|
|
101
102
|
json_data = request.get_json(force=True, silent=True)
|
|
102
103
|
|
|
103
104
|
if json_data is None:
|
|
@@ -226,8 +227,6 @@ def generate_native_viewable_and_light_viewable_from_object(
|
|
|
226
227
|
data_entry = Data.create(
|
|
227
228
|
geode_object=geode_object,
|
|
228
229
|
viewer_object=geode_functions.get_object_type(geode_object),
|
|
229
|
-
input_file="",
|
|
230
|
-
additional_files=[],
|
|
231
230
|
)
|
|
232
231
|
data_path = create_data_folder_from_id(data_entry.id)
|
|
233
232
|
return save_all_viewables_and_return_info(geode_object, data, data_entry, data_path)
|
|
@@ -240,7 +239,6 @@ def generate_native_viewable_and_light_viewable_from_file(
|
|
|
240
239
|
geode_object=geode_object,
|
|
241
240
|
viewer_object=geode_functions.get_object_type(geode_object),
|
|
242
241
|
input_file=input_filename,
|
|
243
|
-
additional_files=[],
|
|
244
242
|
)
|
|
245
243
|
|
|
246
244
|
data_path = create_data_folder_from_id(data_entry.id)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenGeodeWeb-Back
|
|
3
|
-
Version: 5.11.
|
|
3
|
+
Version: 5.11.1rc1
|
|
4
4
|
Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
|
|
5
5
|
Author-email: Geode-solutions <team-web@geode-solutions.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
|
|
@@ -27,7 +27,7 @@ Requires-Dist: opengeode-geosciencesio==5.8.1
|
|
|
27
27
|
Requires-Dist: opengeode-inspector==6.8.2
|
|
28
28
|
Requires-Dist: opengeode-io==7.4.2
|
|
29
29
|
Requires-Dist: werkzeug==3.1.2
|
|
30
|
-
Requires-Dist: opengeodeweb-microservice==1.*,>=1.0.
|
|
30
|
+
Requires-Dist: opengeodeweb-microservice==1.*,>=1.0.6rc1
|
|
31
31
|
Dynamic: license-file
|
|
32
32
|
|
|
33
33
|
<h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
opengeodeweb_back/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
opengeodeweb_back/app.py,sha256=SX7csXbWxlfeazrgSYuplJu9Z4LxupCd5T8O6bFN36g,5090
|
|
3
|
+
opengeodeweb_back/app_config.py,sha256=z-omTiGj3-y0BZ1IchAM6EoTdC7vAX6B4OymEnuM0T4,843
|
|
4
|
+
opengeodeweb_back/geode_functions.py,sha256=ot7JTJCdAIV9VIgVHElEevYJgltIySBvxt0ToMckqcU,10831
|
|
5
|
+
opengeodeweb_back/geode_objects.py,sha256=_NclGPa024kCwUHdORkFuXYtiZBmQpgq6sO3LRkBhe8,27776
|
|
6
|
+
opengeodeweb_back/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8
|
|
7
|
+
opengeodeweb_back/test_utils.py,sha256=18AbRW9-tfKkPcmRGilTTHXI7S3armYyV7Vdy5UvUKM,794
|
|
8
|
+
opengeodeweb_back/utils_functions.py,sha256=lpsjkI1nN26t4yXPUHXTtYfjFZipHBLyqMgZD9Vy528,9348
|
|
9
|
+
opengeodeweb_back/routes/blueprint_routes.py,sha256=ZnngJ-nm2a2ByzN1gC0dcf7CBhzCrerNIqKx1PH5ySo,9471
|
|
10
|
+
opengeodeweb_back/routes/create/blueprint_create.py,sha256=QPqNW8pm5XdMdXODubMPt5v_fJ3g5yKhyanyMdBaFwo,2626
|
|
11
|
+
opengeodeweb_back/routes/create/schemas/__init__.py,sha256=4IibXXKIb2Z0miuAuAbooCq3ALeVwl0Ogg0DuJe3uqo,54
|
|
12
|
+
opengeodeweb_back/routes/create/schemas/create_aoi.json,sha256=bFL5ZqhKAKsBmGwIQANzdIp1vGeH5WAHnRpZYsUZ1tQ,999
|
|
13
|
+
opengeodeweb_back/routes/create/schemas/create_aoi.py,sha256=cAquXr36qscsBJIZVstnh6MYNhbAAw-5hIT8cWC4DGw,345
|
|
14
|
+
opengeodeweb_back/routes/create/schemas/create_point.json,sha256=ddfDzWKj4cMYhF6oJzvRh0bpTiQo1hqLFODK-vJjxHQ,484
|
|
15
|
+
opengeodeweb_back/routes/create/schemas/create_point.py,sha256=WOBtyhRYd_QDtmQLOyQANoZxw7lx-271oL6RHn93Bus,187
|
|
16
|
+
opengeodeweb_back/routes/models/blueprint_models.py,sha256=nSI-yorSfj3SCQbKNnz8AQglKDKFC21Es-VlFdU2C6A,1935
|
|
17
|
+
opengeodeweb_back/routes/models/schemas/__init__.py,sha256=kNhYSdP7ti6BEalSO3fNfJJf_S7u0kEQDFRdBTDVNQY,68
|
|
18
|
+
opengeodeweb_back/routes/models/schemas/mesh_components.json,sha256=JmQUvpy7HpGS6FlThZLx1YjHqiInRTqUZ_Ft5MfOzEE,239
|
|
19
|
+
opengeodeweb_back/routes/models/schemas/mesh_components.py,sha256=qjbOb4yvIOTyzZ9GMufYs2b_jbU-Vh6F-cAPA8UMatk,149
|
|
20
|
+
opengeodeweb_back/routes/models/schemas/vtm_component_indices.json,sha256=0XILVxhAxi0RhQFDZZoUeGcAnBMroWz3kNJS7-6_dKQ,239
|
|
21
|
+
opengeodeweb_back/routes/models/schemas/vtm_component_indices.py,sha256=ky2OptukQp9ioMOgoQkXW_EWy5WAsY9aGXuMMT4BLZg,154
|
|
22
|
+
opengeodeweb_back/routes/schemas/__init__.py,sha256=dj4cevHiakkiHR4bynqd4Mo75gwmBQwhfucVj6WdEL8,468
|
|
23
|
+
opengeodeweb_back/routes/schemas/allowed_files.json,sha256=pRsGf39LiJpl3zEGLg4IqvRtm7iUx3Wq4Tb4tSFXGV0,234
|
|
24
|
+
opengeodeweb_back/routes/schemas/allowed_files.py,sha256=tDOH58oBeTeeIS4CqHjgMd7TgSEIFXKtYElIuTEhSIA,207
|
|
25
|
+
opengeodeweb_back/routes/schemas/allowed_objects.json,sha256=oy_YYpFzgDICx-keWqNIUpQM3zzB4eE3H6mPNxH9rWc,361
|
|
26
|
+
opengeodeweb_back/routes/schemas/allowed_objects.py,sha256=Ov82leuMXKUCIJvvxO_Ms3Tf9tqsU1yJGIv4mBwG9QE,227
|
|
27
|
+
opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json,sha256=tp83tPQaxTltQrdL8D3TnG8pqY_2fgAaYVeTWPXO0qI,371
|
|
28
|
+
opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py,sha256=RFdr-thObKND33WJ7JI7JkBkozJ4C8aKO8ZlofeCJs4,200
|
|
29
|
+
opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json,sha256=lnPqevRRlUASF4ObmpG8ChH3c2LHNB99Si292S3OsLU,279
|
|
30
|
+
opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py,sha256=FLh9V1zK8ICttpEjnNO-5ND_b0FOp7WbjUue5ohnNEI,178
|
|
31
|
+
opengeodeweb_back/routes/schemas/inspect_file.json,sha256=WoFF2hgZCUfqSDFJRq1sLpivjCQ6TCvSHPH8pKFY6KM,348
|
|
32
|
+
opengeodeweb_back/routes/schemas/inspect_file.py,sha256=hU0HWhypidcLuOZFAs1jffEKxxZ5V-4YR4DuBQRuxgs,180
|
|
33
|
+
opengeodeweb_back/routes/schemas/kill.json,sha256=tZEv4TuTNNthet2MsxUPLV3ivW6tIGjYTfxd6Jl9zaM,144
|
|
34
|
+
opengeodeweb_back/routes/schemas/kill.py,sha256=H1Vgo6wN-TITi889SCijzw_JScwSZcVq81_UfvQyIwQ,136
|
|
35
|
+
opengeodeweb_back/routes/schemas/missing_files.json,sha256=eOBAkiphA-2xG6e-OAy7wcJK2FeY0YFYXJlLdr8SNSc,349
|
|
36
|
+
opengeodeweb_back/routes/schemas/missing_files.py,sha256=YZY9ONvd3OrEZA8ac68xLdualtzLMbukAhMaNCtzr9A,181
|
|
37
|
+
opengeodeweb_back/routes/schemas/ping.json,sha256=MhI5jtrjMsAsfIKEzdY8p1HyV9xv4O3hYfESWw6tkyE,162
|
|
38
|
+
opengeodeweb_back/routes/schemas/ping.py,sha256=J34dAqLmHdMKw-slfrrQD3Jh57XB-i6L_NrTfNy-KpI,136
|
|
39
|
+
opengeodeweb_back/routes/schemas/polygon_attribute_names.json,sha256=1BrpfjcbRL1ZOL4azHIHirqXIc8tpu4xGnMRFEMEshU,241
|
|
40
|
+
opengeodeweb_back/routes/schemas/polygon_attribute_names.py,sha256=e9CjlQ-kEj5Ilbm0xMdLVxONHBcDJi65IlkGhV48xSg,156
|
|
41
|
+
opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json,sha256=Tt6fWBGOWgxOVC-n76_JbOQcZ-Ss-foPghMrQOY-DIE,244
|
|
42
|
+
opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py,sha256=kKRdCTuse75leBA1WomAsl_3iC9kbaS4L-a9n2YfH-c,159
|
|
43
|
+
opengeodeweb_back/routes/schemas/save_viewable_file.json,sha256=pvvEdaC7bNASPMrl3bXzlcA5blgflK0EYp2hBDf74qY,424
|
|
44
|
+
opengeodeweb_back/routes/schemas/save_viewable_file.py,sha256=5KTdx7bPEHXWPFxrUSxe9MsM0NU0o9v3k4ZZMdl3b8I,185
|
|
45
|
+
opengeodeweb_back/routes/schemas/texture_coordinates.json,sha256=2uQueIl1jOmxFG_gIi_vJETR4IurrwuSf8GAnzphk9g,237
|
|
46
|
+
opengeodeweb_back/routes/schemas/texture_coordinates.py,sha256=OdN-yTmPzxU510Ll5ZNm_ebYzAgC8NsQBfBu-qlnaY0,153
|
|
47
|
+
opengeodeweb_back/routes/schemas/upload_file.json,sha256=LJ3U3L5ApKuQDVFIpVT_y2alq4HW_suTvZ3HUucNbhg,219
|
|
48
|
+
opengeodeweb_back/routes/schemas/upload_file.py,sha256=lCgK21UiXYk0BSNsW8BZil9O67gobwie6YdT1ahYuhs,196
|
|
49
|
+
opengeodeweb_back/routes/schemas/vertex_attribute_names.json,sha256=ECIflohiqPZNsflAdkfEzksL4we0JvZhIxUd84Ubctg,240
|
|
50
|
+
opengeodeweb_back/routes/schemas/vertex_attribute_names.py,sha256=aOVLsOuAxxzm-0B04wKZ-mCwoLv8uKGTB6sbuBNlX7g,155
|
|
51
|
+
opengeodeweb_back-5.11.1rc1.dist-info/licenses/LICENSE,sha256=LoTB-aqQvzTGxoTRXNnhNV0LKiqdk2bQv6MB34l8zkI,1079
|
|
52
|
+
opengeodeweb_back-5.11.1rc1.dist-info/METADATA,sha256=stYHREZ8qvyz_lHIm6lnGtFTYp9fsZqNlFaJBuSLmC8,2668
|
|
53
|
+
opengeodeweb_back-5.11.1rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
54
|
+
opengeodeweb_back-5.11.1rc1.dist-info/entry_points.txt,sha256=3W_t5GFc9ROHSIZ55IGvYU3DLHUFQmYOM4Bm9u3Z0cE,71
|
|
55
|
+
opengeodeweb_back-5.11.1rc1.dist-info/top_level.txt,sha256=tN1FZeLIVBrdja2-pbmhg5-tK-JILmmT9OeIBnhlUrQ,18
|
|
56
|
+
opengeodeweb_back-5.11.1rc1.dist-info/RECORD,,
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
opengeodeweb_back/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
opengeodeweb_back/app.py,sha256=SX7csXbWxlfeazrgSYuplJu9Z4LxupCd5T8O6bFN36g,5090
|
|
3
|
-
opengeodeweb_back/app_config.py,sha256=z-omTiGj3-y0BZ1IchAM6EoTdC7vAX6B4OymEnuM0T4,843
|
|
4
|
-
opengeodeweb_back/geode_functions.py,sha256=NzELy9s6AETDnm7tyA_uM2N89zrfeLdblRhzYrBONmw,10804
|
|
5
|
-
opengeodeweb_back/geode_objects.py,sha256=_NclGPa024kCwUHdORkFuXYtiZBmQpgq6sO3LRkBhe8,27776
|
|
6
|
-
opengeodeweb_back/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8
|
|
7
|
-
opengeodeweb_back/test_utils.py,sha256=18AbRW9-tfKkPcmRGilTTHXI7S3armYyV7Vdy5UvUKM,794
|
|
8
|
-
opengeodeweb_back/utils_functions.py,sha256=gGhNENDyx9ooO1Mb7KWLfgGCJ9F2DZMRpp9EXzEmb9A,9376
|
|
9
|
-
opengeodeweb_back/routes/blueprint_routes.py,sha256=xOcC_Urp8C62zX1XJ4ILQPicObPhoYBI-38ObGYH-UA,10251
|
|
10
|
-
opengeodeweb_back/routes/create/blueprint_create.py,sha256=rHZbpIJ0dhpWCe8agWMFJCg1uSFiTBGjCO9bnktYyUY,3557
|
|
11
|
-
opengeodeweb_back/routes/create/schemas/create_aoi.json,sha256=bFL5ZqhKAKsBmGwIQANzdIp1vGeH5WAHnRpZYsUZ1tQ,999
|
|
12
|
-
opengeodeweb_back/routes/create/schemas/create_point.json,sha256=ddfDzWKj4cMYhF6oJzvRh0bpTiQo1hqLFODK-vJjxHQ,484
|
|
13
|
-
opengeodeweb_back/routes/models/blueprint_models.py,sha256=Jo9pUDeu1nO3_IbBiuHGk57cc4_fhwxjM0EKNyv1FT0,1874
|
|
14
|
-
opengeodeweb_back/routes/models/schemas/mesh_components.json,sha256=JmQUvpy7HpGS6FlThZLx1YjHqiInRTqUZ_Ft5MfOzEE,239
|
|
15
|
-
opengeodeweb_back/routes/models/schemas/vtm_component_indices.json,sha256=0XILVxhAxi0RhQFDZZoUeGcAnBMroWz3kNJS7-6_dKQ,239
|
|
16
|
-
opengeodeweb_back/routes/schemas/allowed_files.json,sha256=pRsGf39LiJpl3zEGLg4IqvRtm7iUx3Wq4Tb4tSFXGV0,234
|
|
17
|
-
opengeodeweb_back/routes/schemas/allowed_objects.json,sha256=oy_YYpFzgDICx-keWqNIUpQM3zzB4eE3H6mPNxH9rWc,361
|
|
18
|
-
opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json,sha256=tp83tPQaxTltQrdL8D3TnG8pqY_2fgAaYVeTWPXO0qI,371
|
|
19
|
-
opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json,sha256=lnPqevRRlUASF4ObmpG8ChH3c2LHNB99Si292S3OsLU,279
|
|
20
|
-
opengeodeweb_back/routes/schemas/inspect_file.json,sha256=WoFF2hgZCUfqSDFJRq1sLpivjCQ6TCvSHPH8pKFY6KM,348
|
|
21
|
-
opengeodeweb_back/routes/schemas/kill.json,sha256=tZEv4TuTNNthet2MsxUPLV3ivW6tIGjYTfxd6Jl9zaM,144
|
|
22
|
-
opengeodeweb_back/routes/schemas/missing_files.json,sha256=eOBAkiphA-2xG6e-OAy7wcJK2FeY0YFYXJlLdr8SNSc,349
|
|
23
|
-
opengeodeweb_back/routes/schemas/ping.json,sha256=MhI5jtrjMsAsfIKEzdY8p1HyV9xv4O3hYfESWw6tkyE,162
|
|
24
|
-
opengeodeweb_back/routes/schemas/polygon_attribute_names.json,sha256=1BrpfjcbRL1ZOL4azHIHirqXIc8tpu4xGnMRFEMEshU,241
|
|
25
|
-
opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json,sha256=Tt6fWBGOWgxOVC-n76_JbOQcZ-Ss-foPghMrQOY-DIE,244
|
|
26
|
-
opengeodeweb_back/routes/schemas/save_viewable_file.json,sha256=pvvEdaC7bNASPMrl3bXzlcA5blgflK0EYp2hBDf74qY,424
|
|
27
|
-
opengeodeweb_back/routes/schemas/texture_coordinates.json,sha256=2uQueIl1jOmxFG_gIi_vJETR4IurrwuSf8GAnzphk9g,237
|
|
28
|
-
opengeodeweb_back/routes/schemas/upload_file.json,sha256=LJ3U3L5ApKuQDVFIpVT_y2alq4HW_suTvZ3HUucNbhg,219
|
|
29
|
-
opengeodeweb_back/routes/schemas/vertex_attribute_names.json,sha256=ECIflohiqPZNsflAdkfEzksL4we0JvZhIxUd84Ubctg,240
|
|
30
|
-
opengeodeweb_back-5.11.0.dist-info/licenses/LICENSE,sha256=LoTB-aqQvzTGxoTRXNnhNV0LKiqdk2bQv6MB34l8zkI,1079
|
|
31
|
-
opengeodeweb_back-5.11.0.dist-info/METADATA,sha256=na4X9UmOyw0MUsZKYjRBtyZCUp5qgtk-lVnedL501R4,2662
|
|
32
|
-
opengeodeweb_back-5.11.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
33
|
-
opengeodeweb_back-5.11.0.dist-info/entry_points.txt,sha256=3W_t5GFc9ROHSIZ55IGvYU3DLHUFQmYOM4Bm9u3Z0cE,71
|
|
34
|
-
opengeodeweb_back-5.11.0.dist-info/top_level.txt,sha256=tN1FZeLIVBrdja2-pbmhg5-tK-JILmmT9OeIBnhlUrQ,18
|
|
35
|
-
opengeodeweb_back-5.11.0.dist-info/RECORD,,
|
|
File without changes
|
{opengeodeweb_back-5.11.0.dist-info → opengeodeweb_back-5.11.1rc1.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{opengeodeweb_back-5.11.0.dist-info → opengeodeweb_back-5.11.1rc1.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|