Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(181)

Unified Diff: third_party/coverage-3.6/coverage/codeunit.py

Issue 225633007: Upgrade to coverage 3.7.1 and have it auto-build itself on first use. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: sigh our imports are a mess Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/coverage-3.6/coverage/cmdline.py ('k') | third_party/coverage-3.6/coverage/collector.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/coverage-3.6/coverage/codeunit.py
diff --git a/third_party/coverage-3.6/coverage/codeunit.py b/third_party/coverage-3.6/coverage/codeunit.py
deleted file mode 100644
index ca1ae5c56d6bbe41266ba55b1ecd5fd928bd0d9f..0000000000000000000000000000000000000000
--- a/third_party/coverage-3.6/coverage/codeunit.py
+++ /dev/null
@@ -1,145 +0,0 @@
-"""Code unit (module) handling for Coverage."""
-
-import glob, os
-
-from coverage.backward import open_source, string_class, StringIO
-from coverage.misc import CoverageException
-
-
-def code_unit_factory(morfs, file_locator):
- """Construct a list of CodeUnits from polymorphic inputs.
-
- `morfs` is a module or a filename, or a list of same.
-
- `file_locator` is a FileLocator that can help resolve filenames.
-
- Returns a list of CodeUnit objects.
-
- """
- # Be sure we have a list.
- if not isinstance(morfs, (list, tuple)):
- morfs = [morfs]
-
- # On Windows, the shell doesn't expand wildcards. Do it here.
- globbed = []
- for morf in morfs:
- if isinstance(morf, string_class) and ('?' in morf or '*' in morf):
- globbed.extend(glob.glob(morf))
- else:
- globbed.append(morf)
- morfs = globbed
-
- code_units = [CodeUnit(morf, file_locator) for morf in morfs]
-
- return code_units
-
-
-class CodeUnit(object):
- """Code unit: a filename or module.
-
- Instance attributes:
-
- `name` is a human-readable name for this code unit.
- `filename` is the os path from which we can read the source.
- `relative` is a boolean.
-
- """
- def __init__(self, morf, file_locator):
- self.file_locator = file_locator
-
- if hasattr(morf, '__file__'):
- f = morf.__file__
- else:
- f = morf
- # .pyc files should always refer to a .py instead.
- if f.endswith('.pyc') or f.endswith('.pyo'):
- f = f[:-1]
- elif f.endswith('$py.class'): # Jython
- f = f[:-9] + ".py"
- self.filename = self.file_locator.canonical_filename(f)
-
- if hasattr(morf, '__name__'):
- n = modname = morf.__name__
- self.relative = True
- else:
- n = os.path.splitext(morf)[0]
- rel = self.file_locator.relative_filename(n)
- if os.path.isabs(n):
- self.relative = (rel != n)
- else:
- self.relative = True
- n = rel
- modname = None
- self.name = n
- self.modname = modname
-
- def __repr__(self):
- return "<CodeUnit name=%r filename=%r>" % (self.name, self.filename)
-
- # Annoying comparison operators. Py3k wants __lt__ etc, and Py2k needs all
- # of them defined.
-
- def __lt__(self, other):
- return self.name < other.name
- def __le__(self, other):
- return self.name <= other.name
- def __eq__(self, other):
- return self.name == other.name
- def __ne__(self, other):
- return self.name != other.name
- def __gt__(self, other):
- return self.name > other.name
- def __ge__(self, other):
- return self.name >= other.name
-
- def flat_rootname(self):
- """A base for a flat filename to correspond to this code unit.
-
- Useful for writing files about the code where you want all the files in
- the same directory, but need to differentiate same-named files from
- different directories.
-
- For example, the file a/b/c.py might return 'a_b_c'
-
- """
- if self.modname:
- return self.modname.replace('.', '_')
- else:
- root = os.path.splitdrive(self.name)[1]
- return root.replace('\\', '_').replace('/', '_').replace('.', '_')
-
- def source_file(self):
- """Return an open file for reading the source of the code unit."""
- if os.path.exists(self.filename):
- # A regular text file: open it.
- return open_source(self.filename)
-
- # Maybe it's in a zip file?
- source = self.file_locator.get_zip_data(self.filename)
- if source is not None:
- return StringIO(source)
-
- # Couldn't find source.
- raise CoverageException(
- "No source for code '%s'." % self.filename
- )
-
- def should_be_python(self):
- """Does it seem like this file should contain Python?
-
- This is used to decide if a file reported as part of the exection of
- a program was really likely to have contained Python in the first
- place.
-
- """
- # Get the file extension.
- _, ext = os.path.splitext(self.filename)
-
- # Anything named *.py* should be Python.
- if ext.startswith('.py'):
- return True
- # A file with no extension should be Python.
- if not ext:
- return True
- # Everything else is probably not Python.
- return False
« no previous file with comments | « third_party/coverage-3.6/coverage/cmdline.py ('k') | third_party/coverage-3.6/coverage/collector.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698