Skip to main content

DeepRead

Biblioteca Python para extracao inteligente de documentos PDF com IA

PyPI Python 3.9+ License: MIT CI Quality Seal


Caracteristicas

  • Autenticacao por Token - HMAC-SHA256 com timing-safe validation
  • Extracao Inteligente - Extrai informacoes de PDFs usando LLMs (OpenAI / Azure OpenAI)
  • OCR Automatico - Detecta e processa documentos escaneados (Azure AI Vision)
  • Deteccao por Pagina - Classifica o PDF em text, mixed ou image e roda OCR apenas nas paginas sem texto nativo
  • Imagem como Entrada - PNG, JPEG, TIFF, BMP e GIF viram PDF de 1 pagina automaticamente
  • Structured Output - Respostas tipadas com Pydantic
  • Async + Sync - APIs sincrona e assincrona com batch processing
  • Resiliencia - Retry com backoff exponencial e circuit breaker
  • Cache - Cache LRU com TTL para evitar reprocessamento
  • Page Range - Filtre paginas especificas por posicao (inicio/fim)
  • Streaming - Modo lazy para economia de memoria
  • Tracking de Custos - Monitore tokens e custos por requisicao

Arquitetura

Ver ARCHITECTURE.md para as decisoes de desenho: por que a pagina e a unidade de processamento, por que nao chunks com embedding, e onde isso deixa de valer.

A conta medida, com gemini-2.5-flash: filtrar por keyword envia 731 tokens em vez de 12.931 num contrato de 40 paginas (94% menos), e rodar OCR so nas paginas sem texto nativo corta 59% num documento com 5 escaneadas em 20 — uma pagina via visao custa ~4,8x uma pagina de texto.

Instalacao

pip install DeepRead.Monkai

Com OCR (Azure AI Vision):

pip install DeepRead.Monkai[ocr]

Desenvolvimento:

pip install DeepRead.Monkai[dev]

Uso Rapido

1. Obter Token de Acesso

O token de acesso e fornecido pela equipe Monkai. Para solicitar: contato@monkai.com.br

export DEEPREAD_API_TOKEN="dr_seu_token_fornecido_pela_monkai"
export OPENAI_API_KEY="sk-..."

2. Processar Documento

import os
from deepread import DeepRead, Question, QuestionConfig
from pydantic import BaseModel, Field

class ExtractionResponse(BaseModel):
    valor: str = Field(description="Valor extraido")
    unidade: str = Field(default="", description="Unidade de medida")
    confianca: float = Field(default=1.0, ge=0, le=1)

question = Question(
    config=QuestionConfig(id="quantidade", name="Extracao de Quantidade"),
    system_prompt="Voce e um especialista em extracao de dados de documentos.",
    user_prompt="Analise o texto e extraia a quantidade mencionada.\n\nTexto:\n{texto}",
    keywords=["quantidade", "litros", "volume", "total"],
    response_model=ExtractionResponse
)

dr = DeepRead(
    api_token=os.getenv("DEEPREAD_API_TOKEN"),
    openai_api_key=os.getenv("OPENAI_API_KEY"),
    model="gpt-5.1",
    verbose=True
)

dr.add_question(question)
result = dr.process("documento.pdf")

print(f"Resposta: {result.get_answer('quantidade')}")
print(f"Tokens: {result.total_metrics.tokens}")
print(f"Custo: ${result.total_metrics.cost_usd:.4f}")

3. Multiplas Perguntas com Page Range

from deepread import PageRange

dr.add_questions([
    Question(
        config=QuestionConfig(id="preco", name="Preco"),
        user_prompt="Extraia o preco: {texto}",
        keywords=["preco", "valor", "R$"],
        page_range=PageRange(start=1, end=5, from_position="start")
    ),
    Question(
        config=QuestionConfig(id="conclusao", name="Conclusao"),
        user_prompt="Extraia a conclusao: {texto}",
        keywords=["conclusao", "resultado"],
        page_range=PageRange(start=1, end=3, from_position="end")
    ),
])

result = dr.process("documento.pdf")
for r in result.results:
    print(f"{r.question_name}: {r.answer}")

