Adding torirc to our examples
Linking to the 14.1 slackware link

Change requested by Markus for the next Slackware release, which will have stem
version 1.1.1.
Dropping PYFLAKES_IGNORE

Simple case of premature optimization. We cached our 'path => issue' mappings
for pyflakes messages to ignore. This is pointless - we only do it once, and
it's not even any substantial overhead to do repeatedly.
Helper function for ignored pyflakes issues

Bit of this code is begging for a small helper function. Makes the loop far
more readable.
Style checks accidently clobbered 'path'

Oops, we used the 'path' variable a little name overwriting it from the outer
scope. This in turn likely broke our custom style checks making them apply to
just the last PEP8 match rather than the full directory.
Use pyflakes' api rather than shelling out

We've been shelling out to pyflakes and parsing its output. This is all well
and good except that it's... well, silly. Pyflakes is a python library, and
provides us with well structured data faster if we use it like so. This halves
the runtime of our unit tests (from 6 to 3 seconds on my system)!
Use pep8's api rather than shelling out

Like pyflakes, pep8 is a python library (... albeit a lot more confusing to
use). This provides us a 63% drop in the runtime of our style checks (from 8 to
3 seconds on my system). This is down to the realm that I'm a little tempted to
always run them...
Always running style checks

Running pep8 took substantially longer than all our unit tests, so we only ran
it if the user included the '--style' argument. Now that the runtime's down to
something reasonable we can include it in all test runs.
Subclassing pyflakes' Reporter

Properly subclassing pyflakes' reporter rather than simply implementing its
interface.
Dropping unneeded pyflakes rules

Removing rules for things that pyflakes 0.7.3 doesn't complain about. I'm not
sure if this is due to changes over time in our code or pyflakes itself. If the
later then we might add the rules back in later to prevent it from being noisy
on platforms with other versions.
Moving files_with_suffix() to system util

Our system module already has path manipulation helpers like expand_path() so
probably a better home for files_with_suffix().
Using _python_files() for custom style checks

Oops, we pretty much duplicated _python_files() for a bit of our checks.
Using pyflakes and pep8 apis

Taking advantage of pyflakes and pep8 as python modules rather than shelling
out, along with other general improvements for our static checks. This results
in around a 60% reduction in the runtime for our static checks.
Checking for the pyflakes modules we use

Presently our jenkins tests are failing since the system has pyflakes version
0.5 which evidently doesn't have the pyflakes.api module...

  https://trac.torproject.org/10539

Checking explicitly for the modules we use when determining if pyflakes is
avaialable.
Moving static checks to the start

Rearranging our test run so the static checks (pyflakes and pep8) occure at the
start and are listed among the initialization tasks. This makes it clearer that
they're running and the runtime dedicated to them. It also gets rid of a silent
pause at the end of the test run I've always disliked.
Checking for pep8.BaseReport

Our jenkins tests are also failing because they have the pep8 module, but it
lacks the BaseReport. Checking for that as well.
Defaulting to provide less verbose test output

Our test output is pretty sweet, but as we've added more tests it's gotten to
be pretty overwhelming. This is especially troublesome for the RUN_ALL target
which our jenkins test use.

Dropping output on individual tests unless there's a failure. Instead, we now
just print the test modules and their runtime. Users can get the more verbose
output by including '--verbose' in their test run.
Style issues suppressed pyflakes results

When both pyflakes and pep8 reported issues about a file the pep8 results
clobbered the pyflakes output. Properly combining the two instead.
Don't run static tests with the --test argument

When we're running a single test it sucks to wait for static checks. They're
now quick, but not that quick.
Increase --test scope to be any module substring

Our --test argument only ran tests matching a given prefix but this was silly
for a couple reasons...

1. That's unintuitive. If I give 'util.conf' I expect it to run tests with
   'util.conf', not starting with that. There's no advantage to a prefix match.

2. Now that we're displaying less verbose test output we strip off the
   'test.unit.' or 'test.integ.' prefix that all the module names have. With
   this change the user can copy-and-paste what we show them to just run that
   test.