Skip to content

Commit d224d8f

Browse files
feat(functions): filter_geode_objects
1 parent 241f60d commit d224d8f

File tree

2 files changed

+27
-18
lines changed

2 files changed

+27
-18
lines changed

src/opengeodeweb_back/geode_functions.py

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -113,18 +113,26 @@ def geode_object_output_extensions(geode_object: str):
113113
return geode_object_output_list_creators
114114

115115

116-
def list_input_extensions(key: str = None):
117-
extensions_list = []
116+
def filter_geode_objects(key: str = None):
117+
geode_objects_filtered_list = []
118118
for geode_object, value in geode_objects_dict().items():
119119
if key != None and key != "":
120120
if key in value:
121121
if type(value[key]) == bool:
122-
if value[key] == True:
123-
extensions_list += geode_object_input_extensions(geode_object)
122+
geode_objects_filtered_list.append(geode_object)
124123
else:
125-
extensions_list += geode_object_input_extensions(geode_object)
124+
geode_objects_filtered_list.append(geode_object)
126125
else:
127-
extensions_list += geode_object_input_extensions(geode_object)
126+
geode_objects_filtered_list.append(geode_object)
127+
geode_objects_filtered_list.sort()
128+
return geode_objects_filtered_list
129+
130+
131+
def list_input_extensions(key: str = None):
132+
extensions_list = []
133+
geode_objects_filtered_list = filter_geode_objects(key)
134+
for geode_object in geode_objects_filtered_list:
135+
extensions_list += geode_object_input_extensions(geode_object)
128136

129137
extensions_list = list(set(extensions_list))
130138
extensions_list.sort()
@@ -141,21 +149,12 @@ def list_geode_objects(
141149
):
142150
return_dict = {}
143151
file_extension = extension_from_filename(os.path.basename(file_absolute_path))
152+
geode_objects_filtered_list = filter_geode_objects(key)
144153

145-
for geode_object, value in geode_objects_dict().items():
154+
for geode_object in geode_objects_filtered_list:
146155
if has_creator(geode_object, file_extension):
147156
file_is_loadable = is_loadable(geode_object, file_absolute_path)
148-
if key != None and key != "":
149-
if key in value:
150-
if type(value[key]) == bool:
151-
if value[key] == True:
152-
return_dict[geode_object] = {
153-
"is_loadable": file_is_loadable
154-
}
155-
else:
156-
return_dict[geode_object] = {"is_loadable": file_is_loadable}
157-
else:
158-
return_dict[geode_object] = {"is_loadable": file_is_loadable}
157+
return_dict[geode_object] = {"is_loadable": file_is_loadable}
159158
return return_dict
160159

161160

tests/test_functions.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,16 @@ def test_geode_object_output_extensions():
177177
assert type(output_extension_value["is_saveable"]) is bool
178178

179179

180+
def test_filter_geode_objects():
181+
filters_list = ["", "crs", "inspector", None]
182+
183+
for filter in filters_list:
184+
geode_objects_filtered_list = geode_functions.filter_geode_objects(filter)
185+
assert type(geode_objects_filtered_list) is list
186+
for geode_object in geode_objects_filtered_list:
187+
assert type(geode_object) is str
188+
189+
180190
def test_list_input_extensions():
181191
keys_array = ["crs", "inspector", None]
182192
for geode_object, value in geode_objects.geode_objects_dict().items():

0 commit comments

Comments
 (0)