repoze.lru является ЗРУ (последнее время использовались реже) реализация кэша и декоратор & NBSP;. Ключи и значения, которые не часто используются будет удалена из кэша быстрее, чем ключей и значений, которые часто используются. Он работает под Python 2.5, Python 2.6, Python 2.7, Python 3.2 и.
API
Создание объекта LRUCache:
от repoze.lru LRUCache импорта
Кэш = LRUCache (100) # 100 максимальная длина
Получение от объекта LRUCache:
cache.get ("несуществующая», «Foo ') # вернет' Foo '
cache.get ("несуществующая ') # вернет None
cache.get ("существующие") # вернет значение для существующих
Добавление к объекту LRUCache:
cache.put («ключ», «ценность») # добавит ключ 'ключ' с 'значение' значение
Стирание LRUCache:
cache.clear ()
Декоратор
Lru_cache декоратор существует. Все значения, передаваемые в украшенной функции должны быть hashable. Он не поддерживает именованные аргументы:
от repoze.lru lru_cache импорта
lru_cache (500)
Def expensive_function (* аг):
& NBSP; пас
Каждая функция украшен lru_cache декоратор использует свой собственный кэш, относящийся к этой функции
Что нового В этом выпуске:.
- Добавлен '' CacheMaker вспомогательный класс:. производитель держит ссылки (по имени) в тайниках, которые она создает, чтобы позволить им быть очищена
- Добавлена статистика для каждого кэша, отслеживание просмотров, парад, промахи, и выселения.
- Автоматизированная строительные сфинкс документы и тестирования пример поместив под Токе.
- Документация Добавлено Сфинкс.
- Прекращена поддержка Python 2.5.
- Добавлена поддержка PyPy.
- Добавлена setup.py документы псевдоним (устанавливает Сфинкса и зависимостей).
- Добавлена setup.py DEV псевдоним (работает развивать плюс устанавливает нос и освещение).
- Добавлена поддержка CI под поддерживаемых питонов, используя Токе.
- Исправлена ошибка: Удалить потенциального состояния гонки на замок в лице прерываний (Выпуск # 10) .
Что нового в версии 0.5:
- Характеристика: добавлен новый & Quot; недействительным () & Quot; Метод, чтобы удаление элементов из кэша (вопрос № 8).
- Исправлена ошибка: LRUCache.put () может принимать несколько секунд на больших кэшей (Выпуск № 7) .
- Исправлена ошибка: LRUCache не поточно (Выпуск № 6) .
- Исправлена ошибка: LRUCache.clock будет тратить RAM (Выпуск № 4) .
- Исправлена ошибка:. повторном нажатии запись будет удалить другие записи кэша (Выпуск № 3)
- Исправлена ошибка: LRUCache бы выселить записи, даже если не полностью (Выпуск # 2) .
Требования
- Python
Комментарии не найдены