Added
- Improve Falcon integration: tracing is automatically disabled if
installation fails, track middleware, and support class-based responders.
([PR 453](https://github.com/scoutapp/scout_apm_python/pull/453),
[PR 460](https://github.com/scoutapp/scout_apm_python/pull/460))
- Add Hug integration.
([PR 460](https://github.com/scoutapp/scout_apm_python/pull/460))
- Limit size of recorded tracebacks to reduce memory usage.
([PR 476](https://github.com/scoutapp/scout_apm_python/pull/476))
- Scout now flushes any queued commands to the core agent at shutdown, with a
configurable timeout `shutdown_timeout_seconds`, defaulting to 2 seconds.
This ensures that all traces are recorded, rather than lost, especially
useful for single-run background commands.
([Issue 473](https://github.com/scoutapp/scout_apm_python/issues/473))
- Move from **requests** to underlying **urllib3** for downloads to reduce
dependency footprint.
([PR 480](https://github.com/scoutapp/scout_apm_python/pull/480))
- Retry downloading the core agent a few times, and use a timeout to prevent
startup hangs.
([PR 480](https://github.com/scoutapp/scout_apm_python/pull/480))
Fixed
- Moved some user-facing warnings, such as for deprecated features, from
`logging` to `warnings`, so they can be caught during testing.
([PR 468](https://github.com/scoutapp/scout_apm_python/pull/468))
- Fix Jinja2 asynchronous rendering instrumentation for Jinja2 2.11.0+.
([PR 462](https://github.com/scoutapp/scout_apm_python/pull/462))
- Stop patching `elasticsearch`'s `scripts_painless_context()`, because it has
been removed in version 7.5.1.
([Issue 454](https://github.com/scoutapp/scout_apm_python/issues/454))
- Fix for `elasticsearch` version 7.5.1's change of positional argument order.
([Issue 456](https://github.com/scoutapp/scout_apm_python/issues/456))