percache

Caché persistentemente de los resultados de las calificaciones
Descargar ahora

percache Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • MIT/X Consortium Lic...
  • Precio:
  • FREE
  • Nombre del editor:
  • Oben Sonne
  • Sitio web del editor:
  • http://bitbucket.org/obensonne/

percache Etiquetas


percache Descripción

Resultados persistentemente de caché de las calificaciones Percache es una biblioteca de Python para los resultados de la memoria caché persistentemente de las funciones (o las calificaciones en general) usando decoradores. De alguna manera, es similar al ejemplo de Memoize de la biblioteca de Python Decorator, pero con la ventaja de que los resultados se almacenan persistentemente en un archivo de caché. Percache proporciona memoización en múltiples invocaciones del intérprete de Python. Ejemplo: >>> Importar Percache >>> cache = percache.cache ("/ tmp / my-cache") >>>>>> @ cache.check ... def Longtesk (A, B): ... Imprimir ("Ejecutar una tarea larga") ... Devuelve A + B ... >>> LongTask (1, 2) Ejecutando una tarea larga3 >>>>>> longtesk ( 1, 2) 3 >>> cache.close () # escribe nuevos resultados en caché en caché a Diskas que puede ver en la salida que falta después de la segunda invocación, LongTask se ha llamado una vez. La segunda vez que el resultado se recupera del caché. La característica clave de este módulo es que esto funciona a través de múltiples invocaciones del intérprete de Python. Un requisito sobre los resultados al caché es que son elegibles. Cada archivo de caché se puede usar para cualquier número de Detalles de Callables, que debe Saberlo) al almacenar en caché el resultado de un llamado, se utiliza un hash SHA1 basado en el nombre y los argumentos de SHA1 como una clave para almacenar el resultado en el archivo de caché. El cálculo de hash no funciona directamente con los argumentos, sino con sus rerpresentaciones, es decir, la cadena devuelta aplicando REP (). Se supone que las representaciones de los argumentos diferencian los valores suficientemente para el propósito de la función, pero de manera idéntica a través de múltiples invocaciones del intérprete de Python. Por defecto, la función incorporada se utiliza () para obtener representaciones de argumentos. Esto es simplemente perfecto para tipos básicos, listas, tuplas y combinaciones de ellos, pero puede fallar en otros tipos: >>> Rep (42) 42 # Good >>> Rep () "" # BUENO >>> O = objeto () >>> Rep (O) '' # BAD (dirección es dinámica) >>> REP ({"A": 1, "B": 2, "D": 4, "C": 3}) "{'a': 1, 'C': 3, 'B': 2, 'D ': 4} "# Mal (orden puede cambiar) >>> Clase A (objeto): ... definitivamente __init __ (yo, a): ... auto.a = a ... >>> rep (a ( 36)) '' # MAL (AA no considerado) >>> RepR (A (35)) '' # Mal (AA no considerado) Una mala representación es una que no es de manera idéntica a través de las invocaciones de Python (todos los malos ejemplos) o uno Eso no diferencia los valores suficientemente suficientemente (últimos 2 ejemplos defectuosos). Para usar tales tipos de todos modos, puede implementar el método __repr __ () del tipo en consecuencia o 2. proporcionar una función de representación personalizada usando la palabra clave REP REP REP RETRUCTOR.MPLEMENTE el __REPR __ () METHICE Pase los diccionarios a las funciones decoradas de PerceCache, podría envolverlos en un tipo de diccionario propio con un __R adecuado EPR __ () Método: >>> Mydicct de clase (DICT): ... definit __repr __ (yo): ... artículos = ) para k en clasificado ( yo)] ... devuelva "{% s}"% "," .join (artículos) ... >>> REP (MyDICT ({"A": 1, "B": 2, "D": 4 , "C": 3})) "{'A': 1, 'B': 2, 'C': 3, 'D': 4}" # BUENO (siempre mismo orden) Proporcionar una función REP () personalizada El siguiente ejemplo muestra cómo usar una función de representación personalizada para obtener una representación de argumentos adecuados de los objetos de archivo: >>> DEF MIREPR (ARG): ... Si IsInstance (Arg, archivo): ... # devuelve una cadena con nombre de archivo Y Modificación TIEMPO ... RETORNA "% S:% S"% (arg.name, os.fstat (arg.fileno ()) ) ... Else: ... Devolución REP (ARG) ... >>> caché = percache.cache ("/ algunas / ruta / ruta", RepR = MYREPR) LOADEORKETING * No olvides llamar al método de cierre () de una instancia de caché. No se escribe resutls en el disco hasta que se llama este método * ¡Asegúrese de eliminar el archivo de caché cada vez que se haya cambiado el comportamiento de una función en caché! * Para evitar que el caché se vuelva más grande y más grande, puede llamar al método claro () de una instancia de caché. Por defecto, borra todos los resultados del caché. El Maximaje de palabras clave MI se puede usar para especificar un número máximo de segundos aprobados, ya que se ha utilizado un resultado en caché la última vez. Cualquier resultado no utilizado (escrito o accedido) para maxage segundos se elimina del caché. Requisitos: · Python ¿Qué hay de nuevo en este lanzamiento: · Fijar la salida de edad de uso incorrecta de la interfaz de línea de comandos. · Conoce la mitad de la forma con Pylint.


percache Software relacionado