Reader now extends new FileReader class, which contains the dispatch / loop methods and access to the underlying file object. This simplifies the snoop reader class and allows the Reader class to implement only snoop-specific methods.
Separate testing implemented for the generic FileReader class.
Updated tox.ini to exclude the code of abstractmethods.
About 2.6:
python 2.6 has been unsupported for at least 4 years. Drop support for
the python version as there have been several changes made in recent
years to fix functional and security bugs with the interpreter, etc.
It's best to upgrade to python 2.7 (if one is stuck on 2.x), or upgrade
to py3.
About 3.7:
python 3.7.0 was released 10 months ago. As such, it's reasonable to add
test coverage to ensure it functions.
It is reasonably close feature-wise to 3.6 that there will unlikely be
any behavioral difference in this package. Some of the benefits of 3.7
over earlier versions is improved `asyncio` module support and general
performance improvements.
More information about what's new in 3.7 can be found
[here](https://docs.python.org/3.7/whatsnew/3.7.html).
* Switch from Trusty (the default Ubuntu distro) to Xenial in order to
support python 3.7 testing with Travis, as Trusty lacks python 3.7
support.
* Use pypy3.5 since the pypy package (unversioned) isn't available for
Xenial, per the
[Travis CI docs](https://docs.travis-ci.com/user/languages/python/#pypy-support).
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>