Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

timedpool-0.1.1.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

timedpool-0.1.1-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file timedpool-0.1.1.tar.gz.

File metadata

  • Download URL: timedpool-0.1.1.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for timedpool-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3200c3890a80d3bf9f7d75ccf5553c07465a88e166fe3fbc1b553ab3b0c89ca8
MD5 86773baf4b6c622c2f71931e1e71245b
BLAKE2b-256 bd2346c43a3197d455234d19073ec563a285c2ff1283ac5f8e66ac533fe6f793

See more details on using hashes here.

File details

Details for the file timedpool-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: timedpool-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for timedpool-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 38e83efe460218ead26e10cffe988db55b6f7c27dca80df7d25d629e789717fd
MD5 ac048fc32d7a1c6b1b2bba1a5edf1ee2
BLAKE2b-256 783efb16882f7f70ba62064f46f433a3dd5a0d06ad2a233de92dfa20b728a611

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page