diff --git a/FeatureRenderer.pyt b/FeatureRenderer.pyt index cdde665..21ac278 100644 --- a/FeatureRenderer.pyt +++ b/FeatureRenderer.pyt @@ -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):