Saltar al contenido principal
El cliente de Python usa solicitudes condicionales basadas en ETag para evitar descargar de nuevo archivos que no hayan cambiado.

Cómo funciona

  1. En la primera descarga, el cliente guarda el archivo y su ETag en ~/.cache/jmail/
  2. En las solicitudes posteriores, el cliente realiza una petición HEAD condicional con If-None-Match: <etag>
  3. Si el servidor responde con 304 Not Modified, se usa el archivo en caché (sin volver a descargarlo)
  4. Si el ETag ha cambiado, el archivo se vuelve a descargar

Ubicación de la caché

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

Deshabilitar la caché

Python

client = JmailClient(cache=False)

Interfaz de línea de comandos

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

Borrar la caché

rm -rf ~/.cache/jmail/

Manifest

El endpoint /v1/manifest.json proporciona metadatos de los conjuntos de datos y checksums, lo que permite realizar comprobaciones programáticas de actualización:
curl https://data.jmail.world/v1/manifest.json | python -m json.tool
client = JmailClient()
manifest = client.manifest()
print(manifest)