4. Classificacao de Documentos

from deepread import Classification
from typing import Literal

class ClassificacaoDoc(BaseModel):
    classificacao: Literal["APROVADO", "REPROVADO", "REVISAR"]
    justificativa: str
    confianca: float = Field(ge=0, le=1)

classification = Classification(
    system_prompt="Voce e um classificador de documentos.",
    user_prompt="Baseado nos dados extraidos, classifique o documento:\n\n{dados}",
    response_model=ClassificacaoDoc
)

dr.set_classification(classification)
result = dr.process("documento.pdf", classify=True)
print(f"Classificacao: {result.classification}")

5. Processamento em Lote

from pathlib import Path

docs = list(Path("documentos/").glob("*.pdf"))
results = dr.process_batch(docs, classify=True, max_workers=4)

for r in results:
    print(f"{r.document.filename}: {r.get_answer('preco')}")

6. API Assincrona

import asyncio

async def main():
    dr = DeepRead(
        api_token=os.getenv("DEEPREAD_API_TOKEN"),
        openai_api_key=os.getenv("OPENAI_API_KEY"),
    )
    dr.add_question(question)

    result = await dr.process_async("documento.pdf")
    print(result.get_answer("quantidade"))

    results = await dr.process_batch_async(docs, max_concurrency=5)

asyncio.run(main())

7. Cache e Resiliencia

dr = DeepRead(
    api_token=os.getenv("DEEPREAD_API_TOKEN"),
    openai_api_key=os.getenv("OPENAI_API_KEY"),
    enable_cache=True,
    cache_ttl=3600,
    max_retries=3,
    circuit_breaker=True,
    circuit_breaker_threshold=5,
    circuit_breaker_timeout=60,
    streaming=True,
)

result = dr.process("documento.pdf")
print(f"Cache stats: {dr.cache_stats}")

8. Multiplos Tipos de Input

result = dr.process("documento.pdf")

result = dr.process("https://exemplo.com/doc.pdf")

with open("doc.pdf", "rb") as f:
    result = dr.process(f.read(), filename="doc.pdf")

import io
buffer = io.BytesIO(pdf_bytes)
result = dr.process(buffer, filename="doc.pdf")

Imagens (PNG, JPEG, TIFF, BMP, GIF) tambem sao aceitas em qualquer um dos formatos acima: viram um PDF de 1 pagina automaticamente. Como nao tem texto nativo, o conteudo so e extraido com OCR ativo:

dr = DeepRead(api_token=..., openai_api_key=..., ocr_fallback="auto")
result = dr.process("foto_do_contrato.jpg")

9. Deteccao Automatica de Tipo de Pagina

O DeepRead perfila o PDF pagina a pagina e classifica o documento:

doc_type Significado Custo de visao
text toda pagina tem texto nativo nenhuma chamada
mixed parte tem texto, parte nao uma chamada por pagina sem texto
image nenhuma pagina tem texto uma chamada por pagina

O resultado informa quantas paginas custaram visao:

result = dr.process("contrato.pdf")
print(result.document.doc_type)          # "mixed"
print(result.document.pages_needing_ocr) # 5  (de 20 paginas)

Num documento de 20 paginas com 5 escaneadas, sao 5 chamadas de visao, nao 20: as 15 paginas com texto nativo sao lidas direto do PDF.

Controle manual. A deteccao e automatica, mas voce decide o que fazer com ela:

# nao gastar visao nunca (paginas escaneadas ficam sem conteudo)
dr = DeepRead(..., ocr_fallback="off")      # default

# usar visao quando o Azure OCR falhar ou nao estiver configurado
dr = DeepRead(..., ocr_fallback="auto")

# ignorar o Azure OCR e ir direto na visao
dr = DeepRead(..., ocr_fallback="force")

# ajustar a sensibilidade da deteccao (default: 100 caracteres)
dr = DeepRead(..., ocr_fallback="auto", min_chars_per_page=250)

Suba min_chars_per_page quando a pagina escaneada tiver cabecalho/rodape em texto (o pouco texto nativo faria a pagina passar como legivel); desca para gastar menos visao aceitando paginas com pouco texto.



