1 # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
1 # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
2 # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt |
2 # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt |
3 |
3 |
4 """Code coverage measurement for Python. |
4 """Code coverage measurement for Python. |
5 |
5 |
6 Ned Batchelder |
6 Ned Batchelder |
7 https://nedbatchelder.com/code/coverage |
7 https://nedbatchelder.com/code/coverage |
8 |
8 |
9 """ |
9 """ |
10 |
10 |
|
11 import sys |
|
12 |
11 from coverage.version import __version__, __url__, version_info |
13 from coverage.version import __version__, __url__, version_info |
12 |
14 |
13 from coverage.control import Coverage, process_startup |
15 from coverage.control import Coverage, process_startup |
14 from coverage.data import CoverageData |
16 from coverage.data import CoverageData |
15 from coverage.debug import enable_aspectlib_maybe |
|
16 from coverage.misc import CoverageException |
17 from coverage.misc import CoverageException |
17 from coverage.plugin import CoveragePlugin, FileTracer, FileReporter |
18 from coverage.plugin import CoveragePlugin, FileTracer, FileReporter |
18 from coverage.pytracer import PyTracer |
19 from coverage.pytracer import PyTracer |
19 |
20 |
20 # Backward compatibility. |
21 # Backward compatibility. |
21 coverage = Coverage |
22 coverage = Coverage |
22 |
23 |
23 # Possibly enable aspectlib to debug our execution. |
|
24 enable_aspectlib_maybe() |
|
25 |
|
26 # On Windows, we encode and decode deep enough that something goes wrong and |
24 # On Windows, we encode and decode deep enough that something goes wrong and |
27 # the encodings.utf_8 module is loaded and then unloaded, I don't know why. |
25 # the encodings.utf_8 module is loaded and then unloaded, I don't know why. |
28 # Adding a reference here prevents it from being unloaded. Yuk. |
26 # Adding a reference here prevents it from being unloaded. Yuk. |
29 import encodings.utf_8 |
27 import encodings.utf_8 # pylint: disable=wrong-import-position, wrong-import-order |
30 |
28 |
31 # Because of the "from coverage.control import fooey" lines at the top of the |
29 # Because of the "from coverage.control import fooey" lines at the top of the |
32 # file, there's an entry for coverage.coverage in sys.modules, mapped to None. |
30 # file, there's an entry for coverage.coverage in sys.modules, mapped to None. |
33 # This makes some inspection tools (like pydoc) unable to find the class |
31 # This makes some inspection tools (like pydoc) unable to find the class |
34 # coverage.coverage. So remove that entry. |
32 # coverage.coverage. So remove that entry. |
35 import sys |
|
36 try: |
33 try: |
37 del sys.modules['coverage.coverage'] |
34 del sys.modules['coverage.coverage'] |
38 except KeyError: |
35 except KeyError: |
39 pass |
36 pass |