[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 
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

[2] struct module
clear entire cache when full
capacity: 100, unchangeable
implementation: C

More information about the Python-ideas mailing list