def process(self, lines, file_path, line_numbers=None): """Check the given lines for style. Arguments: lines: A list of all lines in the file to check. file_path: The path of the file to process. If possible, the path should be relative to the source root. Otherwise, path-specific logic may not behave as expected. line_numbers: A list of line numbers of the lines for which style errors should be reported, or None if errors for all lines should be reported. When not None, this list normally contains the line numbers corresponding to the modified lines of a patch. """ _log.debug("Checking style: " + file_path) style_error_handler = DefaultStyleErrorHandler( configuration=self._configuration, file_path=file_path, increment_error_count=self._increment_error_count, line_numbers=line_numbers) carriage_checker = self._carriage_checker_class(style_error_handler) # Check for and remove trailing carriage returns ("\r"). if self._dispatcher.should_check_and_strip_carriage_returns(file_path): lines = carriage_checker.check(lines) min_confidence = self._configuration.min_confidence checker = self._dispatcher.dispatch(file_path, style_error_handler, min_confidence, self._configuration.commit_queue) if checker is None: raise AssertionError("File should not be checked: '%s'" % file_path) _log.debug("Using class: " + checker.__class__.__name__) checker.check(lines)
def check_file(self, file_path, handle_style_error=None, process_file=None): """Check style in the given file. Args: file_path: A string that is the path of the file to process. handle_style_error: The function to call when a style error occurs. This parameter is meant for internal use within this class. Defaults to a DefaultStyleErrorHandler instance. process_file: The function to call to process the file. This parameter should be used only for unit tests. Defaults to the file processing method of this class. """ if handle_style_error is None: handle_style_error = DefaultStyleErrorHandler( file_path, self.options, self._increment_error_count, self._stderr_write) if process_file is None: process_file = self._process_file dispatcher = ProcessorDispatcher() if dispatcher.should_skip_without_warning(file_path): return if dispatcher.should_skip_with_warning(file_path): self._stderr_write('Ignoring "%s": this file is exempt from the ' "style guide.\n" % file_path) return verbosity = self.options.verbosity processor = dispatcher.dispatch_processor(file_path, handle_style_error, verbosity) if processor is None: return process_file(processor, file_path, handle_style_error)
def _error_handler(self, configuration, line_numbers=None): return DefaultStyleErrorHandler(configuration=configuration, file_path=self._file_path, increment_error_count=self._mock_increment_error_count, line_numbers=line_numbers)
def _error_handler(self, options): return DefaultStyleErrorHandler(self._file_path, options, self._mock_increment_error_count, self._mock_stderr_write)