repoze.lru adalah LRU (paling terakhir digunakan) pelaksanaan cache dan dekorator & nbsp;. Tombol dan nilai-nilai yang tidak sering digunakan akan diusir dari cache lebih cepat dari kunci dan nilai-nilai yang sering digunakan. Ia bekerja di bawah Python 2.5, Python 2.6, Python 2.7, dan Python 3.2.
API
Membuat objek LRUCache:
dari repoze.lru impor LRUCache
Cache = LRUCache (100) # panjang 100 max
Mengambil dari objek LRUCache:
cache.get ('nonexisting', 'foo') # akan kembali 'foo'
cache.get ('nonexisting') # akan kembali ada
cache.get ('ada') # akan mengembalikan nilai yang ada
Menambah objek LRUCache:
cache.put ('key', 'nilai') # akan menambahkan kunci 'kunci' dengan 'nilai' value
Kliring sebuah LRUCache:
cache.clear ()
Penghias
Seorang dekorator lru_cache ada. Semua nilai yang dikirimkan ke fungsi dihiasi harus hashable. Ini tidak mendukung argumen kata kunci:
dari repoze.lru impor lru_cache
lru_cache (500)
def expensive_function (* arg):
& Nbsp; lulus
Setiap fungsi dihiasi dengan dekorator lru_cache menggunakan cache sendiri terkait dengan fungsi yang
Apa yang baru dalam rilis ini:.
- Ditambahkan 'CacheMaker' penolong kelas. pembuat yang membuat referensi (dengan nama) ke cache menciptakan, untuk memungkinkan mereka untuk dibersihkan
- statistik Ditambahkan ke masing-masing cache, pencarian pelacakan, hits, rindu, dan penggusuran.
- bangunan otomatis Sphinx docs dan pengujian contoh potongan bawah tox.
- dokumentasi Ditambahkan Sphinx .
- Turun dukungan untuk Python 2.5.
- Ditambahkan dukungan untuk PyPy.
- Ditambahkan docs setup.py alias (menginstal Sphinx dan dependensi).
- Ditambahkan setup.py dev alias (berjalan mengembangkan ditambah menginstal hidung dan cakupan).
- Ditambahkan dukungan untuk CI bawah ular didukung menggunakan tox.
- Bug: Hapus kondisi ras potensi kunci dalam menghadapi interupsi (Edisi # 10) .
Apa yang baru dalam versi 0.5:
- Fitur: menambahkan baru & quot; quot membatalkan () &; Metode untuk memungkinkan penghapusan item dari cache (issue # 8).
- Bug: LRUCache.put () bisa mengambil beberapa detik pada cache besar (7 Edisi #) .
- Bug: LRUCache tidak thread aman (Edisi # 6) .
- Bug: LRUCache.clock akan menyia-nyiakan RAM (Edisi # 4) .
- Bug:. Diulang mendorong sebuah entri akan menghapus entri tembolok lainnya (Edisi # 3)
- Bug: LRUCache akan mengusir entri bahkan ketika tidak penuh (Edisi # 2) .
Persyaratan :
- Python
Komentar tidak ditemukan