Adds LimitLengthPlugin, tests missing. #721
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What do these changes do?
This addresses #498 by adding a plugin that limits the amount of cached records to max_length for memory based caches.
"max_size" is not used since it can be more easily mistaken by a limit in bytes instead of number of records.
After a record is added, if the cache is larger than the set capacity, the records closest to expiration are deleted until the cache returns to the size limit.
Are there changes in behavior for the user?
Only if the user decides to use it, in which case the user will create the caches using
plugins=[LimitLengthPlugin(max_length=whatever),...]
. It changes nothing otherwise.Related issue number
#498
I have added some code to test basic functionality, but I have no idea how to properly implement the tests. I will be happy to implement the tests if you can point me in the right direction.
Checklist
CHANGES
folder<issue_id>.<type>
(e.g.588.bugfix
)issue_id
change it to the pr id after creating the PR.feature
: Signifying a new feature..bugfix
: Signifying a bug fix..doc
: Signifying a documentation improvement..removal
: Signifying a deprecation or removal of public API..misc
: A ticket has been closed, but it is not of interest to users.Fix issue with non-ascii contents in doctest text files.