1616from .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+
19110def 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
102164def 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-
222233def get_extension_from_filename (filename ):
223234 return os .path .splitext (filename )[1 ][1 :]
224235
225236
226237def 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
289299def 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
0 commit comments