Code Duplication    Length = 103-103 lines in 2 locations

core/build-support/cpplint.py 1 location

@@ 1250-1352 (lines=103) @@
1247
  pass
1248
1249
1250
class FileInfo(object):
1251
  """Provides utility functions for filenames.
1252
1253
  FileInfo provides easy access to the components of a file's path
1254
  relative to the project root.
1255
  """
1256
1257
  def __init__(self, filename):
1258
    self._filename = filename
1259
1260
  def FullName(self):
1261
    """Make Windows paths like Unix."""
1262
    return os.path.abspath(self._filename).replace('\\', '/')
1263
1264
  def RepositoryName(self):
1265
    r"""FullName after removing the local path to the repository.
1266
1267
    If we have a real absolute path name here we can try to do something smart:
1268
    detecting the root of the checkout and truncating /path/to/checkout from
1269
    the name so that we get header guards that don't include things like
1270
    "C:\Documents and Settings\..." or "/home/username/..." in them and thus
1271
    people on different computers who have checked the source out to different
1272
    locations won't see bogus errors.
1273
    """
1274
    fullname = self.FullName()
1275
1276
    if os.path.exists(fullname):
1277
      project_dir = os.path.dirname(fullname)
1278
1279
      # If the user specified a repository path, it exists, and the file is
1280
      # contained in it, use the specified repository path
1281
      if _repository:
1282
        repo = FileInfo(_repository).FullName()
1283
        root_dir = project_dir
1284
        while os.path.exists(root_dir):
1285
          # allow case insensitive compare on Windows
1286
          if os.path.normcase(root_dir) == os.path.normcase(repo):
1287
            return os.path.relpath(fullname, root_dir).replace('\\', '/')
1288
          one_up_dir = os.path.dirname(root_dir)
1289
          if one_up_dir == root_dir:
1290
            break
1291
          root_dir = one_up_dir
1292
1293
      if os.path.exists(os.path.join(project_dir, ".svn")):
1294
        # If there's a .svn file in the current directory, we recursively look
1295
        # up the directory tree for the top of the SVN checkout
1296
        root_dir = project_dir
1297
        one_up_dir = os.path.dirname(root_dir)
1298
        while os.path.exists(os.path.join(one_up_dir, ".svn")):
1299
          root_dir = os.path.dirname(root_dir)
1300
          one_up_dir = os.path.dirname(one_up_dir)
1301
1302
        prefix = os.path.commonprefix([root_dir, project_dir])
1303
        return fullname[len(prefix) + 1:]
1304
1305
      # Not SVN <= 1.6? Try to find a git, hg, or svn top level directory by
1306
      # searching up from the current path.
1307
      root_dir = current_dir = os.path.dirname(fullname)
1308
      while current_dir != os.path.dirname(current_dir):
1309
        if (os.path.exists(os.path.join(current_dir, ".git")) or
1310
            os.path.exists(os.path.join(current_dir, ".hg")) or
1311
            os.path.exists(os.path.join(current_dir, ".svn"))):
1312
          root_dir = current_dir
1313
        current_dir = os.path.dirname(current_dir)
1314
1315
      if (os.path.exists(os.path.join(root_dir, ".git")) or
1316
          os.path.exists(os.path.join(root_dir, ".hg")) or
1317
          os.path.exists(os.path.join(root_dir, ".svn"))):
1318
        prefix = os.path.commonprefix([root_dir, project_dir])
1319
        return fullname[len(prefix) + 1:]
1320
1321
    # Don't know what to do; header guard warnings may be wrong...
1322
    return fullname
1323
1324
  def Split(self):
1325
    """Splits the file into the directory, basename, and extension.
1326
1327
    For 'chrome/browser/browser.cc', Split() would
1328
    return ('chrome/browser', 'browser', '.cc')
1329
1330
    Returns:
1331
      A tuple of (directory, basename, extension).
1332
    """
1333
1334
    googlename = self.RepositoryName()
1335
    project, rest = os.path.split(googlename)
1336
    return (project,) + os.path.splitext(rest)
1337
1338
  def BaseName(self):
1339
    """File base name - text after the final slash, before the final period."""
1340
    return self.Split()[1]
1341
1342
  def Extension(self):
1343
    """File extension - text following the final period, includes that period."""
1344
    return self.Split()[2]
1345
1346
  def NoExtension(self):
1347
    """File has no source file extension."""
1348
    return '/'.join(self.Split()[0:2])
1349
1350
  def IsSource(self):
1351
    """File has a source file extension."""
1352
    return _IsSourceExtension(self.Extension()[1:])
1353
1354
1355
def _ShouldPrintError(category, confidence, linenum):

