Add multiple command line flags

        Arguments:
            flags (:obj:`list` of :obj:`tuple`): List of flags
                in tuples (name, flag_type, description, (optional) default)

        Raises:
            TypeError: Provided wrong arguments or arguments of wrong types, method will raise TypeError

def add_multiple(self, flags):
        """Add multiple command line flags

        Arguments:
            flags (:obj:`list` of :obj:`tuple`): List of flags
                in tuples (name, flag_type, description, (optional) default)

        Raises:
            TypeError: Provided wrong arguments or arguments of wrong types, method will raise TypeError
        """
        if not isinstance(flags, list):
            raise TypeError("Expected list of flags, got object of type{}".format(type(flags)))
        for flag in flags:
            if isinstance(flag, Flag):
                self.add_item(flag)
            elif isinstance(flag, tuple):
                try:
                    item = Flag(*flag)
                    self.add_item(item)
                except TypeError as e:
                    raise TypeError("Invalid arguments to initialize a flag definition, expect ({0} [, {1}]) but got {3}"
                        .format(", ".join(Flag.REQUIRED_FIELDS),
                        ", ".join(Flag.OPTIONAL_FIELDS), flag))