Modernize the library
API changes:
- Drop Python 3.4 and 3.5; add Python 3.7 and 3.8
-
lifetime
setting can take an integer or a timedelta - Don't expose
public
in the package namespace - Use exception chaining where appropriate
- Add type annotations and enforce with mypy
Testing:
- Switch to pytest as the testing framework
- Get coverage working through pytest-cov plugin
- diffcov appears to be no longer supported, so sadly ditching it.
- Adjust for new timedelta reprs
Other changes:
- Move flake8 settings to setup.cfg
- Fix flake8 invocation
- Adopt isort instead of flufl.testing flake8 warnings
- Fix namespace package declaration
- Boost coverage
- Bump copyright years
- Bump version
- IOError -> OSError