----------------
- Deprecate Python 2.7, 3.4 and 3.5 support.
[aleksihakli]
- Remove automatic decoration and monkey-patching of Django views and forms.
Decorators are available for login function and method decoration as before.
[aleksihakli]
- Use backend, middleware, and signal handlers for tracking
login attempts and implementing user lockouts.
[aleksihakli, jorlugaqui, joshua-s]
- Add ``AxesDatabaseHandler``, ``AxesCacheHandler``, and ``AxesDummyHandler``
handler backends for processing user login and logout events and failures.
Handlers are configurable with the ``AXES_HANDLER`` setting.
[aleksihakli, jorlugaqui, joshua-s]
- Improve management commands and separate commands for resetting
all access attempts, attempts by IP, and attempts by username.
New command names are ``axes_reset``, ``axes_reset_ip`` and ``axes_reset_username``.
[aleksihakli]
- Add support for string import for ``AXES_USERNAME_CALLABLE``
that supports dotted paths in addition to the old
callable type such as a function or a class method.
[aleksihakli]
- Deprecate one argument call signature for ``AXES_USERNAME_CALLABLE``.
From now on, the callable needs to accept two arguments,
the HttpRequest and credentials that are supplied to the
Django ``authenticate`` method in authentication backends.
[aleksihakli]
- Move ``axes.attempts.is_already_locked`` function to ``axes.handlers.AxesProxyHandler.is_locked``.
Various other previously undocumented methods have been deprecated and moved inside the project.
The new documented public APIs can be considered as stable and can be safely utilized by other projects.
[aleksihakli]
- Improve documentation layouting and contents. Add public API reference section.
[aleksihakli]