repoze.lru jest LRU (przynajmniej ostatnio używane) realizację cache i dekorator. & Nbsp; klucze i wartości, które nie są często używane zostaną wydaleni z bufora szybciej niż klucze i wartości, które są często używane. To działa w Pythonie 2.5, Python 2.6, Python 2.7 i Python 3.2.
API
Tworzenie obiektu LRUCache:
z repoze.lru importu LRUCache
cache = LRUCache (100) # długość 100 max
Pobieranie z obiektu LRUCache:
cache.get ("nieistniejącego", "foo") # zwróci 'foo'
cache.get ("nieistniejącego") # zwróci None
cache.get ("istniejące") # zwróci wartość dla istniejących
Dodanie do obiektu LRUCache:
cache.put ("klucz", "wartość") # doda "klucza" klucz z "wartości" wartości
Kasowanie LRUCache:
cache.clear ()
Dekorator
Lru_cache dekorator istnieje. Wszystkie wartości przekazywane do funkcji zdobione musi być hashable. Nie obsługuje argumentów słów kluczowych:
z repoze.lru importu lru_cache
lru_cache (500)
expensive_function def (* arg):
& Nbsp; karnet
Każda funkcja odznaczony dekorator lru_cache posiada własny cache związane z tą funkcją
Co nowego w tym wydaniu:.
- Dodano 'CacheMaker "klasy pomocnika. ekspres utrzymuje odniesień (według nazwy) do pamięci podręcznej, które tworzy, pozwala im być wyczyszczone,
- Dodane Statystki do każdej pamięci podręcznej, śledzenie wyszukiwań, uderza, tęskni i eksmisje.
- Automatyczne budowlanych dokumentacja i badania Sphinx przykładowych fragmentów pod tox.
- Dokumentacja Dodane Sfinks.
- Usunięto wsparcie dla Pythona 2.5.
- Dodano wsparcie dla PyPy.
- Dodane setup.py docs alias (instaluje Sphinx i zależności).
- Dodane setup.py dev Alias (działa rozwijać oraz instaluje nos i zasięg).
- Dodano wsparcie dla Pythona CI w obsługiwanych za pomocą Tox.
- Bug: Usuń potencjalnej sytuacji wyścigu na zamek w obliczu przerwań (Issue # 10) .
Co nowego w wersji 0.5:
- Funkcja: dodano nowy & quot; unieważnienie () & quot; sposób, aby umożliwić usunięcie pozycji z pamięci podręcznej (problem # 8).
- Bug: LRUCache.put () może zająć kilka sekund na dużych buforów (Issue # 7), .
- Bug: LRUCache nie wątku bezpieczne (Wydanie 6) .
- Bug: LRUCache.clock tracić RAM (numer # 4) .
- Bug:. Wielokrotne pchanie wpisu usunie inne wpisy cache (Issue # 3)
- Bug: LRUCache będzie eksmisji wpisy, nawet jeśli nie pełne (Wydanie 2) .
Wymagania :
- Python
Komentarze nie znaleziono