<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_option(self, opt_name, otype, hidden=False):
 """ Add an option to the object :param opt_name: option name :type opt_name: str :param otype: option type :type otype: subclass of :class:`.GenericType` :param hidden: if True the option will be hidden :type hidden: bool """

        if self.has_option(opt_name):
            raise ValueError("The option is already present !")
        opt = ValueOption.FromType(opt_name, otype)
        opt.hidden = hidden
        self._options[opt_name] = opt