Requests-cache

Latest version: v1.2.1

Safety actively analyzes 685525 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 9

1.2.1

🪲 **Bugfixes:**
* Fix `normalize_headers` not accepting header values in bytes
* Fix inconsistency due to rounding in `CachedResponse.expires_unix` property
* Fix form boundary used for cached multipart requests to _fully_ comply with RFC 2046
* Fix loading cached JSON content with `decode_content=True` when the root element is an empty list or object
* Fix usage example with `responses` library to be compatible with `requests` 2.32

1.2.0

⚠️ **Deprecations & removals:**
* Drop support for python 3.7
* Remove methods [deprecated in 1.0](deprecations-1-0) from `CachedSession` and `BaseCache`

🕗 **Expiration & headers:**
* Add support for `X-HTTP-Method-Override` and other headers that can override request method

⚙️ **Session methods:**
* Add `CachedSession.wrap()` classmethod to add caching to an existing `requests.Session` object

💾 **SQLite Backend:**
* Add `vacuum` parameter to `SQLiteCache.delete()` to optionally skip vacuuming after deletion (enabled by default to free up disk space)
* Optimize `SQLiteCache.delete()` when deleting a single key

🧩 **Compatibility:**
* Add support for RFC 7159 JSON body with `decode_content=True` (root element with any type)
* Use timezone-aware UTC datetimes for all internal expiration values
* Add support for python 3.12
* Note: There is a known bug with multiprocess/multithreaded usage of the SQLite backend on python 3.12.
* Add support for cattrs 23.2

🪲 **Bugfixes:**
* Fix `IncompleteRead` error that could sometimes occur with streaming requests due to mismatch with `Content-Length` header
* Handle a corner case with streaming requests, conditional requests, and redirects
* When redacting ignored parameters from a cached response, keep the rest of the original URL and headers without normalizing
* Add `CachedHTTPResponse._request_url` property for compatibility with urllib3
* Fix form boundary used for cached multipart requests to comply with RFC 2046
* If an explicit CA bundle path is passed via `verify` param, cache the response under the same key as `verify=True`
* Handle JSON Content-Type charsets and MIME type variations (such as `application/vnd.api+json`) during request normalization and serialization

1.1.1

* Backport fix from 1.2: Add compatibility with cattrs 23.2

1.1.0

⚙️ **Session settings:**
* Add support for regular expressions with `urls_expire_after`

💾 **SQLite Backend:**
* Add `busy_timeout` argument (see [SQLite docs](https://www.sqlite.org/pragma.html#pragma_busy_timeout) for details)
* In WAL journaling mode (`wal=True`), default to 'normal' synchronous mode instead of 'full'
* Fix potential `OperationalError: database is locked` in multithreaded SQLite usage during bulk delete operations
* Fix deadlock in multithreaded SQLite usage if a thread encounters an error during COMMIT

🪲 **Bugfixes:**
* Fix loading cached JSON content with `decode_content=True` when the root element is a list
* Fix `BaseCache.recreate_keys()` to normalize response bodies with `b'None'`
* Fix `BaseCache.contains()` for multipart POST requests
* Fix `CachedResponse.history` not being fully deserialized on python<=3.8
* Fix request matching with `Vary` and redirects
* Skip normalizing `CachedResponse.url` so it always matches the original request URL
* Avoid unnecessary cache writes for revalidation requests if headers and expiration are unchanged
* Add compatibility with urllib3 2.0

1.0.1

* Ignore `Cache-Control: must-revalidate` and `no-cache` response headers with `cache_control=False`

1.0

* Fix forwarding connection parameters passed to `RedisCache` for redis-py 4.2 and python <=3.8
* Fix forwarding connection parameters passed to `MongoCache` for pymongo 4.1 and python <=3.8

Page 1 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.