Skip to content

Commit e207aa8

Browse files
add requirements.txt
add functions
1 parent 6e6c671 commit e207aa8

File tree

4 files changed

+149
-103
lines changed

4 files changed

+149
-103
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.pytest_cache
22
dist
3-
venv
3+
venv
4+
__pycache__

requirements.txt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.9
3+
# by the following command:
4+
#
5+
# pip-compile requirements.in
6+
#
7+
geode-common==26.3.0
8+
# via geode-viewables
9+
geode-viewables==2.1.0
10+
# via -r requirements.in
11+
opengeode-core==14.8.0
12+
# via
13+
# -r requirements.in
14+
# geode-viewables
15+
# opengeode-geosciences
16+
# opengeode-geosciencesio
17+
# opengeode-inspector
18+
# opengeode-io
19+
opengeode-geosciences==7.2.0
20+
# via
21+
# -r requirements.in
22+
# geode-viewables
23+
# opengeode-geosciencesio
24+
# opengeode-inspector
25+
opengeode-geosciencesio==4.5.0
26+
# via
27+
# -r requirements.in
28+
# opengeode-inspector
29+
opengeode-inspector==3.1.0
30+
# via -r requirements.in
31+
opengeode-io==6.2.0
32+
# via
33+
# -r requirements.in
34+
# geode-viewables
35+
# opengeode-inspector

src/opengeodeweb_back/geode_functions.py

Lines changed: 111 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,99 @@
1616
from .geode_objects import objects_list
1717

1818

19+
def get_input(geode_object: str):
20+
return objects_list()[geode_object]["input"]
21+
22+
23+
def get_output(geode_object: str):
24+
return objects_list()[geode_object]["output"]
25+
26+
27+
def load(geode_object: str, file_absolute_path: str):
28+
return objects_list()[geode_object]["load"](file_absolute_path)
29+
30+
31+
def save(geode_object: str, data, folder_absolute_path: str, filename: str):
32+
return objects_list()[geode_object]["save"](
33+
data, os.path.join(folder_absolute_path, filename)
34+
)
35+
36+
37+
def get_builder(geode_object: str, data):
38+
return objects_list()[geode_object]["builder"](data)
39+
40+
41+
def assign_crs(geode_object: str, data, crs_name: str, info):
42+
builder = get_builder(geode_object, data)
43+
objects_list()[geode_object]["crs"]["assign"](data, builder, crs_name, info)
44+
45+
46+
def convert_crs(geode_object: str, data, crs_name: str, info):
47+
builder = get_builder(geode_object, data)
48+
objects_list()[geode_object]["crs"]["convert"](data, builder, crs_name, info)
49+
50+
51+
def create_coordinate_system(
52+
geode_object: str,
53+
data,
54+
name: str,
55+
input_coordiante_system,
56+
output_coordiante_system,
57+
):
58+
builder = get_builder(geode_object, data)
59+
objects_list()[geode_object]["crs"]["create"](
60+
data, builder, name, input_coordiante_system, output_coordiante_system
61+
)
62+
63+
64+
def is_model(geode_object: str):
65+
return objects_list()[geode_object]["is_model"]
66+
67+
68+
def is_3D(geode_object: str):
69+
return objects_list()[geode_object]["is_3D"]
70+
71+
72+
def is_viewable(geode_object: str):
73+
return objects_list()[geode_object]["is_viewable"]
74+
75+
76+
def save_viewable(geode_object: str, data, folder_absolute_path: str, id: str):
77+
return objects_list()[geode_object]["save_viewable"](
78+
data, os.path.join(folder_absolute_path, id)
79+
)
80+
81+
82+
def get_inspector(geode_object: str, data):
83+
return objects_list()[geode_object]["inspector"](data)
84+
85+
86+
def get_geode_object_input_extensions(geode_object: str):
87+
inputs_list = []
88+
geode_object_inputs = get_input(geode_object)
89+
90+
for input in geode_object_inputs:
91+
list_creators = input.list_creators()
92+
inputs_list = inputs_list + list_creators
93+
inputs_list = list(set(inputs_list))
94+
inputs_list.sort()
95+
return inputs_list
96+
97+
98+
def get_geode_object_output_extensions(geode_object: str):
99+
output_list = []
100+
geode_object_outputs = get_output(geode_object)
101+
102+
for output in geode_object_outputs:
103+
list_creators = output.list_creators()
104+
output_list = output_list + list_creators
105+
output_list = list(set(output_list))
106+
output_list.sort()
107+
return output_list
108+
109+
19110
def list_input_extensions(
20111
keys: list = [],
21-
geode_object: str = "",
22112
):
23113
"""
24114
Purpose:
@@ -30,9 +120,8 @@ def list_input_extensions(
30120
An ordered list of input file extensions
31121
"""
32122
extensions_list = []
33-
geode_object_dict = objects_list()
34123

