repoze.lru ist ein LRU (least recently used) Cache-Implementierung und Dekorateur. & Nbsp; Schlüssel und Werte, die nicht häufig verwendet werden, werden aus dem Cache schneller als Schlüssel und Werte, die häufig verwendet werden, vertrieben werden. Es funktioniert unter Python 2.5, Python 2.6, Python 2.7 und Python 3.2.
API
Erstellen eines LRUCache Objekt:
von repoze.lru Import LRUCache
cache = LRUCache (100) # 100 maximale Länge
Abrufen von einem LRUCache Objekt:
cache.get ('nicht vorhandene', 'foo') # wird 'foo' zurück
cache.get ("nicht vorhandene") # None zurück
cache.get ("bestehende") # wird der Wert für bestehende Rück
Hinzufügen zu einem LRUCache Objekt:
cache.put ("Schlüssel", "Wert") # die Taste "Schlüssel" mit dem Wert "Wert" hinzufügen
Löschen eines LRUCache:
cache.clear ()
Dekorateur
Ein lru_cache Dekorateur existiert. Alle Werte an die Funktion übergeben müssen eingerichtet hashable sein. Es unterstützt keine Schlüsselwortargumente:
von repoze.lru Import lru_cache
lru_cache (500)
def expensive_function (* arg):
& Nbsp; Pass
Jede Funktion mit dem lru_cache Dekorateur eingerichteten verwendet eine eigene Cache zu dieser Funktion im Zusammenhang
Was ist neu in dieser Pressemitteilung:.
- Hinzugefügt ein 'CacheMaker "Hilfsklasse: a. Hersteller hält Referenzen (nach Namen), um den Caches schafft, um sie zu erlauben, gelöscht werden
- Hinzugefügt Statistiken zu jedem Cache, Tracking-Lookups, Hits, vermisst und Vertreibungen.
- Automatisierte Gebäude Sphinx docs und testen Beispiel-Snippets unter tox.
- hinzugekommen Sphinx Dokumentation.
- Dropped Unterstützung für Python 2.5.
- Unterstützung für PyPy.
- Hinzugefügt setup.py docs Alias (installiert Sphinx und Abhängigkeiten).
- Hinzugefügt setup.py dev Alias (Läufe entwickeln und installiert Nase und Berichterstattung).
- Unterstützung für CI unter unterstützten Pythons mit tox.
- Bug: am Schloss angesichts der Interrupts (Ausgabe # 10) entfernen Potenzial Race-Bedingung .
Was ist neu in Version 0.5:
- Feature: hat einen neuen & quot; ungültig () & quot; Verfahren zum Entfernen von Elementen aus dem Cache zu ermöglichen (Ausgabe # 8).
- Bug: LRUCache.put () können mehrere Sekunden auf große Caches zu nehmen (Ausgabe # 7) .
- Bug: LRUCache wurde nicht Thread-sicher (Ausgabe # 6) .
- Bug:. LRUCache.clock würden RAM (Ausgabe # 4) Abfall
- Bug:. Wiederholtes Drücken eines Eintrags würden andere Cache-Einträge zu entfernen (Ausgabe # 3)
- Bug: LRUCache wäre Einträge zu vertreiben, auch wenn sie nicht voll ist (Ausgabe # 2) .
Anforderungen :
- Python
Kommentare nicht gefunden