def METHOD_NAME(  # noqa: D
    self, value: str, param: Optional[click.Parameter], ctx: Optional[click.Context]
) -> Sequence[T]:
    if len(value) == 0:
        if self.min_length > 0:
            self.fail(
                f"Input is empty, when the minimum expected number of input is {self.min_length}",
                param,
                ctx,
            )
        return []
    str_values = value.split(self.separator)
    if len(str_values) < self.min_length:
        self.fail(
            f"list has length {len(str_values)}, which is less than the minimum allowed length of {self.min_length}",
            param,
            ctx,
        )
    if self.max_length is not None and len(str_values) > self.max_length:
        self.fail(
            f"list has length {len(str_values)}, which is more than the maximum allowed length of {self.max_length}",
            param,
            ctx,
        )
    converted_values: List[T] = []
    for str_val in str_values:
        try:
            converted_val = self.value_converter(str_val)
        except Exception:
            self.fail(f"{str_val} could not be converted by value converter", param, ctx)
        converted_values.append(converted_val)
    return converted_values