Code Duplication    Length = 94-94 lines in 2 locations

sdk/build-support/cpplint.py 1 location

@@ 6105-6198 (lines=94) @@
6102
6103
  CheckForNewlineAtEOF(filename, lines, error)
6104
6105
def ProcessConfigOverrides(filename):
6106
  """ Loads the configuration files and processes the config overrides.
6107
6108
  Args:
6109
    filename: The name of the file being processed by the linter.
6110
6111
  Returns:
6112
    False if the current |filename| should not be processed further.
6113
  """
6114
6115
  abs_filename = os.path.abspath(filename)
6116
  cfg_filters = []
6117
  keep_looking = True
6118
  while keep_looking:
6119
    abs_path, base_name = os.path.split(abs_filename)
6120
    if not base_name:
6121
      break  # Reached the root directory.
6122
6123
    cfg_file = os.path.join(abs_path, "CPPLINT.cfg")
6124
    abs_filename = abs_path
6125
    if not os.path.isfile(cfg_file):
6126
      continue
6127
6128
    try:
6129
      with open(cfg_file) as file_handle:
6130
        for line in file_handle:
6131
          line, _, _ = line.partition('#')  # Remove comments.
6132
          if not line.strip():
6133
            continue
6134
6135
          name, _, val = line.partition('=')
6136
          name = name.strip()
6137
          val = val.strip()
6138
          if name == 'set noparent':
6139
            keep_looking = False
6140
          elif name == 'filter':
6141
            cfg_filters.append(val)
6142
          elif name == 'exclude_files':
6143
            # When matching exclude_files pattern, use the base_name of
6144
            # the current file name or the directory name we are processing.
6145
            # For example, if we are checking for lint errors in /foo/bar/baz.cc
6146
            # and we found the .cfg file at /foo/CPPLINT.cfg, then the config
6147
            # file's "exclude_files" filter is meant to be checked against "bar"
6148
            # and not "baz" nor "bar/baz.cc".
6149
            if base_name:
6150
              pattern = re.compile(val)
6151
              if pattern.match(base_name):
6152
                _cpplint_state.PrintInfo('Ignoring "%s": file excluded by '
6153
                    '"%s". File path component "%s" matches pattern "%s"\n' %
6154
                    (filename, cfg_file, base_name, val))
6155
                return False
6156
          elif name == 'linelength':
6157
            global _line_length
6158
            try:
6159
                _line_length = int(val)
6160
            except ValueError:
6161
                _cpplint_state.PrintError('Line length must be numeric.')
6162
          elif name == 'extensions':
6163
              global _valid_extensions
6164
              try:
6165
                  extensions = [ext.strip() for ext in val.split(',')]
6166
                  _valid_extensions = set(extensions)
6167
              except ValueError:
6168
                  sys.stderr.write('Extensions should be a comma-separated list of values;'
6169
                                   'for example: extensions=hpp,cpp\n'
6170
                                   'This could not be parsed: "%s"' % (val,))
6171
          elif name == 'headers':
6172
              global _header_extensions
6173
              try:
6174
                  extensions = [ext.strip() for ext in val.split(',')]
6175
                  _header_extensions = set(extensions)
6176
              except ValueError:
6177
                  sys.stderr.write('Extensions should be a comma-separated list of values;'
6178
                                   'for example: extensions=hpp,cpp\n'
6179
                                   'This could not be parsed: "%s"' % (val,))
6180
          elif name == 'root':
6181
            global _root
6182
            _root = val
6183
          else:
6184
            _cpplint_state.PrintError(
6185
                'Invalid configuration option (%s) in file %s\n' %
6186
                (name, cfg_file))
6187
6188
    except IOError:
6189
      _cpplint_state.PrintError(
6190
          "Skipping config file '%s': Can't open for reading\n" % cfg_file)
6191
      keep_looking = False
6192
6193
  # Apply all the accumulated filters in reverse order (top-level directory
6194
  # config options having the least priority).
6195
  for cfg_filter in reversed(cfg_filters):
6196
     _AddFilters(cfg_filter)
6197
6198
  return True
6199
6200
6201
def ProcessFile(filename, vlevel, extra_check_functions=None):

