
uv run 自动处理。
环境配置
uv 来运行:
复制
uv run clients/python/jmail.py emails --head 5
复制
from jmail import JmailClient
client = JmailClient()
df = client.emails()
库的使用
基本用法
复制
from jmail import JmailClient
client = JmailClient()
# All emails with full body text
df = client.emails()
# Network-only (no body text, much smaller download)
df = client.emails(slim=True)
# 包含完整提取文本的文档(下载分片文件)
docs = client.documents(include_text=True)
# Photos, people, and facial recognition data
photos = client.photos()
people = client.people()
faces = client.photo_faces()
# iMessage conversations and messages
convos = client.imessage_conversations()
messages = client.imessage_messages()
# Crowd-sourced star counts
stars = client.star_counts()
# Release batch metadata
batches = client.release_batches()
获取原始 URL
复制
url = client.url("emails-slim")
# → "https://data.jmail.world/v1/emails-slim.parquet"
url = client.url("emails-slim", fmt="ndjson.gz")
# → "https://data.jmail.world/v1/emails-slim.ndjson.gz"
禁用缓存
复制
# 始终下载最新版本(不使用本地缓存)
client = JmailClient(cache=False)
命令行界面参考
复制
Usage: uv run jmail.py <command> [options]
Commands:
manifest Print manifest JSON
emails Download emails (--slim for network-only, --head N)
documents Download documents (--include-text for full text, --head N)
photos Download photos metadata (--head N)
people Download people (--head N)
photo_faces Download photo face data (--head N)
imessage_conversations Download iMessage conversations (--head N)
imessage_messages Download iMessage messages (--head N)
star_counts Download star counts (--head N)
release_batches Download release batches (--head N)
urls Print all dataset URLs
duckdb-examples Print example DuckDB SQL queries
Options:
--head N Show first N rows
--slim (emails) Omit body text columns
--include-text (documents) Include full extracted text
--no-cache Skip local caching, always download fresh
示例
复制
# First 10 emails, network-only view
uv run jmail.py emails --slim --head 10
# All documents with full text
uv run jmail.py documents --include-text
# 打印数据集 URL 供其他地方使用
uv run jmail.py urls
# Get manifest with dataset checksums
uv run jmail.py manifest
# Fresh download (skip cache)
uv run jmail.py emails --no-cache --head 5
依赖项
uv 自动管理:
pandas— DataFrame 处理pyarrow— Parquet 文件读取requests— HTTP 下载
复制
# /// script
# requires-python = ">=3.9"
# dependencies = ["pandas", "pyarrow", "requests"]
# ///
