code: def check_logical(self):
          
          options.counters['logical lines'] = \
              options.counters.get('logical lines', 0) + 1
          self.build_tokens_line()
          first_line = self.lines[self.mapping[0][1][2][0] - 1]
          indent = first_line[:self.mapping[0][1][2][1]]
          self.previous_indent_level = self.indent_level
          self.indent_level = expand_indent(indent)
          if options.verbose >= 2:
              print self.logical_line[:80].rstrip()
          for name, check, argument_names in self.logical_checks:
              if options.verbose >= 3:
                  print '   ', name
              result = self.run_check(check, argument_names)
              if result is not None:
                  offset, text = result
                  if type(offset) is tuple:
                      original_number, original_offset = offset
                  else:
                      for token_offset, token in self.mapping:
                          if offset >= token_offset:
                              original_number = token[2][0]
                              original_offset = (token[2][1]
                                                 + offset - token_offset)
                  self.report_error(original_number, original_offset,
                                    text, check)
          self.previous_logical = self.logical_line
docs: Build a line from tokens and run all logical checks on it.