code: def add_condition(self, conkey, cond):
          
  
          # Audit:
          if conkey == 'start' or conkey == 'stop':
              conkey += 'cond'
          if not any(conkey.startswith(addable) for addable in _ADDABLES):
              raise KeyError(conkey)
          if not self.conconf.valid_conkey(conkey):
              raise KeyError(conkey)
  
          self._parse_cond(cond)  # Checking
  
          conkey = self.conconf.next_conkey(conkey)
          self.conconf.set_condition(conkey, cond)
  
          if not self.no_auto:
              self.make_mask()
docs: Add a condition, one of the addable ones.
  
          conkey: str
              One of 'cond', startcond' or 'stopcond'. 'start' or 'stop'
              is accepted as shorts for 'startcond' or 'stopcond'. If the
              conkey is given with an explicit number (like 'stopcond3')
              and already exist, it will be over-written, else created.
  
              When the trailing number is implicit, the first condition
              with a value of None is taken. If no None value is found, a
              new condition is added.
  
          cond: str
              The condition string. See ...
  
          .. note::
             Updates the mask if not no_auto.
  
          .. seealso::
             :meth:`~channelpack.ChannelPack.set_duration`
             :meth:`~channelpack.ChannelPack.set_samplerate`
             :meth:`~channelpack.ChannelPack.set_stopextend`
             :meth:`~channelpack.ChannelPack.clear_conditions`