[Python-ideas] Unified style of cache management API
Ma Lin
malincns at 163.com
Wed Mar 27 09:46:44 EDT 2019
re module [1] and struct module [2] have module-level cache for compiled
stuffs.
Other third-party modules may also need cache for something.
Do we need an unified cache management API like this?
I suppose it's not mandatory, but welcome each module to use this API.
module.cache_get_capacity() # return current capacity
module.cache_set_capacity(100) # set capacity
module.cache_clear() # clear cache
Moreover, add these API to sys module, then the users can manage system
wide cache easily:
sys.cache_register(f) # register a .cache_clear() function
sys.cache_clear() # call all registered .cache_clear()
[1] re module
policy: FIFO
capacity: 512 (default), changeable
implementation: Python
https://github.com/python/cpython/blob/v3.8.0a3/Lib/re.py#L268-L295
[2] struct module
clear entire cache when full
capacity: 100, unchangeable
implementation: C
https://github.com/python/cpython/blob/v3.8.0a3/Modules/_struct.c#L2071-L2126
More information about the Python-ideas
mailing list