def get_condition(self, condition_index: int = None, display_index: int = None) -> Condition:
        if not exclusive_if(condition_index is not None, display_index is not None):
            raise ValueError(f"Please identify a condition using either condition_index or display_index.")

        if condition_index is None:
            condition_index = self.condition_order[display_index]

        return self.conditions[condition_index]
    def get_effect(self, effect_index: int = None, display_index: int = None) -> Effect:
        if not exclusive_if(effect_index is not None, display_index is not None):
            raise ValueError(f"Please identify an effect using either effect_index or display_index.")

        if effect_index is None:
            effect_index = self.effect_order[display_index]

        return self.effects[effect_index]
 def get_variable(self,
                  variable_id: int = None,
                  variable_name: str = None) -> Variable:
     if not exclusive_if(variable_id is not None, variable_name
                         is not None):
         raise ValueError(
             "Select a variable using either the variable_id or variable_name parameters."
         )
     for variable in self.variables:
         if variable.variable_id == variable_id or variable.name == variable_name:
             return variable
    def remove_effect(self, effect_index: int = None, display_index: int = None, effect: Effect = None) -> None:
        if not exclusive_if(effect_index is not None, display_index is not None, effect is not None):
            raise ValueError(f"Please identify an effect using either effect_index, display_index or effect.")

        if effect is not None:
            effect_index = self.effects.index(effect)

        if effect_index is None:
            effect_index = self.effect_order[display_index]
        else:
            display_index = self.effect_order.index(effect_index)

        del self.effects[effect_index]
        del self.effect_order[display_index]

        self.effect_order = [x - 1 if x > effect_index else x for x in self.effect_order]
    def remove_condition(self, condition_index: int = None, display_index: int = None, condition: Condition = None) \
            -> None:
        if not exclusive_if(condition_index is not None, display_index is not None, condition is not None):
            raise ValueError(f"Please identify a condition using either condition_index, display_index or condition.")

        if condition is not None:
            condition_index = self.conditions.index(condition)

        if condition_index is None:
            condition_index = self.condition_order[display_index]
        else:
            display_index = self.condition_order.index(condition_index)

        del self.conditions[condition_index]
        del self.condition_order[display_index]

        self.condition_order = [x - 1 if x > condition_index else x for x in self.condition_order]