Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -165,7 +165,7 @@ def filter_results(results, country_filter, region_filter, end_year_range, crs_f
|
|
165 |
filtered = []
|
166 |
for r in results:
|
167 |
metadata = r.payload.get('metadata', {})
|
168 |
-
|
169 |
year_str = metadata.get('end_year')
|
170 |
if year_str:
|
171 |
extracted = extract_year(year_str)
|
@@ -177,16 +177,16 @@ def filter_results(results, country_filter, region_filter, end_year_range, crs_f
|
|
177 |
end_year_val = 0
|
178 |
|
179 |
try:
|
180 |
-
c_list = json.loads(
|
181 |
c_list = [code.upper() for code in c_list if len(code) == 2]
|
182 |
except json.JSONDecodeError:
|
183 |
c_list = []
|
184 |
|
185 |
selected_iso_code = country_name_mapping.get(country_filter, None)
|
186 |
if region_filter != "All/Not allocated":
|
187 |
-
|
188 |
else:
|
189 |
-
|
190 |
|
191 |
crs_key = metadata.get("crs_key", "").strip()
|
192 |
# Convert crs_key to a string and remove trailing ".0"
|
@@ -212,7 +212,7 @@ def filter_results(results, country_filter, region_filter, end_year_range, crs_f
|
|
212 |
year_ok = True if end_year_val == 0 else (end_year_range[0] <= end_year_val <= end_year_range[1])
|
213 |
|
214 |
if ((country_filter == "All/Not allocated" or (selected_iso_code and selected_iso_code in c_list))
|
215 |
-
and (region_filter == "All/Not allocated" or
|
216 |
and year_ok):
|
217 |
filtered.append(r)
|
218 |
return filtered
|
@@ -276,9 +276,9 @@ def get_country_name_and_region_mapping(_client, collection_name, region_df):
|
|
276 |
results = hybrid_search(_client, "", collection_name)
|
277 |
country_set = set()
|
278 |
for res in results[0] + results[1]:
|
279 |
-
|
280 |
try:
|
281 |
-
country_list = json.loads(
|
282 |
two_digit_codes = [code.upper() for code in country_list if len(code) == 2]
|
283 |
country_set.update(two_digit_codes)
|
284 |
except json.JSONDecodeError:
|
@@ -406,15 +406,15 @@ else:
|
|
406 |
formatted_project_budget = format_currency(total_project)
|
407 |
formatted_total_volume = format_currency(total_volume)
|
408 |
try:
|
409 |
-
c_list = json.loads(metadata.get('
|
410 |
except json.JSONDecodeError:
|
411 |
c_list = []
|
412 |
-
|
413 |
for code in c_list:
|
414 |
if len(code) == 2:
|
415 |
resolved_name = get_country_name(code.upper(), region_df)
|
416 |
if resolved_name.upper() != code.upper():
|
417 |
-
|
418 |
crs_key = metadata.get("crs_key", "").strip()
|
419 |
# Convert to string and remove trailing ".0"
|
420 |
crs_key_clean = re.sub(r'\.0$', '', str(crs_key))
|
@@ -429,7 +429,7 @@ else:
|
|
429 |
f"**Commissioned by:** {client_name}<br>"
|
430 |
f"**Projekt duration:** {start_year_str}-{end_year_str}<br>"
|
431 |
f"**Budget:** Project: {formatted_project_budget}, Total volume: {formatted_total_volume}<br>"
|
432 |
-
f"**Country:** {', '.join(
|
433 |
f"**Sector:** {crs_combined}"
|
434 |
)
|
435 |
#if contact and contact.lower() != "[email protected]":
|
@@ -478,15 +478,15 @@ else:
|
|
478 |
formatted_project_budget = format_currency(total_project)
|
479 |
formatted_total_volume = format_currency(total_volume)
|
480 |
try:
|
481 |
-
c_list = json.loads(metadata.get('
|
482 |
except json.JSONDecodeError:
|
483 |
c_list = []
|
484 |
-
|
485 |
for code in c_list:
|
486 |
if len(code) == 2:
|
487 |
resolved_name = get_country_name(code.upper(), region_df)
|
488 |
if resolved_name.upper() != code.upper():
|
489 |
-
|
490 |
crs_key = metadata.get("crs_key", "").strip()
|
491 |
# Convert to string and remove trailing ".0"
|
492 |
crs_key_clean = re.sub(r'\.0$', '', str(crs_key))
|
@@ -500,7 +500,7 @@ else:
|
|
500 |
f"**Commissioned by:** {client_name}<br>"
|
501 |
f"**Projekt duration:** {start_year_str}-{end_year_str}<br>"
|
502 |
f"**Budget:** Project: {formatted_project_budget}, Total volume: {formatted_total_volume}<br>"
|
503 |
-
f"**Country:** {', '.join(
|
504 |
f"**Sector:** {crs_combined}"
|
505 |
)
|
506 |
#if contact and contact.lower() != "[email protected]":
|
|
|
165 |
filtered = []
|
166 |
for r in results:
|
167 |
metadata = r.payload.get('metadata', {})
|
168 |
+
country = metadata.get('country', "[]")
|
169 |
year_str = metadata.get('end_year')
|
170 |
if year_str:
|
171 |
extracted = extract_year(year_str)
|
|
|
177 |
end_year_val = 0
|
178 |
|
179 |
try:
|
180 |
+
c_list = json.loads(country.replace("'", '"'))
|
181 |
c_list = [code.upper() for code in c_list if len(code) == 2]
|
182 |
except json.JSONDecodeError:
|
183 |
c_list = []
|
184 |
|
185 |
selected_iso_code = country_name_mapping.get(country_filter, None)
|
186 |
if region_filter != "All/Not allocated":
|
187 |
+
country_in_region = [code for code in c_list if iso_code_to_sub_region.get(code) == region_filter]
|
188 |
else:
|
189 |
+
country_in_region = c_list
|
190 |
|
191 |
crs_key = metadata.get("crs_key", "").strip()
|
192 |
# Convert crs_key to a string and remove trailing ".0"
|
|
|
212 |
year_ok = True if end_year_val == 0 else (end_year_range[0] <= end_year_val <= end_year_range[1])
|
213 |
|
214 |
if ((country_filter == "All/Not allocated" or (selected_iso_code and selected_iso_code in c_list))
|
215 |
+
and (region_filter == "All/Not allocated" or country_in_region)
|
216 |
and year_ok):
|
217 |
filtered.append(r)
|
218 |
return filtered
|
|
|
276 |
results = hybrid_search(_client, "", collection_name)
|
277 |
country_set = set()
|
278 |
for res in results[0] + results[1]:
|
279 |
+
country = res.payload.get('metadata', {}).get('country', "[]")
|
280 |
try:
|
281 |
+
country_list = json.loads(country.replace("'", '"'))
|
282 |
two_digit_codes = [code.upper() for code in country_list if len(code) == 2]
|
283 |
country_set.update(two_digit_codes)
|
284 |
except json.JSONDecodeError:
|
|
|
406 |
formatted_project_budget = format_currency(total_project)
|
407 |
formatted_total_volume = format_currency(total_volume)
|
408 |
try:
|
409 |
+
c_list = json.loads(metadata.get('country', "[]").replace("'", '"'))
|
410 |
except json.JSONDecodeError:
|
411 |
c_list = []
|
412 |
+
matched_country = []
|
413 |
for code in c_list:
|
414 |
if len(code) == 2:
|
415 |
resolved_name = get_country_name(code.upper(), region_df)
|
416 |
if resolved_name.upper() != code.upper():
|
417 |
+
matched_country.append(resolved_name)
|
418 |
crs_key = metadata.get("crs_key", "").strip()
|
419 |
# Convert to string and remove trailing ".0"
|
420 |
crs_key_clean = re.sub(r'\.0$', '', str(crs_key))
|
|
|
429 |
f"**Commissioned by:** {client_name}<br>"
|
430 |
f"**Projekt duration:** {start_year_str}-{end_year_str}<br>"
|
431 |
f"**Budget:** Project: {formatted_project_budget}, Total volume: {formatted_total_volume}<br>"
|
432 |
+
f"**Country:** {', '.join(matched_country)}<br>"
|
433 |
f"**Sector:** {crs_combined}"
|
434 |
)
|
435 |
#if contact and contact.lower() != "[email protected]":
|
|
|
478 |
formatted_project_budget = format_currency(total_project)
|
479 |
formatted_total_volume = format_currency(total_volume)
|
480 |
try:
|
481 |
+
c_list = json.loads(metadata.get('country', "[]").replace("'", '"'))
|
482 |
except json.JSONDecodeError:
|
483 |
c_list = []
|
484 |
+
matched_country = []
|
485 |
for code in c_list:
|
486 |
if len(code) == 2:
|
487 |
resolved_name = get_country_name(code.upper(), region_df)
|
488 |
if resolved_name.upper() != code.upper():
|
489 |
+
matched_country.append(resolved_name)
|
490 |
crs_key = metadata.get("crs_key", "").strip()
|
491 |
# Convert to string and remove trailing ".0"
|
492 |
crs_key_clean = re.sub(r'\.0$', '', str(crs_key))
|
|
|
500 |
f"**Commissioned by:** {client_name}<br>"
|
501 |
f"**Projekt duration:** {start_year_str}-{end_year_str}<br>"
|
502 |
f"**Budget:** Project: {formatted_project_budget}, Total volume: {formatted_total_volume}<br>"
|
503 |
+
f"**Country:** {', '.join(matched_country)}<br>"
|
504 |
f"**Sector:** {crs_combined}"
|
505 |
)
|
506 |
#if contact and contact.lower() != "[email protected]":
|