percaire

Cache persistantes Résultats des Callables
Télécharger maintenant

percaire Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • MIT/X Consortium Lic...
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Oben Sonne
  • Site Internet de l'éditeur:
  • http://bitbucket.org/obensonne/

percaire Mots clés


percaire La description

Résultats de cache persistants des appelables Percache est une bibliothèque python pour cacher des résultats de manière persistante des fonctions (ou des appelables en général) à l'aide de décorateurs. Il est en quelque sorte similaire à l'exemple Memoize de la bibliothèque de décorateur Python, mais avec l'avantage que les résultats sont stockés de manière persistante dans un fichier de cache. Percache fournit une mémoire de mémoisation sur plusieurs invocations de l'interpréteur de Python.Example: >>> Import Percache >>> cache = percache.cache ("/ TMP / My-cache") >>>>> @ cache.check ... def Longtask (A, B): ... Imprimer ("Exécution d'une longue tâche") ... Retour A + B ... >>> Longtask (1, 2) Exécution d'une longue tâche3 >>>>>> Longtask ( 1, 2) 3 >>> CACHE.FLOSE () # Écrit de nouveaux résultats mis en cache aux diskas que vous pouvez voir à la sortie manquante après la deuxième invocation. La deuxième fois, le résultat est extrait du cache. La principale caractéristique de ce module est que cela fonctionne à travers plusieurs invocations de l'interpréteur Python.Un exigence des résultats au cache est qu'ils sont pickables.Chaque de cache de cache peut être utilisé pour n'importe quel nombre d'appelables nommés différemment.caching (vous devriez savoir) Lors de la mise en cache du résultat d'une appelable, un hachage SHA1 basé sur le nom et les arguments de l'appelable est utilisé comme une clé pour stocker le résultat dans le fichier de cache.Le calcul de hachage ne fonctionne pas directement avec les arguments, mais avec leurs présentations, c'est-à-dire La chaîne renvoyée en appliquant REP (). Les représentations de l'argument sont censées différencier des valeurs suffisamment aux fins de la fonction, mais de manière identique à de multiples invocations de l'interprète Python. Par défaut, la fonction intégrée REC () est utilisée pour obtenir des représentations de l'argument. Ceci est juste parfait pour les types de base, les listes, les tuples et les combinaisons d'entre eux, mais cela peut échouer sur d'autres types: >>> REC (42) 42 # Bon >>> REP () "" # Bon >>> O = objet () >> REC (O) '' # Bad (adresse est dynamique) >>> REC ({"A": 1, "B": 2, "D": 4, "C": 3}) "{'A': 1, 'C': 3, 'B': 2, 'D ': 4} "# mauvais (ordre peut changer) >>> Classe A (objet): ... def __init __ (auto, a): ... auto.a = A ... >>> REP (a ( 36))) '' # mauvais (AA non considéré) >>> REP (A (35)) '' # mauvais (AA non considéré) Une mauvaise représentation est une mauvaise représentation qui n'est pas identique à travers les invocations de Python (tous les mauvais exemples) ou un Cela ne fait pas de différencier suffisamment les valeurs (2 derniers mauvaises exemples) .Pour utiliser de tels types de toute façon que vous pouvez soit 1. Mettre en uvre la méthode __repr __ () de type en conséquence ou 2. Fournissez une fonction de représentation personnalisée à l'aide du mot-clé REC du Cache Constructor.implement. __RePR __ () MéthodeTo Passez des dictionnaires sur les fonctions décorées par Percache, vous pouvez les envelopper dans un propre type de dictionnaire avec un __R approprié EPR __ () Méthode: >>> MyDICT de classe (DICT): ... def __repr __ (auto): ... Articles = ) pour K en tri ( auto)] ... retourner "{% s}"% "," .join (articles) ... >>> REC (mydict ({"A": 1, "B": 2, "D": 4 , "c": 3})) "{'A': 1, 'B': 2, 'C': 3," D ": 4}" # Bon (toujours le même ordre) Fournissez une fonction de repère personnalisée () Exemple suivant montre comment utiliser une fonction de représentation personnalisée pour obtenir une représentation d'argument appropriée des objets de fichier: >>> def myrepr (arg): ... si Isinstance (arg, fichier): ... # Retourner une chaîne avec nom de fichier et temps de modification ... Retourner "% s:% s"% (arg.name, os.fstat (arg.fileno ()) ) ... d'autre: ... retour REC (arg) ... >>> cache = percache.cache ("/ certains / chemin", rep = myREPR) ménage * N'oubliez pas d'appeler la méthode Fermer () d'une instance de cache. Aucun remonté RESTLS n'est écrit sur le disque jusqu'à ce que cette méthode soit appelée * Assurez-vous de supprimer le fichier de cache chaque fois que le comportement d'une fonction mise en cache a changé! * Pour empêcher le cache d'obtenir plus grand et plus grand, vous pouvez appeler la méthode Clear () d'une instance de cache. Par défaut, il efface tous les résultats du cache. Le mot-clé maxage My Soyez utilisé pour spécifier un nombre maximum de secondes passées puisqu'un résultat mis en cache a été utilisé la dernière fois. Tout résultat non utilisé (écrit ou accessible) pour maxage secondes est retiré du cache. Exigences: · Python Quoi de neuf dans cette version: · Corriger une mauvaise sortie de l'âge d'utilisation de l'interface de ligne de commande. · Rencontrez la moitié de la pylint.


percaire Logiciels associés