core/build-support/cpplint.py 1 location

@@ 6105-6198 (lines=94) @@
6102
6103
  CheckForNewlineAtEOF(filename, lines, error)
6104
6105
def ProcessConfigOverrides(filename):
6106
  """ Loads the configuration files and processes the config overrides.
6107
6108
  Args:
6109
    filename: The name of the file being processed by the linter.
6110
6111
  Returns:
6112
    False if the current |filename| should not be processed further.
6113
  """
6114
6115
  abs_filename = os.path.abspath(filename)
6116
  cfg_filters = []
6117
  keep_looking = True
6118
  while keep_looking:
6119
    abs_path, base_name = os.path.split(abs_filename)
6120
    if not base_name:
6121
      break  # Reached the root directory.
6122
6123
    cfg_file = os.path.join(abs_path, "CPPLINT.cfg")
6124
    abs_filename = abs_path
6125
    if not os.path.isfile(cfg_file):
6126
      continue
6127
6128
    try:
6129
      with open(cfg_file) as file_handle:
6130
        for line in file_handle:
6131
          line, _, _ = line.partition('#')  # Remove comments.
6132
          if not line.strip():
6133
            continue
6134
6135
          name, _, val = line.partition('=')
6136
          name = name.strip()
6137
          val = val.strip()
6138
          if name == 'set noparent':
6139
            keep_looking = False
6140
          elif name == 'filter':
6141
            cfg_filters.append(val)
6142
          elif name == 'exclude_files':
6143
            # When matching exclude_files pattern, use the base_name of
6144
            # the current file name or the directory name we are processing.
6145
            # For example, if we are checking for lint errors in /foo/bar/baz.cc
6146
            # and we found the .cfg file at /foo/CPPLINT.cfg, then the config
6147
            # file's "exclude_files" filter is meant to be checked against "bar"
6148
            # and not "baz" nor "bar/baz.cc".
6149
            if base_name:
6150
              pattern = re.compile(val)
6151
              if pattern.match(base_name):
6152
                _cpplint_state.PrintInfo('Ignoring "%s": file excluded by '
6153
                    '"%s". File path component "%s" matches pattern "%s"\n' %
6154
                    (filename, cfg_file, base_name, val))
6155
                return False
6156
          elif name == 'linelength':
6157
            global _line_length
6158
            try:
6159
                _line_length = int(val)
6160
            except ValueError:
6161
                _cpplint_state.PrintError('Line length must be numeric.')
6162
          elif name == 'extensions':
6163
              global _valid_extensions
6164
              try:
6165
                  extensions = [ext.strip() for ext in val.split(',')]
6166
                  _valid_extensions = set(extensions)
6167
              except ValueError:
6168
                  sys.stderr.write('Extensions should be a comma-separated list of values;'
6169
                                   'for example: extensions=hpp,cpp\n'
6170
                                   'This could not be parsed: "%s"' % (val,))
6171
          elif name == 'headers':
6172
              global _header_extensions
6173
              try:
6174
                  extensions = [ext.strip() for ext in val.split(',')]
6175
                  _header_extensions = set(extensions)
6176
              except ValueError:
6177
                  sys.stderr.write('Extensions should be a comma-separated list of values;'
6178
                                   'for example: extensions=hpp,cpp\n'
6179
                                   'This could not be parsed: "%s"' % (val,))
6180
          elif name == 'root':
6181
            global _root
6182
            _root = val
6183
          else:
6184
            _cpplint_state.PrintError(
6185
                'Invalid configuration option (%s) in file %s\n' %
6186
                (name, cfg_file))
6187
6188
    except IOError:
6189
      _cpplint_state.PrintError(
6190
          "Skipping config file '%s': Can't open for reading\n" % cfg_file)
6191
      keep_looking = False
6192
6193
  # Apply all the accumulated filters in reverse order (top-level directory
6194
  # config options having the least priority).
6195
  for cfg_filter in reversed(cfg_filters):
6196
     _AddFilters(cfg_filter)
6197
6198
  return True
6199
6200
6201
def ProcessFile(filename, vlevel, extra_check_functions=None):