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, como cada camada reduz tokens enviados ao modelo, e a conta medida (94% menos tokens de entrada num contrato de 40 paginas com filtro por keyword).

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.



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.2.1-cp313-cp313-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.13Windows x86-64

deepread_monkai-5.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

deepread_monkai-5.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (7.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

deepread_monkai-5.2.1-cp313-cp313-macosx_10_13_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

deepread_monkai-5.2.1-cp313-cp313-macosx_10_13_universal2.whl (2.2 MB view details)

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

deepread_monkai-5.2.1-cp312-cp312-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.12Windows x86-64

deepread_monkai-5.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

deepread_monkai-5.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (7.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

deepread_monkai-5.2.1-cp312-cp312-macosx_10_13_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

deepread_monkai-5.2.1-cp312-cp312-macosx_10_13_universal2.whl (2.2 MB view details)

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

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

Uploaded CPython 3.11Windows x86-64

deepread_monkai-5.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

deepread_monkai-5.2.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (7.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

deepread_monkai-5.2.1-cp311-cp311-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

deepread_monkai-5.2.1-cp311-cp311-macosx_10_9_universal2.whl (2.3 MB view details)

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

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

Uploaded CPython 3.10Windows x86-64

deepread_monkai-5.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

deepread_monkai-5.2.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (7.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

deepread_monkai-5.2.1-cp310-cp310-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

deepread_monkai-5.2.1-cp310-cp310-macosx_10_9_universal2.whl (2.3 MB view details)

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

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5c55e61be4fca200f8c6420db78b9cc28029df1afd7fcd7a5f7b3c230708c777
MD5 920ecc4cbe76d51b96ab8aa915004f8e
BLAKE2b-256 1b6339aa9028dbb0c5370ada03a3b06f6e413c8ccdab0259b29f10891df6c693

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3ccf872f036dba3be2415698497ad026bb613f9c65429138282624b394887811
MD5 c4a917feef03b0af612bd4c7c4ff46ff
BLAKE2b-256 4e3db4b9b041b6f8a9bafb269563965abcf6c75cc3f3108b5b61deb4f8a34583

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 423f4f507fbcb53f4a28ed8ff1182ce8e6ae8f4ee177081a96dc68da7c85c856
MD5 0785c5d032c2fcc1cafaf284a51ba380
BLAKE2b-256 798409cc07c06a6a1202a16428936716bbfaba4139eece0fb77859d194dbb8d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a6cd555b2e0733ffd261d8c8ca376d0d2f24fce04d3265a9deb326158920767d
MD5 416adeae4ed50d4fe0086b1dc0933d40
BLAKE2b-256 f39e57a224bc82831628b9438e76b8ecdd5b29fa1366808d7d36d508412fd272

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 022b327b892eca2e7f24d97cb46cf256d38a12e4d2365bb21607e3c769806983
MD5 517af1403ab2710fed51ca633c34406d
BLAKE2b-256 b59835b2a4659e1b11fb9b03faddb7597e356d8b00992232b1b735b8e327e788

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 96efb03957574becc997158bea2e3cfefdd67714d716cfa25c1315a5ad530ba7
MD5 83f7b64e8d3acd663e63a0e58d05d19b
BLAKE2b-256 3d1b342deb4c8b7445a794b39994170182182770ee8dc9628360cbac070c532f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e036b2bab1930fc07687ebfb1ca0fc68c7a21b33db4d011ca8da6b0200d6b0eb
MD5 7179ad73d6291e2cc44b467dc8ec0a9d
BLAKE2b-256 d879145e3c90456841f13731e2bd35266d48ecf86fc4c0163ab5824d7a09b307

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 31589ea464f6f613c9bda860c4c4ff541b6aff309470148ca797f2105c01a49c
MD5 534bfef4d0c37285787c576559307307
BLAKE2b-256 2e655a411c187cfa6cd16a4d78ce3f709a46644d9c301332574dceeb88f5e37b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f06e2f72f5d99a016b505358fe0070a13d9976dc7bd57d45013de043560697d1
MD5 d50ef7eab2a6ee2ef5bf87069d186c82
BLAKE2b-256 ca09cc6cff79526a7992a1a82b102f350f9fa702ed6fb90ca1276eafb19d25bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 629873d11d24637019ef82e73d4eba078f23e116045c24e66481b944302a57e0
MD5 d60cc4d1414beb94037ed025f8f09c6b
BLAKE2b-256 12a3fab01e24c75380c182b9676d7c5a97c1984e9748aed87dc924853be6ce91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ac592f43d0a2b1921ae44062e58a032826c7939378c7283164ae06e3ac80f05c
MD5 a6e7c548c27ed2599906348d46d9e6ad
BLAKE2b-256 c9b0467500213263d82b1e72c43b60dc6ac36062e06c9e98dfeb3e52b9107759

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d07363eb823b51848331dceb67a85ccb1cf341aa23cec111468b4d01c28c2133
MD5 d880b0cbf2510b61bfbd2a2696e944fc
BLAKE2b-256 f74c6acd386218d94a732678ffb626be13f942ea962de7763b93b5501081b583

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 53c09db5153cb287c896d1ce8004f5a2b2d263f82567a313b3800efa895137aa
MD5 02c2965a381f96fedcfcb3eeb25f3dec
BLAKE2b-256 a98fc0a85ba44aafcb2d6be4608daff8498a759b81db94352231d9b1e1608cf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8b3f9728404029e40ee502a814ec70dac094c01bb6a2635feb5a7832a94b2f38
MD5 0c04d04a806ef671a92b7eecaa7d5e06
BLAKE2b-256 6b978681cd1444faa701c31849d5da28edee3977abd0d0e2f84274d7413ebac0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 66a190a1895650175435700bc4a8db80b0c60ac80c1799bdd1becad4698537e7
MD5 7e3fb30d39762c8593918b481a1e9aeb
BLAKE2b-256 546d30073e5fb51684617d92b9b1a8708f67324872412cf8f460e0522ed1713c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e4408642279ad84a3df768847adb10f172fd4ff7b04ecde05d5998a47a79cbb8
MD5 87dd953ca30a02254412d805f32e2f57
BLAKE2b-256 a8e88fe43e30dc5ca97cffffd97e18473a0a2e81d8ab418348f799f904d9b8cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7fbfa1bc06c0f344489e7a4cc67d786c0eaf3f4fdca8a693d34ffbaa54ea531d
MD5 fa8a2293c820f87447a4d6a13d25ff28
BLAKE2b-256 aa12969095d2e86c2f825f2c926e53f39974a0e0f938d4d4676dfdaf3042973d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 c729e9505e43ced52890f2a1fdd4a1855f2702bbf6ff1da37a1734dcabd58472
MD5 4cb6be65ebaea88003c507a7a718a0ff
BLAKE2b-256 c81fae7978a90607f1f73f41d072b597a1ab971f9fae3c475827961780b570d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 64569083a54c9d44afdfd2f7917b216c1fe6ebd1157e983dfec8585c260b9641
MD5 97c2a390415b6b4e8638e2b57f4bf845
BLAKE2b-256 76758f752d76b56b0bc055360537cfb1efc9f17a69fd00718ecfd8306c37b5d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e97eca8e695096a8a585cefacddbb5c0cb022603b2559ede80b81accdaf70641
MD5 081a353aee69abe18aa0760654a39f26
BLAKE2b-256 8f64bc1f2aa586ee19b59605360c250a5150370f1b7d803fcd96664ad1d204a9

See more details on using hashes here.

Release history Release notifications | RSS feed

5.3.1

20 files

5.3.0

20 files

This release

5.2.1 This release

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