repoze.lru är en LRU (minst senast använda) genomförande och dekoratör cache. & Nbsp; nycklar och värden som inte används frekvent ska vräkas från cachen snabbare än nycklar och värden som används ofta. Det fungerar i Python 2.5, Python 2.6, Python 2.7, och Python 3.2.
API
Skapa en LRUCache objekt:
från repoze.lru import LRUCache
cache = LRUCache (100) # 100 maxlängd
Hämta från en LRUCache objekt:
cache.get ("obefintlig", "foo") # återgår "foo"
cache.get ("obefintlig") # återgår Inget
cache.get ("befintliga") # återgår värdet för befintliga
Lägga till en LRUCache objekt:
cache.put ("nyckel", "värde") # kommer att lägga nyckeln "nyckel" med värdet "värde"
Rensa en LRUCache:
cache.clear ()
Dekoratör
En lru_cache dekoratör existerar. Alla värden som skickas till dekorerade funktionen måste vara hashable. Det stöder inte sökords argument:
från repoze.lru import lru_cache
lru_cache (500)
def expensive_function (* arg):
& Nbsp; pass
Varje funktion dekorerad med lru_cache dekoratör använder sin egen cache relaterade till denna funktion
Vad är nytt i den här versionen:.
- Lade till en "CacheMaker" hjälpare Klass:. en tillverkare håller referenser (med namn) till cachar den skapar, att tillåta dem att rensas
- Lades statistik till varje cache, spårning uppslag, hits, missar, och vräkningar.
- Automatiserad bygg Sphinx docs och testa exempel snuttar i tox.
- Lade Sphinx dokumentation.
- Tappat stöd för Python 2.5.
- Stöd för PyPy.
- Inkom setup.py docs alias (installerar Sphinx och beroenden).
- Inkom setup.py dev alias (körningar utvecklar plus installerar näsa och täckning).
- Stöd för CI enligt stöds Pythons använder tox.
- Bug: Ta bort eventuella konkurrenstillstånd på låset i ansiktet av avbrott (Issue # 10) .
Vad är nytt i version 0.5:
- Feature: lagt till en ny & quot; ogiltig () & quot; metod för att kunna ta bort poster från cachen (frågan # 8).
- Bug: LRUCache.put () kan ta flera sekunder på stora cachar (Issue 7 #) .
- Bug: LRUCache var inte trådsäkert (Issue # 6) .
- Bug: LRUCache.clock skulle slösa RAM (Issue # 4) .
- Bug:. Upprepade skjuta av en post skulle ta bort andra cacheposter (Issue # 3)
- Bug: LRUCache skulle avhysa poster även när de inte fullt (Issue # 2) .
Krav :
- Python
Kommentarer hittades inte