Skip to content

Commit 30348ac

Browse files
Merge pull request #26 from Geode-solutions/feat_geode_object_class_heritage
Feat geode object class heritage
2 parents 7b61774 + 447e2ef commit 30348ac

File tree

3 files changed

+169
-146
lines changed

3 files changed

+169
-146
lines changed

src/opengeodeweb_back/geode_functions.py

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -13,43 +13,47 @@
1313
import werkzeug
1414

1515
# Local application imports
16-
from .geode_objects import objects_list
16+
from .geode_objects import geode_objects_dict
1717

1818

19-
def get_input_factory(geode_object: str):
20-
return objects_list()[geode_object]["input_factory"]
19+
def geode_object_value(geode_object: str):
20+
return geode_objects_dict()[geode_object]
2121

2222

23-
def get_output_factory(geode_object: str):
24-
return objects_list()[geode_object]["output_factory"]
23+
def input_factory(geode_object: str):
24+
return geode_object_value(geode_object)["input_factory"]
25+
26+
27+
def output_factory(geode_object: str):
28+
return geode_object_value(geode_object)["output_factory"]
2529

2630

2731
def missing_files(geode_object: str, file_absolute_path: str):
28-
return objects_list()[geode_object]["missing_files"](file_absolute_path)
32+
return geode_object_value(geode_object)["missing_files"](file_absolute_path)
2933

3034

3135
def load(geode_object: str, file_absolute_path: str):
32-
return objects_list()[geode_object]["load"](file_absolute_path)
36+
return geode_object_value(geode_object)["load"](file_absolute_path)
3337

3438

