def METHOD_NAME(self) -> concurrent_task_utils.TaskResult:
    """Prints a list of lint errors in the given list of CSS files.
    Returns:
        TaskResult. A TaskResult object representing the result of the lint
        check.
    Raises:
        Exception. The start.py file not executed.
    """
    node_path = os.path.join(common.NODE_PATH, 'bin', 'node')
    stylelint_path = os.path.join(
        'node_modules', 'stylelint', 'bin', 'stylelint.js')
    if not os.path.exists(stylelint_path):
        raise Exception(
            'ERROR    Please run start.py first to install node-eslint '
            'or node-stylelint and its dependencies.')
    failed = False
    stripped_error_messages = []
    full_error_messages = []
    name = 'Stylelint'
    stylelint_cmd_args = [
        node_path, stylelint_path, '--config=' + STYLELINT_CONFIG]
    proc_args = stylelint_cmd_args + self.all_filepaths
    proc = subprocess.Popen(
        proc_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    encoded_linter_stdout, encoded_linter_stderr = proc.communicate()
    # Standard and error output is in bytes, we need to decode the line to
    # print it.
    linter_stdout = encoded_linter_stdout.decode('utf-8')
    linter_stderr = encoded_linter_stderr.decode('utf-8')
    if linter_stderr:
        raise Exception(linter_stderr)
    if linter_stdout:
        full_error_messages.append(linter_stdout)
        stripped_error_messages.append(
            self._get_trimmed_error_output(linter_stdout))
        failed = True
    return concurrent_task_utils.TaskResult(
        name, failed, stripped_error_messages, full_error_messages)