repoze.lru egy FVT (legrégebben használt) cache végrehajtása és dekoratőr. & Nbsp; kulcsokat és értékeket, amelyeket nem használnak gyakran kerülnek kilakoltatták a cache gyorsabb, mint a kulcsokat és értékeket a gyakran használt. Úgy működik Python 2.5, Python 2.6, Python 2.7, és a Python 3.2.
API
Létrehozása LRUCache objektum:
a repoze.lru import LRUCache
cache = LRUCache (100) # 100 max hossza
Visszakeresése egy LRUCache objektum:
cache.get ("nem létező", "foo") # visszatér 'ize'
cache.get ("nem létező") # visszatér Semmi
cache.get ("meglévő") # értéket fogja visszaküldeni a meglévő
Hozzátéve, hogy az LRUCache objektum:
cache.put ("kulcs", "érték") # növeli a kulcsot "kulcs", melynek értéke "érték"
Elszámolási egy LRUCache:
cache.clear ()
Díszlettervező
A lru_cache dekoratőr létezik. Minden érték át a díszített funkciót kell hashable. Nem támogatja a kulcsszó érvek:
a repoze.lru import lru_cache
lru_cache (500)
def expensive_function (* arg):
& Nbsp; menetben
Minden funkció díszített lru_cache dekoratőr használja a saját cache kapcsolatos, hogy a funkció.
Mi az új ebben a kiadásban:
- hozzáadott egy "CacheMaker" segítő osztály: a készítő tartja referenciák (név szerint) a cache teremt, amely lehetővé teszi számukra, hogy lehet törölni.
- Added statisztikák az egyes cache, nyomkövető kereséseket, üt, hiányzik, és a kilakoltatások.
- Automatizált épület Sphinx docs és tesztelése például töredékek alapján tox.
- Added Sphinx dokumentációt.
- Eldobott támogatása Python 2.5.
- A támogatás a PyPy.
- Added setup.py docs alias (telepíti Szfinx és a függőségek).
- Added setup.py dev alias (fut fejlesztése, valamint telepíti az orr és a lefedettség).
- A támogatás a CI alatt támogatott Python segítségével tox.
- Bug: Vegye potenciális versenyhelyzet a zár arca megszakítások (Issue # 10).
Mi az új a 0.5 verzió:
- Téma: hozzáadott egy új & quot; érvényteleníti () & quot; módszer lehetővé teszi eltávolítását elemeket a cache (kérdés # 8).
- Bug: LRUCache.put () eltarthat több másodpercig nagy cache (Issue # 7).
- Bug: LRUCache nem thread safe (Issue # 6).
- Bug: LRUCache.clock menne veszendőbe RAM (Issue # 4).
- Bug: ismételt megnyomásával a bejegyzést megszüntetné a többi cache bejegyzéseket (Issue # 3).
- Bug: LRUCache lenne kilakoltatására bejegyzéseket is, ha nincs tele (Issue # 2).
követelmények :
- Python
Hozzászólás nem található