Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I updated the code to be Python 3-compatible; it should run under any 2.6+/3.2+.
I smoke-tested with 2.6, 2.7, 3.3, and pre-3.5 trunk with CPython, and 2.7 and 3.2 with PyPy 2.3.1.
Rather than try to fix all the mixed-str-and-bytes stuff caused by trying to work with hex strings instead of raw bytes, I changed it to use
struct.pack
/unpack
everywhere. I believe I caught and fixed at least one bug along the way where a hex string was sent in place of the bytes it represented. But I wouldn't be too surprised if I also added at least one bug. Unfortunately, there doesn't seem to be a test suite, and I'm not sure how to stress-test it myself.I also cleaned up the code so that it passes PEP8 (no point adding an automated PEP8 test to just ignore the warnings…), and updated
check.py
so that it works with PEP8 1.3 and later.