percache

Aanhoudende cachesresultaten van callablees
Download nu

percache Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • MIT/X Consortium Lic...
  • Prijs:
  • FREE
  • Naam uitgever:
  • Oben Sonne
  • Uitgever website:
  • http://bitbucket.org/obensonne/

percache Tags


percache Beschrijving

Cache-resultaten van callablees Percache is een Python-bibliotheek om de cache-resultaten van functies (of callablees in het algemeen) te gebruiken met decorateurs. Het is op de een of andere manier vergelijkbaar met het Memoize-voorbeeld van de Python Decorator-bibliotheek, maar met het voordeel dat de resultaten volhardend worden opgeslagen in een cachebestand. Percache biedt memoisatie over meerdere aanroepen van de Python-interpreter.Example: >>> Import Percache >>> cache = percache.cache ("/ tmp / my-cache") >>>>>> @ cache.Check ... DEF Longtask (A, B): ... afdrukken ("een lange taak uitvoeren") ... Return A + B ... >>> Longtask (1, 2) Draait een lange taak3 >>>>>> Longtask ( 1, 2) 3 >>> cache.close () # Schrijft nieuwe cache-resultaten op diskas die u kunt zien op de ontbrekende uitvoer na de tweede aanroep, is Longtask slechts één keer gebeld. De tweede keer dat het resultaat wordt opgehaald uit de cache. Het belangrijkste kenmerk van deze module is dat dit werkt op meerdere aanroepingen van de Python-interpreter. Een vereiste op de resultaten voor de cache is dat ze keuzeschool zijn.Elk cachebestand kan worden gebruikt voor een willekeurig aantal anders genoemde callablees.caching details (u zou moeten KENNEN) Bij het cieren van het resultaat van een vulbaar, wordt een SHA1 HASH op basis van de naam van de callable en argumenten gebruikt als een sleutel om het resultaat in het cachebestand op te slaan. De Hash-berekening werkt niet rechtstreeks met de argumenten, maar met hun Rerpresentations, dwz de tekenreeks wordt geretourneerd door het toepassen van REP (). Argumentenvertegenwoordigingen moeten de waarden voldoende differentiëren voor het doel van de functie, maar identiek over meerdere aanradingen van de Python-interpreter. Standaard wordt de ingebouwde functiepr () gebruikt om argument-representaties te krijgen. Dit is gewoon perfect voor basistypen, lijsten, tuples en combinaties van hen, maar het kan falen op andere typen: >>> REST (42) 42 # GOOD >>> OPR () "" # Good >>> O = Object () >>> Rep (O) '' # slecht (adres is dynamisch) >>> REST ({"A": 1, "B": 2, "D": 4, "C": 3}) "{'A': 1, 'C': 3, 'B': 2, 'D ': 4} "# slecht (bestellen kan veranderen) >>> Klasse A (Object): ... Def __init __ (Zelf, A): ... self.a = a ... >>> REL (A ( 36))) '' # slecht (AA niet overwogen) >>> Rep (A (35)) '' # slecht (AA niet beschouwd) Een slechte representatie is er een die niet identiek is in Python-aanroepingen (alle slechte voorbeelden) of een Dat onderscheidt de waarden niet voldoende (laatste 2 slechte voorbeelden). Om dergelijke typen sowieso te gebruiken, kunt u ook 1. Implementeer de methode van het type __REpr __ () dienovereenkomstig of 2. een aangepaste vertegenwoordigingsfunctie opgeven met behulp van het REP-zoekwoord van de Cache Constructor.implement de __RERPR __ () Methode om woordenboeken te doorgeven aan de ingerichte functies van Percache, kunt u ze in een eigen woordenboektype wikkelen met een geschikt __R ERP __ () METHODE: >>> KLASSE MYDICT (DICT): ... DEF __REpr __ (zelf): ... Items = ) voor K in gesorteerd ( zelf)] ... Terug "{% s}"% "," .join (items) ... >>> REST (MYDICT ({"A": 1, "B": 2, "D": 4 , "C": 3})))) "{'A': 1, 'B': 2, 'C': 3, 'D': 4}" # Good (altijd dezelfde volgorde) Geef een aangepaste REP () FUNCTIONTHE Het volgende voorbeeld laat zien hoe een aangepaste vertegenwoordigingsfunctie een geschikt argument weergeeft van bestandsobjecten: >>> DEF MYREPR (ARG): ... als Isinstance (Arg, File): ... # Retourneer een string met bestandsnaam en wijzigingstijd ... Terug "% S:% S"% (ARG.NAME, OS.FSTAT (ARG.FILENO ()) ) ) ... Anders: ... Return Rep (Arg) ... >>> cache = percache.cache ("/ wat / pad", REST = MyRERPR) Huishouden * Vergeet niet om de Sluitende () methode van een cache-instantie te bellen. Er worden geen resuters naar schijf geschreven totdat deze methode * wordt genoemd * Zorg ervoor dat u het cachebestand verwijdert wanneer het gedrag van een cache-functie is gewijzigd! * Om te voorkomen dat de cache groter wordt en groter, kunt u de duidelijke () methode van een cache-instantie noemen. Standaard wist het alle resultaten van de cache. Het trefwoord MAXAGE MIJN WORDT GEBRUIKT OM EEN MAXIMAAL AANTAL SECONDEN SEAST TE GELD SAAND SAAND SINDS A Sinds een cache-resultaat is de laatste keer gebruikt. Elk resultaat dat niet wordt gebruikt (geschreven of toegankelijk) voor maxage-seconden wordt verwijderd uit de cache. Vereisten: · Python Wat is er nieuw in deze release: · Fixeer een verkeerde gebruiksindeling van de opdrachtregelinterface. · Ontmoet halverwege met pylint.


percache Gerelateerde software

Poef

PERL-extensie die sterker typen, inkapseling en erfenis biedt ...

410

Downloaden