10. Modos de Extracao e Perguntas em Lote

Como o conteudo chega ao modelo, e quantas perguntas por chamada:

# default: extrai texto, filtra por keyword, envia texto
dr = DeepRead(api_token=..., openai_api_key=...)

# envia o documento ao modelo multimodal (preserva layout, nao paga OCR)
dr = DeepRead(..., extraction_mode="direct")

# indexa por embedding e envia so os trechos proximos da pergunta
dr = DeepRead(..., extraction_mode="rag", rag_top_k=5)

# responde ate 10 perguntas por chamada de LLM
dr = DeepRead(..., questions_per_call=10)
Modo Ganha quando Requer
text (default) varias perguntas; texto auditavel qualquer provider
direct layout importa; poucas perguntas em PDF escaneado openai, azure ou google
rag documento nao cabe no contexto; busca por significado provider com embeddings

questions_per_call agrupa apenas perguntas com o mesmo contexto (mesmas keywords e page_range) e envia o texto do documento uma vez em vez de uma por pergunta. Em 20 perguntas sobre um contrato de 40 paginas isso corta 91% do custo. Em troca, as perguntas do lote falham juntas, por isso o default e 1.

Detalhes e numeros em ARCHITECTURE.md.


CLI

CLI machine-friendly para automação e uso por agentes de IA. Toda saída é JSON em stdout, erros em stderr, e o exit code reflete sucesso (0) ou falha (≥1).

Instalação

pip install "DeepRead.Monkai[cli]"

Comandos

Comando Descrição
version Mostra a versão instalada
models Lista modelos LLM disponíveis com pricing
schemas Lista schemas pré-construídos com seus campos
extract <pdf> Extração one-shot de um único PDF
run <config> <target> Executa extração com YAML config (single ou batch)
init <output> Gera um arquivo YAML de configuração

Exemplos

# Versão
deepread version

# Listar modelos disponíveis
deepread models

# Listar schemas pré-construídos
deepread schemas

# Extração one-shot com schema pré-construído
export DEEPREAD_API_TOKEN=dr_...
export OPENAI_API_KEY=sk-...
deepread extract documento.pdf --schema DadosContrato

# Extração one-shot com prompt customizado
deepread extract documento.pdf \
  --prompt "Extraia o valor total do documento: {texto}" \
  --keywords "valor,total,R$" \
  --pages 1-5

# Gerar config YAML para uso recorrente
deepread init config.yaml --schema DadosContrato

# Executar com config (single)
deepread run config.yaml documento.pdf -o resultado.json

# Executar em lote (diretório)
deepread run config.yaml ./documentos/ -o resultados.csv -f csv

Flags do extract

Flag Env var Descrição
--token DEEPREAD_API_TOKEN Token do DeepRead
--api-key OPENAI_API_KEY Chave OpenAI
--schema / -s Nome de schema pré-construído
--prompt / -p Prompt customizado (deve conter {texto})
--model / -m Modelo: fast/balanced/complete/economic ou nome direto
--ocr OCR mode: off/auto/force
--keywords / -k Keywords separadas por vírgula
--pages Range de páginas (1-5 ou last-3)
--format / -f Saída: json/csv/text
--verbose / -v Logs detalhados em stderr
--quiet / -q Suprime stderr

Configuração via YAML

Para usar Azure OpenAI ou customizar parâmetros mais finos, rode deepread init para gerar um config base com seção auth que resolve ${ENV_VAR} automaticamente:

deepread:
  model: balanced
  ocr: off
  max_retries: 3
  enable_cache: false

auth:
  api_token: ${DEEPREAD_API_TOKEN}
  openai_api_key: ${OPENAI_API_KEY}
  # Para Azure OpenAI:
  # provider: azure
  # azure_api_key: ${AZURE_API_KEY}
  # azure_endpoint: https://seu-recurso.openai.azure.com
  # azure_deployment: gpt-4o
  # azure_api_version: 2024-02-15-preview

