Pular para o conteúdo principal
O cliente Python usa requisições condicionais baseadas em ETag para evitar fazer download novamente de arquivos que não foram alterados.

Como funciona

  1. No primeiro download, o cliente salva o arquivo e seu ETag em ~/.cache/jmail/
  2. Nas requisições seguintes, o cliente envia uma requisição condicional HEAD com If-None-Match: <etag>
  3. Se o servidor responder com 304 Not Modified, o arquivo em cache é reutilizado (nenhum download é feito)
  4. Se o ETag tiver mudado, o arquivo é baixado novamente

Localização do cache

~/.cache/jmail/
  emails.parquet
  emails.etag
  emails-slim.parquet
  emails-slim.etag
  documents.parquet
  documents.etag
  ...

Desativar o cache

Python

client = JmailClient(cache=False)

Interface de linha de comando (CLI)

uv run jmail.py emails --no-cache --head 5

Limpando o cache

rm -rf ~/.cache/jmail/

Manifest

O endpoint /v1/manifest.json fornece metadados dos conjuntos de dados e checksums, permitindo realizar verificações programáticas de atualização:
curl https://data.jmail.world/v1/manifest.json | python -m json.tool
client = JmailClient()
manifest = client.manifest()
print(manifest)