Add warning messges and leg_id to error message in get_percentage_from_letter

This commit is contained in:
Fuhrmann 2024-12-10 12:51:18 +01:00
parent e8d04ada05
commit 4a769a41a8

View file

@ -369,7 +369,9 @@ class FeatureRenderer:
if symbol_code == "#":
continue
code_components = get_code_components(symbol_code)
code_components = get_code_components(
symbol_code, leg_id
)
symbol_key = code_components["symbol_key"]
if symbol_key:
@ -385,13 +387,11 @@ class FeatureRenderer:
# Print message if symbol could not be found
if not symbol_found:
messages.AddMessage(
arcpy.AddWarning(
f"Could not find symbol in gallery {symbol_key}"
)
else:
messages.AddMessage(
f"{leg_id} is not in legend table yet"
)
arcpy.AddWarning(f"{leg_id} is not in legend table")
# Add user defined labels
if add_labels:
@ -529,7 +529,9 @@ class FeatureRenderer:
if symbol_code == "#":
continue
code_components = get_code_components(symbol_code)
code_components = get_code_components(
symbol_code, leg_id
)
color_value = code_components["color"]
symbol_color_value = code_components["symbol_color"]
@ -671,11 +673,11 @@ def get_symbol_code_for_shape(shape_type, symbol_codes):
)
def get_code_components(code):
def get_code_components(code, leg_id):
code_len = len(code)
if code_len == 4:
return {
"color": decode_color(code),
"color": decode_color(code, leg_id),
"symbol_key": "",
"symbol_color": {},
}
@ -695,13 +697,13 @@ def get_code_components(code):
}
elif code_len == 11:
return {
"color": decode_color(code[:4]),
"color": decode_color(code[:4], leg_id),
"symbol_key": code[4:12],
"symbol_color": {},
}
elif code_len == 14:
return {
"color": decode_color(code[:4]),
"color": decode_color(code[:4], leg_id),
"symbol_key": code[4:11],
"symbol_color": get_symbol_color(code[11:]),
}
@ -709,19 +711,19 @@ def get_code_components(code):
raise ValueError(f"Execution aborted: unknown symbol code {code}")
def decode_color(color_string):
def decode_color(color_string, leg_id):
return {
"CMYK": [
get_percentage_from_letter(color_string[0]),
get_percentage_from_letter(color_string[1]),
get_percentage_from_letter(color_string[2]),
get_percentage_from_letter(color_string[3]),
get_percentage_from_letter(color_string[0], leg_id),
get_percentage_from_letter(color_string[1], leg_id),
get_percentage_from_letter(color_string[2], leg_id),
get_percentage_from_letter(color_string[3], leg_id),
100,
],
}
def get_percentage_from_letter(letter):
def get_percentage_from_letter(letter, leg_id):
if letter == "F":
return 15
elif letter == "V":
@ -733,8 +735,10 @@ def get_percentage_from_letter(letter):
else:
try:
return int(letter) * 10
except ValueError as _:
raise ValueError(f"Execution aborted: unknown color code {letter}")
except Exception as _:
raise ValueError(
f"Execution aborted: unknown color code {letter} for {leg_id}"
)
def get_symbol_color(color_string):