Python library adding a dictionary with a maximum size and whose elements are deleted after a delay
Project description
timedpool
Python library adding a dictionary with a maximum size and whose elements are deleted after a delay.
Installation
Run: pip install timedpool
Usage
TimedPool is a dict with a maximum size whose elements are deleted after a delay.
This object can be used as a dictionary:
p = TimedPool()
p[key] = value
if key in p:
print(p[key])
print(len(p))
del p[key]
The difference with a normal dictionary is that this can contain a maximum
number of objects, after which insertions will raise a FullException
.
Furthermore, each item can be removed after a certain amount of time (ttl).
Items are not removed immediately, but at fixed intervals.
Using p[key] = value
will apply the default ttl; instead,
p.set(ket, value, ttl)
allows to set a specific ttl.
The stop()
method can be used to stop the cleaning routine.
Both max_size
and clean_t
must be greater or equal to 0, negative
values are rounded to 0.
The initial
parameter can be an iterable of tuples that is used to
populate the pool with some elements.
It is equivalent to adding each key-value tuple to the pool in the order
provided by the iterable. If initial
is a dictionary, its elements will
be added in the order provided by the dictionary items()
method.
This object supports all the methods of a python dict with the following exceptions:
- copy
- setdefault
- update
- values
- items
Implementation
The implementation extends a python dict. A routine is run on another thread to periodically scan the elements and remove those that are expired.
This implies that expired elements will be still available until the cleaning routine is run.
Contribute
If you find a bug, have a feature request or suggestions, please open an issue on github.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for timedpool-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63539f1d5e21aed4224fc13a681fbc5c59c9a929e98abc4956cd48ffe00413a8 |
|
MD5 | 9e0bf807373af4d80f5d66856748c3b0 |
|
BLAKE2b-256 | 767a354df50c76ad3f63c5f61df8e0a1a430fc2baa8fbd0bb198bec2d0d63acd |