Quando uma requisição é feita, ela retorna informações da aplicação e as armazena em cache no próprio objeto Application. Isso é útil se você precisar acessar essas informações novamente em um curto período, pois não vale a pena fazer uma nova requisição à API para obter dados atualizados. Nesses casos, você pode acessar Application.cache.
import squarecloud as square

client = square.Client('API_KEY')

async def example():
    app = await client.app('application_id')

    # Observe que, como nenhuma requisição foi feita, os campos do cache serão None
    print(app.cache.logs)    # None
    print(app.cache.status)  # None
    print(app.cache.backup)  # None

    # Agora vamos fazer algumas requisições
    await app.logs()
    await app.status()
    await app.backup()

    # O cache foi atualizado 🤯
    print(app.cache.logs)    # LogsData(...)
    print(app.cache.status)  # StatusData(...)
    print(app.cache.backup)  # BackupData(...)

Fazendo requisições sem atualizar o cache

If, for some reason, you don’t want to update the cache when making a request, you can pass the update_cache=False argument.
import squarecloud as square

client = square.Client('API_KEY')

async def example():
    app = await client.app('application_id')
    await app.status(update_cache=False)
    print(app.cache.status)  # None
Se os argumentos passados para cache.update não forem instâncias de StatusData, LogsData ou BackupData, um erro SquareException será levantado.

Limpando o cache manualmente

You can manually clear the cache using cache.clear.
import squarecloud as square

client = square.Client('API_KEY')


async def example():
    app = await client.app('application_id')

    await app.status()
    print(app.cache.status)  # StatusData(...)
    app.cache.clear()  # Limpa o cache
    print(app.cache.status)  # None

Atualizando o cache manualmente

You can also manually update it using the cache.update method.
import squarecloud as square

client = square.Client('API_KEY')


async def example():
    app = await client.app('application_id')

    logs = await app.logs()
    status = await app.status()
    backup = await app.backup()

    app.cache.clear()  # Limpa o cache
    app.cache.update(status, logs, backup)  # Atualiza o cache

    print(app.cache.logs)    # LogsData(...)
    print(app.cache.status)  # StatusData(...)
    print(app.cache.backup)  # BackupData(...)