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