3539
def save(geode_object: str, data, folder_absolute_path: str, filename: str):
36-
return objects_list()[geode_object]["save"](
40+
return geode_object_value(geode_object)["save"](
3741
data, os.path.join(folder_absolute_path, filename)
3842
)
3943

4044

4145
def create_builder(geode_object: str, data):
42-
return objects_list()[geode_object]["builder"](data)
46+
return geode_object_value(geode_object)["builder"](data)
4347

4448

4549
def assign_crs(geode_object: str, data, crs_name: str, info):
4650
builder = create_builder(geode_object, data)
47-
objects_list()[geode_object]["crs"]["assign"](data, builder, crs_name, info)
51+
geode_object_value(geode_object)["crs"]["assign"](data, builder, crs_name, info)
4852

4953

5054
def convert_crs(geode_object: str, data, crs_name: str, info):
5155
builder = create_builder(geode_object, data)
52-
objects_list()[geode_object]["crs"]["convert"](data, builder, crs_name, info)
56+
geode_object_value(geode_object)["crs"]["convert"](data, builder, crs_name, info)
5357

5458

5559
def create_crs(
@@ -60,87 +64,70 @@ def create_crs(
6064
output_coordiante_system,
6165
):
6266
builder = create_builder(geode_object, data)
63-
objects_list()[geode_object]["crs"]["create"](
67+
geode_object_value(geode_object)["crs"]["create"](
6468
data, builder, name, input_coordiante_system, output_coordiante_system
6569
)
6670

6771

6872
def is_model(geode_object: str):
69-
return objects_list()[geode_object]["is_model"]
73+
return geode_object_value(geode_object)["is_model"]
7074

7175

7276
def is_3D(geode_object: str):
73-
return objects_list()[geode_object]["is_3D"]
77+
return geode_object_value(geode_object)["is_3D"]
7478

7579

7680
def is_viewable(geode_object: str):
77-
return objects_list()[geode_object]["is_viewable"]
81+
return geode_object_value(geode_object)["is_viewable"]
7882

7983

80-
def get_inspector(geode_object: str, data):
81-
return objects_list()[geode_object]["inspector"](data)
84+
def inspector(geode_object: str, data):
85+
return geode_object_value(geode_object)["inspector"](data)
8286

8387

8488
def save_viewable(geode_object: str, data, folder_absolute_path: str, id: str):
85-
return objects_list()[geode_object]["save_viewable"](
89+
return geode_object_value(geode_object)["save_viewable"](
8690
data, os.path.join(folder_absolute_path, id)
8791
)
8892

8993

90-
def get_geode_object_input_extensions(geode_object: str):
91-
inputs_list = []
92-
geode_object_inputs = get_input_factory(geode_object)
93-
for input in geode_object_inputs:
94-
list_creators = input.list_creators()
95-
inputs_list = inputs_list + list_creators
96-
inputs_list = list(set(inputs_list))
97-
inputs_list.sort()
98-
return inputs_list
99-
94+
def geode_object_input_extensions(geode_object: str):
95+
geode_object_input_list_creators = input_factory(geode_object).list_creators()
96+
geode_object_input_list_creators.sort()
97+
return geode_object_input_list_creators
10098

101-
def get_geode_object_output_extensions(geode_object: str):
102-
output_list = []
103-
geode_object_outputs = get_output_factory(geode_object)
10499

105-
for output in geode_object_outputs:
106-
list_creators = output.list_creators()
107-
output_list = output_list + list_creators
108-
output_list = list(set(output_list))
109-
output_list.sort()
110-
return output_list
100+
def geode_object_output_extensions(geode_object: str):
101+
geode_object_output_list_creators = output_factory(geode_object).list_creators()
102+
geode_object_output_list_creators.sort()
103+
return geode_object_output_list_creators
111104

112105

113106
def list_input_extensions(key: str = None):
114107
extensions_list = []
115-
for geode_object, value in objects_list().items():
108+
for geode_object, value in geode_objects_dict().items():
116109
if key != None:
117110
if key in value:
118111
if type(value[key]) == bool:
119112
if value[key] == True:
120-
extensions_list += get_geode_object_input_extensions(
121-
geode_object
122-
)
113+
extensions_list += geode_object_input_extensions(geode_object)
123114
else:
124-
extensions_list += get_geode_object_input_extensions(geode_object)
115+
extensions_list += geode_object_input_extensions(geode_object)
125116
else:
126-
extensions_list += get_geode_object_input_extensions(geode_object)
117+
extensions_list += geode_object_input_extensions(geode_object)
127118

128119
extensions_list = list(set(extensions_list))
129120
extensions_list.sort()
130121
return extensions_list
131122

132123

133124
def has_creator(geode_object: str, extension: str):
134-
geode_object_input_factory = get_input_factory(geode_object)
135-
for input in geode_object_input_factory:
136-
if input.has_creator(extension):
137-
return True
138-
return False
125+
return input_factory(geode_object).has_creator(extension)
139126

140127

141128
def list_geode_objects(extension: str, key: str = None):
142129
geode_objects_list = []
143-
for geode_object, value in objects_list().items():
130+
for geode_object, value in geode_objects_dict().items():
144131
if key != None:
145132
if key in value:
146133
if type(value[key]) == bool:
@@ -157,7 +144,24 @@ def list_geode_objects(extension: str, key: str = None):
157144
return geode_objects_list
158145

159146

160-
def get_versions(list_packages: list):
147+
def geode_objects_output_extensions(geode_object: str):
148+
return_list = []
149+
geode_object_dict = {}
150+
geode_object_dict["geode_object"] = geode_object
151+
geode_object_dict["output_extensions"] = geode_object_output_extensions(
152+
geode_object
153+
)
154+
155+
return_list.append(geode_object_dict)
156+
157+
if "parent" in geode_object_value(geode_object).keys():
158+
parent_key = geode_object_value(geode_object)["parent"]
159+
return_list += geode_objects_output_extensions(parent_key)
160+
161+
return return_list
162+
163+
164+
def versions(list_packages: list):
161165
list_with_versions = []
162166
for package in list_packages:
163167
list_with_versions.append(
@@ -226,11 +230,11 @@ def func_wrapper():
226230
return t
227231

228232

229-
def get_extension_from_filename(filename):
233+
def extension_from_filename(filename):
230234
return os.path.splitext(filename)[1][1:]
231235

232236

233-
def get_form_variables(form, variables_array):
237+
def form_variables(form, variables_array):
234238
variables_dict = {}
235239
for variable in variables_array:
236240
if form.get(variable) is None:
@@ -240,14 +244,14 @@ def get_form_variables(form, variables_array):
240244
return variables_dict
241245

242246

243-
def get_geographic_coordinate_systems(geode_object: str):
247+
def geographic_coordinate_systems(geode_object: str):
244248
if is_3D(geode_object):
245249
return og_gs.GeographicCoordinateSystem3D.geographic_coordinate_systems()
246250
else:
247251
return og_gs.GeographicCoordinateSystem2D.geographic_coordinate_systems()
248252

249253

250-
def get_geographic_coordinate_systems_info(geode_object: str, crs):
254+
def geographic_coordinate_systems_info(geode_object: str, crs):
251255
if is_3D(geode_object):
252256
return og_gs.GeographicCoordinateSystemInfo3D(
253257
crs["authority"], crs["code"], crs["name"]
@@ -258,7 +262,7 @@ def get_geographic_coordinate_systems_info(geode_object: str, crs):
258262
)
259263

260264

261-
def get_coordinate_system(geode_object: str, coordinate_system):
265+
def coordinate_system(geode_object: str, coordinate_system):
262266
return og.CoordinateSystem2D(
263267
[
264268
og.Vector2D(
@@ -283,24 +287,20 @@ def get_coordinate_system(geode_object: str, coordinate_system):
283287

284288

285289
def assign_geographic_coordinate_system_info(geode_object: str, data, input_crs):
286-
info = get_geographic_coordinate_systems_info(geode_object, input_crs)
290+
info = geographic_coordinate_systems_info(geode_object, input_crs)
287291
assign_crs(geode_object, data, input_crs["name"], info)
288292

289293

290294
def convert_geographic_coordinate_system_info(geode_object: str, data, output_crs):
291-
info = get_geographic_coordinate_systems_info(geode_object, output_crs)
295+
info = geographic_coordinate_systems_info(geode_object, output_crs)
292296
convert_crs(geode_object, data, output_crs["name"], info)
293297

294298

295299
def create_coordinate_system(
296300
geode_object: str, data, name, input_coordinate_points, output_coordinate_points
297301
):
298-
input_coordiante_system = get_coordinate_system(
299-
geode_object, input_coordinate_points
300-
)
301-
output_coordiante_system = get_coordinate_system(
302-
geode_object, output_coordinate_points
303-
)
302+
input_coordiante_system = coordinate_system(geode_object, input_coordinate_points)
303+
output_coordiante_system = coordinate_system(geode_object, output_coordinate_points)
304304
create_crs(
305305
geode_object, data, name, input_coordiante_system, output_coordiante_system
306306
)

0 commit comments

Comments
 (0)