questions:
  - id: extracao
    name: Extração
    prompt: "Extraia as informações principais: {texto}"
    schema: DadosContrato

Exit codes

Code Significado
0 Sucesso
1 Falha genérica
2 Erro de configuração (chave/token ausente)
3 Arquivo não encontrado
4 Erro de execução (rede, API, etc.)

Azure OpenAI

export OPENAI_PROVIDER=azure
export AZURE_API_KEY="sua-chave-azure"
export AZURE_API_ENDPOINT="https://seu-recurso.openai.azure.com"
export AZURE_API_VERSION="2024-02-15-preview"
export AZURE_DEPLOYMENT_NAME="gpt-4o"
dr = DeepRead(
    api_token=os.getenv("DEEPREAD_API_TOKEN"),
    provider="azure",
    azure_api_key="sua-chave-azure",
    azure_endpoint="https://seu-recurso.openai.azure.com",
    azure_deployment="gpt-4o",
)
Parametro OpenAI Azure OpenAI
provider "openai" (default) "azure"
openai_api_key Obrigatorio Nao usado
azure_api_key Nao usado Obrigatorio
azure_endpoint Nao usado Obrigatorio
azure_deployment Nao usado Obrigatorio
model Nome do modelo Ignorado (usa deployment)

Google Gemini

DeepRead supports Google Gemini via the AI Studio API. Install the extra and set your API key:

pip install "DeepRead.Monkai[google]"
export GOOGLE_API_KEY="your-key-here"

Use provider="google":

from deepread import DeepRead

dr = DeepRead(
    api_token="dr_xxx",
    provider="google",
    model="balanced",  # -> gemini-2.5-flash
)
result = dr.process("document.pdf")

Model aliases for Google:

Alias Gemini model
fast gemini-2.5-flash-lite
balanced gemini-2.5-flash
complete gemini-2.5-pro
economic gemini-2.5-flash-lite

All DeepRead features — structured output (Pydantic schemas), classification, OCR vision fallback, async, streaming, and cost tracking — work identically on Google.


xAI Grok

DeepRead supports xAI Grok through its OpenAI-compatible endpoint. No extra install is needed — Grok reuses the bundled OpenAI SDK; just set your API key:

export XAI_API_KEY="your-key-here"   # GROK_API_KEY also accepted as fallback

Use provider="grok":

from deepread import DeepRead

dr = DeepRead(
    api_token="dr_xxx",
    provider="grok",
    model="balanced",  # -> grok-3
)
result = dr.process("document.pdf")

