percache

Aramalabilenlerin ısrarla önbellek sonuçlarını
Şimdi İndirin

percache Sıralama ve Özet

Reklamcılık

  • Rating:
  • Lisans:
  • MIT/X Consortium Lic...
  • Fiyat:
  • FREE
  • Yayıncı adı:
  • Oben Sonne
  • yayıncı web sitesi:
  • http://bitbucket.org/obensonne/

percache Etiketler


percache Açıklama

Aramalabilenlerin ısrarla önbellek sonuçlarını Percache, decorators kullanarak fonksiyonların (veya genel olarak çağrıların) sonuçlarını karıştırmak için bir Python kütüphanesidir. Python Decorator Kütüphanesi'nden Memoize Örneğine benzer ancak sonuçların bir önbellek dosyasında sürekli olarak saklanması avantajı ile bir şekilde. Percache, python tercümanının birden fazla çağrısı arasında notlaşma sağlar. LongTask (A, B): ... baskı ("uzun bir görevi çalıştırmak") ... A + B ... >>> uzun bir görevi çalıştıran (1, 2) döndürün3 >>>>>> longTask ( 1, 2) 3 >>> cache.close () # Yeni önbelleğe alınmış sonuçları, ikinci çağrıdan sonra eksik çıkışta görebileceğiniz disklere yazar, LongTask yalnızca bir kez çağrıldı. Sonuç, sonuç önbellekten alınır. Bu modülün kilit özelliği, bu, python tercümanının birden fazla çağrısında çalışması. Bilinen) Çözünebilir birinin sonucunu önbelleğe alırken, armağanın adına ve argümanlarına dayanan bir SHA1 hash, sonucu önbellek dosyasındaki depolamak için bir anahtar olarak kullanılır. Hash hesaplaması doğrudan argümanlar ile çalışmaz, yani Dize RepRay () uygulanarak geri döndü. Argüman temsillerinin, işlevlerin amacı için, fakat python tercümesinin birden fazla çağrısı boyunca aynı şekilde farklılaşması gerekiyor. Varsayılan olarak, Yerleşik İşlev Repr (), argüman gösterimlerini almak için kullanılır. Bu sadece temel türler, listeler, tuples ve bunların kombinasyonları için mükemmeldir, ancak diğer türlerde başarısız olabilir: >>> Repr (42) 42 # iyi >>> RepRY () "" # Good >>> O = Nesne () >>> İLGİLİ (O) '' # Kötü (Adres Dinamik) >>> REPRES ({"A": 1, "B": 2, "D": 4, "C": 3}) "{'A': 1, 'C': 3, 'B': 2, 'D ': 4} "# Kötü (Sipariş değişebilir) >>> Sınıf A (Nesne): ... def __Init __ (öz, a): ... self.a = a ... >>> RepRY (a ( 36)) '' # kötü (kabul edilmedi) >>> Repr (a (35)) '' # kötü (kabul edilmeyen) Kötü bir gösterim, Python Davaları (tüm kötü örnekler) veya bir tane arasında aynı olmayan bir temsilcidir. Bu, değerleri yeterince (son 2 kötü örnek) farklılaştırmaz. Bu tür türleri yine de kullanabilirsiniz. __REPR __ () Sözlükleri percache dekore edilmiş fonksiyonlara geçmek için yöntemler, uygun bir __R ile kendi sözlük türüne sarabilirsiniz. EPR __ () yöntemi: >>> Sınıf Mydict (DICK): ... def __Repr __ (öz): ... Öğeler = ) K için öz)] ... iade "{% s}"% "," .join (öğeler) ... >>> Repr (MyDict ({"a": 1, "B": 2, "D": 4 , "C": 3})) "{'A': 1, 'B': 2, 'C': 3, 'D': 4}" # İyi (her zaman aynı sipariş) Özel bir Repr () işlevi sağlayın Aşağıdaki örnek, özel bir gösterim işlevinin nasıl kullanılacağını gösterir. Dosya nesnelerinin uygun bir argümanı temsil edilmesi için: >>> def myrepr (arg): ... Eğer ISINSTANCE (ARG, Dosya): ... # Dosya adıyla bir dize döndürün ve değişiklik süresi ... iade "% s:% s"% (arg.name, os.fstat (arg.fileno ()) ) ... Else: ... Repring Repr (Arg) ... >>> Önbellek = Percache.Cache ("/ Bazen / Yolu", Report = MyRepr) Temizlik * Bir önbellek örneğinin Kapat () yöntemini aramayı unutmayın. Bu yöntem denenene kadar resutls diske yazılmamış * Önbelleğe alınmış bir işlevin davranışı değiştiğinde önbellek dosyasını sildiğinizden emin olun! * Önbelleğin daha büyük olmasını ve daha büyük olmasını önlemek için, bir önbellek örneğinin net () yöntemini arayabilirsiniz. Varsayılan olarak, önbellekten tüm sonuçları temizler. Anahtar Kelime Maxage, son kez önbelleğe alınmış bir sonuç kullanılmıştan bu yana geçen maksimum saniye sayısını belirtmek için kullanılır. Maxage saniye için kullanılmayan herhangi bir sonuç (yazılı veya erişilmemiş) önbellekten çıkarılır. Gereksinimler: · Python Bu sürümde yenilikler: · Komut satırı arayüzünün yanlış kullanım yaşı çıktısını düzeltin. · Pylint ile yarım yolla tanışın.


percache İlgili Yazılım