I've updated coverage.py with a number of (mostly user-contributed) changes:
- Multi-threaded programs now have all threads properly measured (thanks Martin Fuzzey).
- The report() method now takes an optional file argument which defaults to stdout.
- Adapted Greg Rogers' patch to allow omitting files by directory from the report and annotation, sorting files, and reporting files relatively.
- coverage.py can now recursively measure itself under test!
What is it about December that spurs work on coverage.py? Looking at the changes made over the years, they have all taken place between December 4th and January 7th across three separate years! Perhaps the coming cold of winter causes us to turn to the warmth and safety of a tool that increases our confidence in our tests...