Point at a custom/proxy endpoint with grok_base_url= or the XAI_BASE_URL env var (default https://api.x.ai/v1):

dr = DeepRead(
    api_token="dr_xxx",
    provider="grok",
    grok_api_key="xai-...",
    grok_base_url="https://gateway.internal/v1",
    model="complete",  # -> grok-4
)

CLI:

deepread extract document.pdf --provider grok --grok-key "$XAI_API_KEY" --model balanced

Model aliases for Grok:

Alias Grok model
fast grok-3-mini
balanced grok-3
complete grok-4
economic grok-3-mini

All DeepRead features — structured output (Pydantic schemas), classification, OCR vision fallback, async, streaming, and cost tracking — work identically on Grok.


Modelos Disponiveis

print(DeepRead.available_models())
# {
#     "fast": "gpt-4.1",
#     "balanced": "gpt-5.1",
#     "complete": "gpt-5-2025-08-07",
#     "economic": "gpt-5-mini-2025-08-07"
# }

API Reference

DeepRead

Metodo Descricao
add_question(question) Adiciona uma pergunta
add_questions(questions) Adiciona multiplas perguntas
remove_question(id) Remove uma pergunta
clear_questions() Remove todas as perguntas
set_classification(config) Configura classificacao
process(document) Processa um documento (sync)
process_async(document) Processa um documento (async)
process_batch(documents, max_workers) Processa lote (sync, com ThreadPool)
process_batch_async(documents, max_concurrency) Processa lote (async, com Semaphore)
clear_cache() Limpa o cache
cache_stats Retorna hits/misses/size do cache
available_models() Lista modelos disponiveis
create_question(...) Factory method para Question

DeepRead Constructor

Parametro Tipo Default Descricao
api_token str - Token de autenticacao (obrigatorio)
openai_api_key str env Chave API OpenAI
model str gpt-5.1 Modelo LLM
verbose bool False Logs detalhados
max_retries int 3 Retries para erros transientes
enable_cache bool False Habilita cache LRU
cache_ttl int 3600 TTL do cache em segundos
streaming bool False Modo lazy (economia de memoria)
circuit_breaker bool False Habilita circuit breaker
circuit_breaker_threshold int 5 Falhas para abrir circuito
circuit_breaker_timeout int 60 Segundos para recovery
max_file_size_mb float 50 Limite de tamanho do arquivo
max_pages int 500 Limite de paginas
provider str openai Provider: openai, azure, google ou grok
ocr_fallback str off off, auto ou force — ver Deteccao de Tipo de Pagina
min_chars_per_page int 100 Limiar para considerar que a pagina tem texto nativo

Question

Campo Tipo Descricao
config QuestionConfig Configuracao basica (id, name)
system_prompt str Prompt de sistema
user_prompt str Template do prompt (use {texto})
keywords list[str] Keywords para filtrar paginas
page_range PageRange Range de paginas (opcional)
response_model BaseModel Modelo Pydantic (opcional)

PageRange

Campo Tipo Descricao
start int Pagina inicial (1-indexed)
end int Pagina final (None = ate o fim)
from_position str "start" ou "end"

ProcessingResult

Campo Tipo Descricao
document DocumentMetadata Metadados do documento
results list[Result] Resultados por pergunta
classification dict Classificacao (se aplicavel)
total_metrics ProcessingMetrics Metricas totais

DocumentMetadata

Campo Tipo Descricao
filename str Nome do arquivo
doc_type str text, mixed ou image — ver Deteccao de Tipo de Pagina
num_pages int Total de paginas
pages_needing_ocr int Paginas sem texto nativo; cada uma custa uma chamada de visao
size_kb float Tamanho em KB
ocr_method str text, ocr ou vision_fallback

ProcessingMetrics

Campo Tipo Descricao
time_seconds float Tempo de processamento
tokens int Total de tokens
prompt_tokens int Tokens do prompt
completion_tokens int Tokens da resposta
cost_usd float Custo em USD
model str Modelo utilizado

Estrutura do Projeto

deepread/
├── __init__.py          # Exports principais
├── reader.py            # Classe DeepRead (sync + async)
├── config.py            # Modelos, precos, configuracoes
├── utils.py             # PDF loading, filtragem, metadata
├── ocr.py               # Azure AI Vision OCR
├── cache.py             # Cache LRU com TTL
├── resilience.py        # Retry + Circuit Breaker
├── exceptions.py        # Excecoes customizadas
├── auth/
│   ├── __init__.py
│   ├── token.py         # HMAC-SHA256 token validation
│   └── exceptions.py    # Excecoes de autenticacao
└── models/
    ├── __init__.py
    ├── question.py      # Question, QuestionConfig, PageRange
    ├── result.py        # Result, ProcessingResult, Metrics
    ├── classification.py # Classification
    └── schemas.py       # Schemas de exemplo (DadosContrato, etc)

Documentacao

Documento Descricao
Instalacao Guia de instalacao e configuracao
Guia Rapido Comece em 5 minutos
Autenticacao Sistema de tokens
Perguntas Configuracao de perguntas e extracao
Classificacao Classificacao de documentos
OCR Reconhecimento optico de caracteres
Schemas Modelos de dados e estruturas
API Reference Referencia completa da API
Exemplos Exemplos praticos (01-07)
Certificacao Certificado de qualidade

Certificacao de Qualidade

Este projeto foi auditado e certificado pelo Claude AI Quality Seal.

Dimensao Score
Seguranca 8.7/10
Usabilidade 8.2/10
Escalabilidade 7.8/10
Qualidade de Codigo 8.0/10
Global 8.18/10

Classificacao: PROFISSIONAL Serial: DR-CQA-DE8364E7-116B6022-D40E375D-42BB4E3B

Ver certificado completo | Ver certificado HTML


Suporte


Desenvolvido por Monkai

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

deepread_monkai-5.3.0-cp313-cp313-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.13Windows x86-64

deepread_monkai-5.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

deepread_monkai-5.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (8.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

deepread_monkai-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

deepread_monkai-5.3.0-cp313-cp313-macosx_10_13_universal2.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

deepread_monkai-5.3.0-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86-64

deepread_monkai-5.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

deepread_monkai-5.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (8.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

deepread_monkai-5.3.0-cp312-cp312-macosx_10_13_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

deepread_monkai-5.3.0-cp312-cp312-macosx_10_13_universal2.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

deepread_monkai-5.3.0-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86-64

deepread_monkai-5.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

deepread_monkai-5.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (8.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

deepread_monkai-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

deepread_monkai-5.3.0-cp311-cp311-macosx_10_9_universal2.whl (2.5 MB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

deepread_monkai-5.3.0-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86-64

deepread_monkai-5.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

deepread_monkai-5.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (7.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

deepread_monkai-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

deepread_monkai-5.3.0-cp310-cp310-macosx_10_9_universal2.whl (2.5 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file deepread_monkai-5.3.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 db32e7160036756bc7f18ef1fc9714a1d22b5efac49b5b9fa3eca13b45ec8b77
MD5 19bd2d95d026dd4097bd3e3ba295a6f1
BLAKE2b-256 ecc3cf0d57140b32d1dc42b1fe15af5ebc7106c69ffc371302b688a39d7f7256

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0577129119c609cbf00bcc72ce2a31db21bdf52ada2c6d01084ed2fc1039ea2a
MD5 695c94e9f3dcc713c0db7587e6f57a7f
BLAKE2b-256 1b46275ec7f0537dcb6f0cd0c5108a07d25ea4fef6af38a8f0a9be6b6bff28b7

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 1c1611be64281b6041dd7642dad298f9b12fbc9fc08fde503e4a0b13efc72015
MD5 a6957f31d2e6d229e3b721968b007501
BLAKE2b-256 0282b41980a2df0d33c8d2a7303feaf49f9c82d329fbf3cbd6ae220c6b75682f

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 521e65e6fd1aa0f92c63b5f5bfe485b441b8e8d5fed81e8b952d9d09fb477617
MD5 384aeff716a04e845599f59383ac82dd
BLAKE2b-256 18a68c9c72ccd3e004e01be5098b99862a442d58eb59a57d3a42db8fbbbe40cf

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 845ec1238c70825585f962f034b60f504f8909324dff7f4aa6294359df6af0d1
MD5 48584548bb7684822eea7fb581e64e2a
BLAKE2b-256 58c5f87cd9b66d18f7838151e9587314f8cc85db5be297127175b4e36fd06870

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 201d6aa444dd30eb37cd9ba9fc9763445c8a399d12e6ff6b44219490222e7a82
MD5 8d6db237dd6c775f130ad8fefd1c7e6f
BLAKE2b-256 56b4cc5c72979a0b68f0c06e3042a00110653bd9e1f32926ef02b1750763174b

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e9f6e04594ecb1a4fd2b5349acd9dc16c426bbc93f5b52d58fe95941c17acc65
MD5 30cfa97fe5071cf4ad0fbe64ee9fbd1f
BLAKE2b-256 c4126f53a7ab51e1bc7cc0732c7e9fb78013685852326b9f05dacc702dd6beb3

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ae75bc86294aba147551b90b6cb563f441496b5401b122c31e323fe9132e527c
MD5 e4a559051010255e64dd6c31b90a1350
BLAKE2b-256 caadd5890bf76aeb7f88c55e05e4cf66daa1c34d5c1ca09eab3daa7616063de1

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 183fd94ac63131fdbe194ecf6b6562d988345005e363378514a1d375e8460fc4
MD5 96f382cbcd7e8bf0ab0a34a886e32c53
BLAKE2b-256 61ed7fb67011ab173b5c80fd59b221aadf20c855489c1fd5f9a1a2e0db78a70d

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3880a9a11b2e128532abe33ce8393b46a825a184130905852e7f22a714d0354b
MD5 e888ad7c1504a902b2fceaf3530428f5
BLAKE2b-256 4617880364dba1c4f9147d972ca742f14711baa9f9d7732b650eae9a41c5a1f3

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7c7bce2dc33c51678c771fb4d7f6aed474ede41659f1e1aa929158d2a77008e1
MD5 e48bc88153106c02c963025252098e8c
BLAKE2b-256 411c89b6a1de302ae238d1b688c99f0982191b52e995db14f51447c6badd9002

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 715136b7fac05f399eb9556382ac0bb9ce329a06a1dd1e479c791ed757296d91
MD5 7010d65af10dd0c24729a36d2a32a65c
BLAKE2b-256 e8b48ddc8604229c848b1de6b4c0f6d08a9a111d57c1ff65083688d99aab2223

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 8e8e0660fcbafb4e5edbc8ab9409253296b4614876ea68ce2fcd89b924fad5a1
MD5 e59d580f3c0ca58e59c89ce9a60fe760
BLAKE2b-256 fc8beda5c62e1132040144b4e0051535bc8b9452c40b663a229a72e0982d9461

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f36e28bf54371c2d076b418b07d4624e463c23da33503f57d19553ab26b192c0
MD5 b9ca186892723c5572829f4faa0c3665
BLAKE2b-256 8775d8c842ad72573449e19b6ed38858d900c401142155e33da1331851b097fe

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 55018bc0deb92d0ed43f615ef9998436fa40dfb939bac98d0f8a0ed38fdad2a1
MD5 35a6bf45e2c8360a457d465ac927ca30
BLAKE2b-256 540a062cf0d731113816741440279c4c3b8d30464046d9f43c7af58daf4c4986

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f374f13566a6513b2dec42c3d160e332855ad393571edbe1365a1fcd146738e4
MD5 ace7a96d6a60000300a6552aad761c08
BLAKE2b-256 e7fca9506a492299c329ada472e6d2381adfa82c3ccb160644bc6f7f3513f1ff

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c7a8bf007a102f9b11d7959e42f40593d7f18e275ef1098d7e5f817c49a522da
MD5 83e97e2bc37681c3fbb9b9639c6bf716
BLAKE2b-256 0068b813d018047849ab82c835913c7e187028096f7933bfe097893d3db01a98

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ad7ca217afccd62ffbdadd58569bef34e455421cfdc9a5d65aff8056cf2e9423
MD5 b5176b3d861af22e355a330bfd0eaaf8
BLAKE2b-256 97d029d1e950ff477b469d84973fb3163b55072314df25ac806562a888d72ddc

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8112f6c3be9df21ee4781532b6f6529b0571e939d448828d397ae8f52cb2d8a9
MD5 dde09b52402b1f2039e46e5eeb5e9876
BLAKE2b-256 906ee934ace12bcff4ef1dcbaf0eec98046a3830f5e14128d9dd1eb4d692bf96

See more details on using hashes here.

File details

Details for the file deepread_monkai-5.3.0-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.3.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 cb6296f4d60a00d678e677096997909f27814323596f0c8687ab9819182d1395
MD5 500fba4b690ce44a8d84fd92817ea7f3
BLAKE2b-256 2886ee4a504568a78fcfaab54b10c0a34f0ffdc52c2768bbd1be115399314c9f

See more details on using hashes here.

Release history Release notifications | RSS feed

5.3.1

20 files

This release

5.3.0 This release

20 files

5.2.1

20 files

5.2.0

20 files

5.1.0

20 files

5.0.1

20 files

5.0.0

20 files

4.1.2

20 files

4.1.1

16 files

4.1.0

16 files

4.0.0

16 files

3.0.4

16 files

3.0.3

16 files

3.0.2

16 files

3.0.1

16 files

3.0.0

12 files

2.6.2

20 files

2.6.1

20 files

2.6.0

20 files

2.5.1

16 files

2.5.0

16 files

2.4.0

28 files

2.3.0

20 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page