9 * Add formal support for Python 3.8
10 * Remove formal support for Python 3.4
11 * Switch from Travis to GitHub actions
12 * Made tests pass flake8 for Python 2.7
17 * Added formal support for Python 3.7
18 * Removed formal support for Python 3.3
23 * Catch SyntaxError from asyncio import on older versions of Python, thanks to @asottile
28 * Really fixed tests, thanks to @pydanny
33 * Added conftest.py to manifest so tests work properly off the tarball, thanks to @dotlambda
34 * Ensured new asyncio tests didn't break Python 2.7 builds on Debian, thanks to @pydanny
35 * Code formatting via black, thanks to @pydanny and @ambv
41 * Added asyncio support, thanks to @vbraun
42 * Remove Python 2.6 support, whose end of life was 5 years ago, thanks to @pydanny
48 * Validate for Python 3.6
54 * Drop some non-ASCII characters from HISTORY.rst, thanks to @AdamWill
55 * Added official support for Python 3.5, thanks to @pydanny and @audreyr
56 * Removed confusingly placed lock from example, thanks to @ionelmc
57 * Corrected invalidation cache documentation, thanks to @proofit404
58 * Updated to latest Travis-CI environment, thanks to @audreyr
63 * Overall code and test refactoring, thanks to @gsakkis
64 * Allow the del statement for resetting cached properties with ttl instead of del obj._cache[attr], thanks to @gsakkis.
65 * Uncovered a bug in PyPy, https://bitbucket.org/pypy/pypy/issue/2033/attributeerror-object-attribute-is-read, thanks to @gsakkis
66 * Fixed threaded_cached_property_with_ttl to actually be thread-safe, thanks to @gsakkis
71 * Regression: As the cache was not always clearing, we've broken out the time to expire feature to its own set of specific tools, thanks to @pydanny
72 * Fixed typo in README, thanks to @zoidbergwill
77 * Added timed to expire feature to ``cached_property`` decorator.
78 * **Backwards incompatiblity**: Changed ``del monopoly.boardwalk`` to ``del monopoly['boardwalk']`` in order to support the new TTL feature.
83 * Added threading support with new ``threaded_cached_property`` decorator
84 * Documented cache invalidation
86 * Sourced the bottle implementation
91 * Fix the dang-blarged py_modules argument.
96 * Removed import of package into ``setup.py``
101 * Documentation fixes. Not opening up a RTFD instance for this because it's so simple to use.
106 * setup.py fix. Whoops!
111 * First release on PyPI.