sdk/build-support/cpplint.py 1 location

@@ 1250-1352 (lines=103) @@
1247
  pass
1248
1249
1250
class FileInfo(object):
1251
  """Provides utility functions for filenames.
1252
1253
  FileInfo provides easy access to the components of a file's path
1254
  relative to the project root.
1255
  """
1256
1257
  def __init__(self, filename):
1258
    self._filename = filename
1259
1260
  def FullName(self):
1261
    """Make Windows paths like Unix."""
1262
    return os.path.abspath(self._filename).replace('\\', '/')
1263
1264
  def RepositoryName(self):
1265
    r"""FullName after removing the local path to the repository.
1266
1267
    If we have a real absolute path name here we can try to do something smart:
1268
    detecting the root of the checkout and truncating /path/to/checkout from
1269
    the name so that we get header guards that don't include things like
1270
    "C:\Documents and Settings\..." or "/home/username/..." in them and thus
1271
    people on different computers who have checked the source out to different
1272
    locations won't see bogus errors.
1273
    """
1274
    fullname = self.FullName()
1275
1276
    if os.path.exists(fullname):
1277
      project_dir = os.path.dirname(fullname)
1278
1279
      # If the user specified a repository path, it exists, and the file is
1280
      # contained in it, use the specified repository path
1281
      if _repository:
1282
        repo = FileInfo(_repository).FullName()
1283
        root_dir = project_dir
1284
        while os.path.exists(root_dir):
1285
          # allow case insensitive compare on Windows
1286
          if os.path.normcase(root_dir) == os.path.normcase(repo):
1287
            return os.path.relpath(fullname, root_dir).replace('\\', '/')
1288
          one_up_dir = os.path.dirname(root_dir)
1289
          if one_up_dir == root_dir:
1290
            break
1291
          root_dir = one_up_dir
1292
1293
      if os.path.exists(os.path.join(project_dir, ".svn")):
1294
        # If there's a .svn file in the current directory, we recursively look
1295
        # up the directory tree for the top of the SVN checkout
1296
        root_dir = project_dir
1297
        one_up_dir = os.path.dirname(root_dir)
1298
        while os.path.exists(os.path.join(one_up_dir, ".svn")):
1299
          root_dir = os.path.dirname(root_dir)
1300
          one_up_dir = os.path.dirname(one_up_dir)
1301
1302
        prefix = os.path.commonprefix([root_dir, project_dir])
1303
        return fullname[len(prefix) + 1:]
1304
1305
      # Not SVN <= 1.6? Try to find a git, hg, or svn top level directory by
1306
      # searching up from the current path.
1307
      root_dir = current_dir = os.path.dirname(fullname)
1308
      while current_dir != os.path.dirname(current_dir):
1309
        if (os.path.exists(os.path.join(current_dir, ".git")) or
1310
            os.path.exists(os.path.join(current_dir, ".hg")) or
1311
            os.path.exists(os.path.join(current_dir, ".svn"))):
1312
          root_dir = current_dir
1313
        current_dir = os.path.dirname(current_dir)
1314
1315
      if (os.path.exists(os.path.join(root_dir, ".git")) or
1316
          os.path.exists(os.path.join(root_dir, ".hg")) or
1317
          os.path.exists(os.path.join(root_dir, ".svn"))):
1318
        prefix = os.path.commonprefix([root_dir, project_dir])
1319
        return fullname[len(prefix) + 1:]
1320
1321
    # Don't know what to do; header guard warnings may be wrong...
1322
    return fullname
1323
1324
  def Split(self):
1325
    """Splits the file into the directory, basename, and extension.
1326
1327
    For 'chrome/browser/browser.cc', Split() would
1328
    return ('chrome/browser', 'browser', '.cc')
1329
1330
    Returns:
1331
      A tuple of (directory, basename, extension).
1332
    """
1333
1334
    googlename = self.RepositoryName()
1335
    project, rest = os.path.split(googlename)
1336
    return (project,) + os.path.splitext(rest)
1337
1338
  def BaseName(self):
1339
    """File base name - text after the final slash, before the final period."""
1340
    return self.Split()[1]
1341
1342
  def Extension(self):
1343
    """File extension - text following the final period, includes that period."""
1344
    return self.Split()[2]
1345
1346
  def NoExtension(self):
1347
    """File has no source file extension."""
1348
    return '/'.join(self.Split()[0:2])
1349
1350
  def IsSource(self):
1351
    """File has a source file extension."""
1352
    return _IsSourceExtension(self.Extension()[1:])
1353
1354
1355
def _ShouldPrintError(category, confidence, linenum):