repoze.lru er en LRU (minst nylig brukt) cache implementering og dekoratør. & Nbsp; Keys og verdier som ikke brukes ofte vil bli kastet ut fra cachen raskere enn nøkler og verdier som brukes ofte. Det fungerer under Python 2.5, Python 2.6, Python 2.7, og Python 3.2.
API
Opprette et LRUCache objekt:
fra repoze.lru import LRUCache
cache = LRUCache (100) # 100 maks lengde
Hente fra en LRUCache objekt:
cache.get ('ikke-eksisterende', 'foo') # vil returnere 'foo'
cache.get ('ikke-eksisterende') # vil returnere None
cache.get ('eksisterende') # vil returnere verdien for eksisterende
Legge til en LRUCache objekt:
cache.put ("nøkkelen", "verdi") # vil legge nøkkelen "nøkkelen" med verdien "verdi"
Fjerne en LRUCache:
cache.clear ()
Dekoratør
En lru_cache dekoratør eksisterer. Alle verdier som sendes til dekorerte funksjonen må være hashable. Den støtter ikke søkeord argumenter:
fra repoze.lru import lru_cache
lru_cache (500)
def expensive_function (* arg):
& Nbsp; pass
Hver funksjon dekorert med lru_cache dekoratør bruker sin egen cache relatert til den funksjonen
Hva er nytt i denne utgaven:.
- lagt til en "CacheMaker 'helper klasse: a. maker holder referanser (etter navn) til cachene det skaper, slik at de kan bli slettet
- Lagd statistikk til hver cache, sporing oppslag, treffer, meteren, og utkastelser.
- Automatisert bygge Sphinx docs og testing eksempel snutter henhold tox.
- Lagd Sphinx dokumentasjon.
- Droppet støtte for Python 2.5.
- Lagt til støtte for PYPY.
- Lagt setup.py docs alias (installerer Sphinx og avhengigheter).
- Lagt setup.py dev alias (runs utvikle pluss installerer nese og dekning).
- Lagt til støtte for CI henhold støttede Pythons hjelp tox.
- Bug: Fjern potensiell rase tilstand på låsen i ansiktet av avbrudd (Issue # 10) .
Hva er nytt i versjon 0.5:
- Feature: lagt til en ny & quot; ugyldig () & quot; metode for å tillate fjerning av elementer fra cache (problemet # 8).
- Bug: LRUCache.put () kunne ta flere sekunder på store cacher (Issue # 7) .
- Bug: LRUCache ble ikke træ safe (Issue # 6) .
- Bug: LRUCache.clock ville kaste bort RAM (Issue # 4) .
- Bug:. Gjentatte trykke på en oppføring ville fjerne andre hurtigbufferoppføringer (Issue # 3)
- Bug: LRUCache ville kaste ut oppføringer selv når ikke full (Issue # 2) .
Krav :
- Python
Kommentarer ikke funnet