* Rename `_Port.error` to be `_Port.error_channel`.
* Correct comment about where setsockopt is being called.
* Add comments clarifying why the double call to the same methods to setup channel information.
* Allow for ports specified with both local and remote port numbers.
This will be familiar for Python users as subprocess.Popen has
the same attribute. Also, the behavior is such the returncode returns
a None value if the process was not run yet.
Other than that, when the process exists with a numerical code this will
be the value of the return code. If the command executed successfully
the return value will be 0.
As discussed, Python modules which aren't intended to be invoked
as scripts should not include a shebang line.
Update CONTRIBUTING.md and the checker script.
This script now includes a list SKIP_FILES for files that
should not be checked for boilerplate template.
The tests will now fail if a Python module has a shebang line.
Scripts which should have a shebang line and exists in the directory
`hack` can be ignored by adding them to the SKIP_FILES list.
On Python 2, strings are bytestrings either way. On Python 3, the
result of `chr(channel)` is `str`, while the data itself is
`bytes`. The channel prefix needs to be turned into a binary type,
and the websocket frame needs the correct opcode (binary vs. text).
See #151 for the bug report and related issues.