Flush stdout
As noted in email, it seems that failing to flush stdout in the sub-processes means that some output might go missing. I've observed this in practice with Syntastic in Vim. Here I flush both stdout and stderr before sending the message back to the main process that will allow it to continue. This makes the problem disappear for me.
It occurs to me that if sub-processes are producing output independently, there is also be a risk that they will badly interleave their output. I haven't looked into this - my primary concern is invocation for a single file at a time.
See merge request !7
I have seen people who place the comment at the bottom of the file and it
would be backwards incompatible if we did anything but preserve it as a search
instead of match
Only match '\s*# flake8[:=]\s*nqa' when it happens at the beginning of a
line. The previous version of this regex is incorrectly hitting the
following line:
# Any "# flake8: noqa" line?
Causing flake8 to not be run on engine.py.
Also fix flake8 issues in engine.py.
Tox 1.6 has a feature to install code into the virtualenv via 'setup.py
develop' This makes it easier to source the tox virtualenv and test code
changes.
In short, pep8's option processing would bomb out if there were neither args
provided or config files present (setup.cfg, tox.ini, .pep8, ...).
--install-hook should work regardless of whether a config file is present or
not, so we use a callback to add an argument to the parser's internal argument
list and skip the check altogether. Links for context are in the comments in
this diff.
Git hook file pattern match
I found that with the git hook installed, flake8 was failing to check some files. Upon examination, I found that the hook is coded to only consider files ending in '.py'. This works out to be an override of the expected behavior, which is to honor the "filename" option in tox.ini.
See merge request !1
In a config file, a user can use the "filename" option to specify
a pattern for matching filenames. The git hook effectively ignores
this and only checks files ending in '.py'
^C was making the script hang (few scenarios possible).
This patch makes sure that the queue operations won't block forever.
Potentially related to #167