repoze.lru es un LRU (menos utilizado recientemente) la implementación de caché y decorador. & Nbsp; Keys y los valores que no se utilizan con frecuencia serán desalojados de la caché más rápido que las claves y valores que se utilizan con frecuencia. Funciona bajo Python 2.5, Python 2.6, Python 2.7 y Python 3.2.
API
Creación de un objeto LRUCache:
desde repoze.lru LRUCache importación
cache = LRUCache (100) # 100 m de eslora
Recuperando de un objeto LRUCache:
cache.get ('inexistente', 'foo') # volverá 'foo'
cache.get ('inexistente') # devolverá None
cache.get («existentes») # devolverá el valor de existir
Agregando a un objeto LRUCache:
("llave", "valor") cache.put # agregará la "clave" clave con el valor "valor"
Borrado de una LRUCache:
cache.clear ()
Decorador
Existe un decorador lru_cache. Todos los valores pasados a la función decorada deben ser hashable. No es compatible con los argumentos de la palabra clave:
desde repoze.lru lru_cache importación
lru_cache (500)
expensive_function def (* arg):
& Nbsp; pase
Cada función decorado con el decorador lru_cache utiliza su propio caché relacionados con esa función
¿Qué hay de nuevo en esta versión:.
- Añadido clase de ayuda a 'CacheMaker':. un fabricante mantiene referencias (por nombre) a las memorias caché que crea, que les permita ser limpiado
- estadísticas agregadas a cada caché, búsquedas de seguimiento, golpes, accidentes, y los desalojos.
- construcción automatizada Esfinge documentos y pruebas ejemplo fragmentos bajo tox.
- documentación Agregado Esfinge.
- abandonado el soporte para Python 2.5.
- Se ha añadido soporte para PyPy.
- Añadido docs setup.py alias (instala Esfinge y dependencias).
- setup.py Añadido dev alias (carreras se desarrollan además instala la nariz y la cobertura).
- Se ha añadido soporte para la IC bajo pitones soportados utilizando tox.
- Bug: Retire potencial condición de carrera en el bloqueo en la cara de interrupciones (Issue # 10) .
¿Cuál es nuevo en la versión 0.5:
- Reportaje: añadido un nuevo & quot; invalidar () & quot; método para permitir la remoción de elementos de la caché (edición # 8).
- Bug: LRUCache.put () podría tomar varios segundos en grandes alijos (Número 7 #) .
- Bug: LRUCache no estaba de subprocesos (Edición # 6) .
- Bug: LRUCache.clock perdería RAM (Edición # 4) .
- Bug:. Repetida empuje de una entrada eliminaría otras entradas de caché (Edición # 3)
- Bug: LRUCache sería desalojar entradas, incluso cuando no está lleno (Edición # 2) .
Requisitos :
- Python
Comentarios que no se encuentran