Revalidate for Cache-Control: no-cache request or response header
Revalidate for Cache-Control: max-age=0, must-revalidate response headers
Add an attribute CachedResponse.revalidated to indicate if a cached response was revalidated for
the current request
⚙️ Session settings:
All settings that affect cache behavior can now be accessed and modified via CachedSession.settings
Add always_revalidate session setting to always revalidate before using a cached response (if a validator is available).
Add only_if_cached session setting to return only cached results without sending real requests
Add stale_while_revalidate session setting to return a stale response initially, while a non-blocking request is sent to refresh the response
Make behavior for stale_if_error partially consistent with Cache-Control: stale-if-error: Add support for time values (int, timedelta, etc.) in addition to True/False
⚙️ Request settings:
Add only_if_cached option to CachedSession.request() and send() to return only cached results without sending real requests
Add refresh option to CachedSession.request() and send() to revalidate with the server before using a cached response
Add force_refresh option to CachedSession.request() and send() to awlays make and cache a new request regardless of existing cache contents
Make behavior for expire_after=0 consistent with Cache-Control: max-age=0: if the response has a validator, save it to the cache but revalidate on use.
The constant requests_cache.DO_NOT_CACHE may be used to completely disable caching for a request
💾 Backends:
DynamoDB:
For better read performance and usage of read throughput:
The cache key is now used as the partition key
Redirects are now cached only in-memory and not persisted
Cache size (len()) now uses a fast table estimate instead of a full scan
Store responses in plain (human-readable) document format instead of fully serialized binary
Create default table in on-demand mode instead of provisioned
Add optional integration with DynamoDB TTL to improve performance for removing expired responses
This is enabled by default, but may be disabled
Decode JSON and text response bodies so the saved response can be fully human-readable/editable.
May be disabled with decode_content=False.
Filesystem:
The default file format has been changed from pickle to JSON
Decode JSON and text response bodies so the saved response can be fully human-readable/editable.
May be disabled with decode_content=False.
MongoDB:
Store responses in plain (human-readable) document format instead of fully serialized binary
... (truncated)
Commits
8e4de3c Merge pull request #805 from requests-cache/fix-must-revalidate
0dcf409 Update dependencies, pre-commit hooks, and contributors
5bcb137 Ignore Cache-Control: must-revalidate and no-cache when cache_control=False
7c71b5a Merge pull request #804 from sleiner-forks/feat/url-match-regex
You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Updates the requirements on requests-cache to permit the latest version.
Changelog
Sourced from requests-cache's changelog.
... (truncated)
Commits
8e4de3c
Merge pull request #805 from requests-cache/fix-must-revalidate0dcf409
Update dependencies, pre-commit hooks, and contributors5bcb137
Ignore Cache-Control: must-revalidate and no-cache when cache_control=False7c71b5a
Merge pull request #804 from sleiner-forks/feat/url-match-regex94331ef
Allow regexes for URL expiration patterns812301a
Merge branch 'docs'691b831
Update dependenciesd4ba370
Update sample cache files00f9a4a
Update changelogbf430c6
Update contributorsYou can trigger a rebase of this PR by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)