repoze.lru é um LRU (menos usado recentemente) implementação de cache e decorador. & Nbsp; Chaves e valores que não são usados com freqüência serão despejados do cache mais rápido do que as chaves e valores que são usados com freqüência. Ele funciona sob o Python 2.5, Python 2.6, Python 2.7, e Python 3.2.
API
Criando um objeto LRUCache:
de repoze.lru importação LRUCache
cache = LRUCache (100) # comprimento de 100 max
Recuperando a partir de um objeto LRUCache:
cache.get ('inexistente', 'foo') # voltará 'foo'
cache.get ('inexistente') # retornará None
cache.get ('existente') # irá retornar o valor para existir
Somando-se a um objeto LRUCache:
cache.put ('chave', 'value') # irá adicionar a "chave" da chave com o 'valor' valor
Eliminar uma LRUCache:
cache.clear ()
Decorador
Existe um decorador lru_cache. Todos os valores passados para a função decorado deve ser Hashable. Ele não suporta argumentos:
de repoze.lru importação lru_cache
lru_cache (500)
expensive_function def (* arg):
& Nbsp; passe
Cada função decorado com o decorador lru_cache utiliza sua própria memória relacionada a essa função
O que é novo nesta versão:.
- Adicionado classe auxiliar a 'CacheMaker':. um fabricante mantém referências (por nome) para as caches que cria, para permitir a sua regularização
- Estatísticas adicionado a cada cache, pesquisas de rastreamento, batidas, acidentes, e despejos.
- construção automatizada esfinge docs e testar exemplo trechos sob tox.
- documentação Adicionado Sphinx.
- retirou o suporte para Python 2.5.
- Adicionado suporte para PyPy.
- Adicionado apelido docs setup.py (instala Sphinx e dependências).
- Adicionado setup.py dev apelido (runs desenvolver mais instala nariz e cobertura).
- Adicionado suporte para CI sob Pythons compatíveis usando tox.
- Bug: Remover potencial condição de corrida no fechamento em face de interrupções (edição # 10) .
O que é novo na versão 0.5:
- Feature: adicionou um novo & quot; invalidar () & quot; Método para permitir a remoção de itens a partir do cache (edição # 8).
- Bug: LRUCache.put () pode levar vários segundos em grandes caches (edição # 7) .
- Bug: LRUCache não foi o segmento de seguros (edição # 6) .
- Bug: LRUCache.clock desperdiçaria RAM (edição # 4) .
- Bug:. Repetida empurrando de uma entrada eliminaria outras entradas de cache (Edição # 3)
- Bug: LRUCache iria despejar entradas mesmo quando não está completa (edição # 2) .
Requisitos :
- Python
Comentários não encontrado