es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtenga la hora en que los datos fueron almacenados en el método Cache() del módulo cacheout en Python.

Estoy usando cacheout para manejar mi caché porque tuve problemas al cachear un DataFrame de pandas con cachetools. Leí la documentación, y no puedo encontrar una manera de ver cuándo se creó o expirará la caché. ¿Es posible recuperar esos datos?

Aquí tienes un ejemplo de código donde estoy cachéando algunas cosas.

import pandas as pd
from cacheout import Cache
cache=Cache(10,1000)

@cache.memoize()
def function1():
    df=pd.DataFrame({'one':range(5),'two':range(5,10)})  #solo un poco de datos, no importa qué
    print('iran')
    # return df.to_csv(index=False)
    return df

# @cached(cache)
@cache.memoize()
def function2(df):
    # df = pd.read_csv(StringIO(df))
    var1=df['one']
    var2=df['two']
    print('iran2')
    return var1, var2

def function3():
    df=function1()
    var1,var2=function2(df)

    print('this is var1[0]: '+str(var1[0]))
    print('this is var2[0]: '+str(var2[0]))

function3()

Cacheout está aquí.
https://cacheout.readthedocs.io/en/latest/

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener información sobre cuándo se creó o expirará el caché en cacheout, puede utilizar el método expiration_time del objeto de caché. Este método devuelve un objeto datetime que representa el momento en que el caché está configurado para expirar.

    En su código de ejemplo, puede agregar la siguiente línea después de crear el objeto de caché para imprimir el tiempo de expiración:

    cache=Cache(10,1000)
    print('Tiempo de expiración del caché:', cache.expiration_time())
    

    Esto imprimirá algo como Tiempo de expiración del caché: 2022-03-04 16:22:50.181909, indicando cuándo se establecerá la expiración del caché. También puede comparar este valor con el tiempo actual para ver cuánto tiempo queda hasta que expire el caché.

    Desafortunadamente, no parece haber un método incorporado para recuperar el tiempo de creación del caché en cacheout. Sin embargo, simplemente puede almacenar el tiempo actual cuando cree el objeto de caché, y luego compararlo con el tiempo actual para calcular cuánto tiempo ha transcurrido desde que se creó el caché.

    import datetime
    
    tiempo_creacion_cache = datetime.datetime.now() # almacenar el tiempo actual
    cache=Cache(10,1000)
    
    # calcular el tiempo transcurrido
    tiempo_transcurrido = datetime.datetime.now() - tiempo_creacion_cache
    print('Tiempo de creación del caché:', tiempo_creacion_cache)
    print('Tiempo transcurrido desde la creación del caché:', tiempo_transcurrido)
    

    Esto imprimirá el tiempo en que se creó el caché y el tiempo transcurrido desde ese momento.

Comments are closed.