Options: Add an OptionError to specify bad options caused the failure (#2343)
* Options: Add an OptionError to specify bad options caused the failure * inherit from ValueError instead of RuntimeError since this error should be thrown via bad input --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									0ed0de3daa
								
							
						
					
					
						commit
						6f8b8fc9c9
					
				| 
						 | 
				
			
			@ -353,7 +353,7 @@ def roll_meta_option(option_key, game: str, category_dict: Dict) -> Any:
 | 
			
		|||
            if options[option_key].supports_weighting:
 | 
			
		||||
                return get_choice(option_key, category_dict)
 | 
			
		||||
            return category_dict[option_key]
 | 
			
		||||
    raise Exception(f"Error generating meta option {option_key} for {game}.")
 | 
			
		||||
    raise Options.OptionError(f"Error generating meta option {option_key} for {game}.")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def roll_linked_options(weights: dict) -> dict:
 | 
			
		||||
| 
						 | 
				
			
			@ -417,7 +417,7 @@ def handle_option(ret: argparse.Namespace, game_weights: dict, option_key: str,
 | 
			
		|||
                player_option = option.from_any(get_choice(option_key, game_weights))
 | 
			
		||||
            setattr(ret, option_key, player_option)
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            raise Exception(f"Error generating option {option_key} in {ret.game}") from e
 | 
			
		||||
            raise Options.OptionError(f"Error generating option {option_key} in {ret.game}") from e
 | 
			
		||||
        else:
 | 
			
		||||
            player_option.verify(AutoWorldRegister.world_types[ret.game], ret.name, plando_options)
 | 
			
		||||
    else:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,10 @@ if typing.TYPE_CHECKING:
 | 
			
		|||
    import pathlib
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class OptionError(ValueError):
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
class Visibility(enum.IntFlag):
 | 
			
		||||
    none = 0b0000
 | 
			
		||||
    template = 0b0001
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue