diff options
author | Brett Cannon <brett@python.org> | 2011-02-26 13:29:40 -0800 |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2011-02-26 13:29:40 -0800 |
commit | c6fd22b57e5f8a0db880344b06ab5c19b9e0827d (patch) | |
tree | ecd7c9b5c884e6e78744955d3ca94c2c0464919f /__main__.py | |
parent | 2748b0dc7ec5fe7dbfb8c1ab6677c7c17999b25b (diff) | |
download | python-coveragepy-git-c6fd22b57e5f8a0db880344b06ab5c19b9e0827d.tar.gz |
Allow coverage.py to be executed by pointing Python at a repository's
directory.
Since Python 2.6 one can specify a __main__.py in a directory to tell
Python what to do if it is pointed at simply a directory. For
instance, assuming one has a clone of coverage.py sitting at
../coveragepy, this patch allows for::
python ../coveragepy run ...
This is extremely handy if you want to use coverage.py straight from a
clone without adding the clone's directory to sys.path (which can be
an issue at least in the stdlib as that will pick up 'test' as a
package, masking the stdlib's own 'test' package).
Diffstat (limited to '__main__.py')
-rw-r--r-- | __main__.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/__main__.py b/__main__.py new file mode 100644 index 00000000..7ad6d737 --- /dev/null +++ b/__main__.py @@ -0,0 +1,16 @@ +"""Be able to execute coverage.py by pointing Python at the repository's +directory.""" +import os +import runpy + + +PKG = 'coverage' + +try: + run_globals = runpy.run_module(PKG, run_name='__main__', alter_sys=True) + executed = os.path.splitext(os.path.basename(run_globals['__file__']))[0] + if executed != '__main__': # For Python 2.5 compatibility + raise ImportError('Incorrectly executed %s instead of __main__' % + executed) +except ImportError: # For Python 2.6 compatibility + runpy.run_module('%s.__main__' % PKG, run_name='__main__', alter_sys=True) |