35-
for geode_object in geode_object_dict.values():
124+
for geode_object, value in objects_list().items():
36125
if keys:
37126
for key in keys:
38127
if key in geode_object:
@@ -43,18 +132,15 @@ def list_input_extensions(
43132
else:
44133
continue
45134

46-
values = geode_object["input"]
135+
geode_object_list_inputs = get_geode_object_input_extensions(geode_object)
136+
extensions_list = extensions_list + geode_object_list_inputs
47137

48-
for value in values:
49-
list_creators = value.list_creators()
50-
for creator in list_creators:
51-
if creator not in extensions_list:
52-
extensions_list.append(creator)
138+
extensions_list = list(set(extensions_list))
53139
extensions_list.sort()
54140
return extensions_list
55141

56142

57-
def list_objects(extension: str, is_viewable: bool = True):
143+
def list_geode_objects(extension: str, keys: list = []):
58144
"""
59145
Purpose:
60146
Function that returns a list of objects that can handle a file, given his extension
@@ -63,40 +149,16 @@ def list_objects(extension: str, is_viewable: bool = True):
63149
Returns:
64150
An ordered list of object's names
65151
"""
66-
return_list = []
67-
geode_object_dict = objects_list()
152+
geode_objects_list = []
68153

69-
for object_, values in geode_object_dict.items():
70-
# if values["is_viewable"] == is_viewable:
71-
list_values = values["input"]
72-
for value in list_values:
73-
if value.has_creator(extension):
74-
if object_ not in return_list:
75-
return_list.append(object_)
76-
return_list.sort()
77-
return return_list
78-
79-
80-
def list_output_file_extensions(object: str):
81-
"""
82-
Purpose:
83-
Function that returns a list of output file extensions that can be handled by an object
84-
Args:
85-
object -- The name of the object
86-
Returns:
87-
An ordered list of file extensions
88-
"""
89-
List = []
90-
geode_object_dict = objects_list()
91-
92-
values = geode_object_dict[object]["output"]
93-
for value in values:
94-
list_creators = value.list_creators()
95-
for creator in list_creators:
96-
if creator not in List:
97-
List.append(creator)
98-
List.sort()
99-
return List
154+
for geode_object, value in objects_list().items():
155+
geode_object_inputs = get_geode_object_input(geode_object)
156+
for input in geode_object_inputs:
157+
if input.has_creator(extension):
158+
if geode_object not in geode_objects_list:
159+
geode_objects_list.append(geode_object)
160+
geode_objects_list.sort()
161+
return geode_objects_list
100162

101163

102164
def get_versions(list_packages: list):
@@ -168,64 +230,12 @@ def func_wrapper():
168230
return t
169231

170232

171-
def is_model(geode_object):
172-
return objects_list()[geode_object]["is_model"]
173-
174-
175-
def is_3D(geode_object):
176-
return objects_list()[geode_object]["is_3D"]
177-
178-
179-
def get_builder(geode_object, data):
180-
return objects_list()[geode_object]["builder"](data)
181-
182-
183-
def get_inspector(geode_object, data):
184-
return objects_list()[geode_object]["inspector"](data)
185-
186-
187-
def load(geode_object, file_absolute_path):
188-
return objects_list()[geode_object]["load"](file_absolute_path)
189-
190-
191-
def save(geode_object, data, folder_absolute_path, filename):
192-
objects_list()[geode_object]["save"](
193-
data, os.path.join(folder_absolute_path, filename)
194-
)
195-
196-
197-
def save_viewable(geode_object, data, folder_absolute_path, id):
198-
objects_list()[geode_object]["save_viewable"](
199-
data, os.path.join(folder_absolute_path, id)
200-
)
201-
202-
203-
def assign_crs(geode_object, data, crs_name, info):
204-
builder = get_builder(geode_object, data)
205-
objects_list()[geode_object]["crs"]["assign"](data, builder, crs_name, info)
206-
207-
208-
def convert_crs(geode_object, data, crs_name, info):
209-
builder = get_builder(geode_object, data)
210-
objects_list()[geode_object]["crs"]["convert"](data, builder, crs_name, info)
211-
212-
213-
def create_crs(
214-
geode_object, data, name, input_coordiante_system, output_coordiante_system
215-
):
216-
builder = get_builder(geode_object, data)
217-
objects_list()[geode_object]["crs"]["create"](
218-
data, builder, name, input_coordiante_system, output_coordiante_system
219-
)
220-
221-
222233
def get_extension_from_filename(filename):
223234
return os.path.splitext(filename)[1][1:]
224235

225236

226237
def get_form_variables(form, variables_array):
227238
variables_dict = {}
228-
229239
for variable in variables_array:
230240
if form.get(variable) is None:
231241
flask.abort(400, f"No {variable} sent")
@@ -234,14 +244,14 @@ def get_form_variables(form, variables_array):
234244
return variables_dict
235245

236246

237-
def get_geographic_coordinate_systems(geode_object):
247+
def get_geographic_coordinate_systems(geode_object: str):
238248
if is_3D(geode_object):
239249
return og_gs.GeographicCoordinateSystem3D.geographic_coordinate_systems()
240250
else:
241251
return og_gs.GeographicCoordinateSystem2D.geographic_coordinate_systems()
242252

243253

244-
def get_geographic_coordinate_systems_info(geode_object, crs):
254+
def get_geographic_coordinate_systems_info(geode_object: str, crs):
245255
if is_3D(geode_object):
246256
return og_gs.GeographicCoordinateSystemInfo3D(
247257
crs["authority"], crs["code"], crs["name"]
@@ -252,7 +262,7 @@ def get_geographic_coordinate_systems_info(geode_object, crs):
252262
)
253263

254264

255-
def get_coordinate_system(geode_object, coordinate_system):
265+
def get_coordinate_system(geode_object: str, coordinate_system):
256266
return og.CoordinateSystem2D(
257267
[
258268
og.Vector2D(
@@ -276,18 +286,18 @@ def get_coordinate_system(geode_object, coordinate_system):
276286
)
277287

278288

279-
def assign_geographic_coordinate_system_info(geode_object, data, input_crs):
289+
def assign_geographic_coordinate_system_info(geode_object: str, data, input_crs):
280290
info = get_geographic_coordinate_systems_info(geode_object, input_crs)
281291
assign_crs(geode_object, data, input_crs["name"], info)
282292

283293

284-
def convert_geographic_coordinate_system_info(geode_object, data, output_crs):
294+
def convert_geographic_coordinate_system_info(geode_object: str, data, output_crs):
285295
info = get_geographic_coordinate_systems_info(geode_object, output_crs)
286296
convert_crs(geode_object, data, output_crs["name"], info)
287297

288298

289299
def create_coordinate_system(
290-
geode_object, data, name, input_coordinate_points, output_coordinate_points
300+
geode_object: str, data, name, input_coordinate_points, output_coordinate_points
291301
):
292302
builder = get_builder(geode_object, data)
293303

tests/test_geode_functions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from .srcimport import geode_functions
1+
from .src import geode_functions
22

33

44
def test_is_model():

0 commit comments

Comments
 (0)