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

Uploaded CPython 3.13Windows x86-64

deepread_monkai-5.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

deepread_monkai-5.2.0-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.0-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.0-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.0-cp312-cp312-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.12Windows x86-64

deepread_monkai-5.2.0-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.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (7.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

deepread_monkai-5.2.0-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.0-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.0-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86-64

deepread_monkai-5.2.0-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.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (7.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

deepread_monkai-5.2.0-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.0-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.0-cp310-cp310-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.10Windows x86-64

deepread_monkai-5.2.0-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.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (7.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

deepread_monkai-5.2.0-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.0-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.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 62827e323ee6c587ca72be4f4eaa5d8451980e351336919218dd99a6e1acdb74
MD5 29bb22dffa9866914985213e5008cfbd
BLAKE2b-256 52abe60d7da9b5c42ce5247e10a1396ed6e188f6b81f998fe8a2f4cbf627e508

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 396d5769fdce6c691762a50ef6ed42f1188bc519897c78b25dbdd5f386556d87
MD5 7ec01d10cf34a6ad4fba75f601555074
BLAKE2b-256 9f0046e6e19155f4050af4b643ace95b95ccb1cb10f93ae98506f8d4c3e0985e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 a1cc2bec1cb8feaaba72aea41fc9df6199e2d56b5facc3fa2ecb25617742f4ba
MD5 77c06c3785fd83eabba2375fa9d0c909
BLAKE2b-256 ce7ef111bff3dd2f1a0c1ec42198f10adbacf8a2de1eb12065fbe15bb279e974

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ed573e07166a2fe85169f8445d49ce4ec2572c4fb82c64ffc404514f8f4e6b64
MD5 0f2591e9299dfee692a84e54dd3d9f6b
BLAKE2b-256 2bc84db5549e400ba87219fd80ca0868ad333c2b5673a541f1e5727d61ffd0b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 209f189530220b4b1d0adc526569a3f1b8a5943b366179d2470091d5d9b107e1
MD5 113d2dc8c64e5ca911474be2a44d11b9
BLAKE2b-256 3c8b45c37a4359a98e97c406dce38013980575970d3cb30ed9e5e4a0d4f1d10f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c11b79df681fe6f79cfb8a47745f1cf808d564129aeb0dae75caeb5414ff4bf8
MD5 ebbc0782102767cd49ef12d1360fe393
BLAKE2b-256 223019a3c7ef47b52ceb08b50f7532c25990fe3710693436667c5513f0f208bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 56812518a4655e7a469be51f81a13bb5ff685423573ea3970715a7bcaf25f319
MD5 d10f7e8afdc680acdf7f3b8adebd01c6
BLAKE2b-256 a540b8389ef52b579ba0293eae4330168e5990f4c59f15edb105d759cc7cd1a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 cb826176cf9c3c64fa1a5960b0ac3df8fe54d572aa6d6e2f22508511c76db32b
MD5 c09d3ad3f60ea3779789d589d7341b7c
BLAKE2b-256 417c7ea9863ccd1a2f414be8da41cce3731cd67de09c01e611bce201e8c1e210

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 2109725c4ca2ce46d6289a68f860377f4a5ea131ea6aa8f89b5b030ff0717f53
MD5 a1031815d89decce2bb32a5621968162
BLAKE2b-256 01e9a5c94a3c076ea2a4722ec9046cea3e64e64c664740e32414edbbf01c5d23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 8137116b30b69a1efe56c8a8125087f8176837b4cb1a444de9e7e38ccc347f83
MD5 daecee9e923c7475f22f307bb72e7fbe
BLAKE2b-256 fa9aacf9ef8f92bfd1349cd3c17887e26d35eddef795b887a0233402b8052d1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a91c5574829c67665cad4163c6f2acc84101b40b3c7e8ada2156c08085f811ba
MD5 e8a586f2aa8661633786543c5b4276d1
BLAKE2b-256 cfce29b8a77272bc22751f1857d1f46399991780fbec1177d38d841861146e40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 adbf430ed7ff6b3302efe8a7478d8cee3aba3d01b27e3d32b692b527ad996198
MD5 67c88f94f733f18ee98b87b108e1ac1a
BLAKE2b-256 dd08500f99a2af151ef927b09e9b47b1af7e756399d7efb5f0972c853587ddf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 5518d98f07c3957542432fc331ee76800db19a4d36693568f3e91cc4728a9e81
MD5 b43281efaef6ff09f982518eeab90480
BLAKE2b-256 8bb35878bbc8a7ca3e6d49946425d2630800da77c407e3fe63aef1aad5699fd2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 37dcf6e7fe731c55d3fabc74bab336ecf2a9f795679473cfa2578c7e26719923
MD5 b14d8df0cd0a38279cd372497cb7ed93
BLAKE2b-256 e82088d2aca9d3209df72a95d19c96d4ab4c4576059d6d2fc90dc8baf167246a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 de0c121761ddff7cd3025e707adb754fc7c8dd24e636f7acdaa17937397e18be
MD5 0f3c57c8ef83d99f87c9097f6e7fa1e0
BLAKE2b-256 f691b7360e8491b6e0171f4b5d6301f195ec4ce1afd3b56d26499bfb6b3030bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bbbd00a9a8057cc1cb8233b03c2795a52354becca1f3235be7ff1936aa442aeb
MD5 a9bdaa7d8edd94e743de167a7ad5fd3d
BLAKE2b-256 f08597b1ab3a04408b792364563396980aaba71e528d60dc53ece5ec44817ae9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ced8846d6c0fa99e2f400be25c0e33ff287edcadba5dd55ff05828572c4ffd67
MD5 dd5d3113cd51653ac876dfdf540a5b66
BLAKE2b-256 8f75869951daec1d40aa608f11de3f433e4b4354f2b21aadf9a57c0641d78266

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 609e056337a0e7e93b89c1fd12da53977b5dbec94433268a5f190e065f2bb77b
MD5 fba3dc729dd3d687f1fd3ce5cf00a4ee
BLAKE2b-256 20ddf97e11067a4e383cc62f6bc85a74231a70b8e16e4c86dd3f5fa7c8e88983

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0d87c23bec0c98ec48e1ef5d25ea5a8df04ba16925bcbb673ce04e8e2fff38a0
MD5 467bf3e14f855ce6db6a71aa7f5176bb
BLAKE2b-256 960e00f85c36f9a40ea3a4eada3729b8e87246d4955ef3188233152abe8f94d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-5.2.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b7d75cd5bd03a800d8b44522a1882818784c35669171181abeb4d688e2275250
MD5 1060b18b9b3c5daa8cd36ee0f7bab605
BLAKE2b-256 8395a870b988ec4b82133c49f82a4d934ac4c5b650d75c5abec55e8f8a4d68d6

See more details on using hashes here.

Release history Release notifications | RSS feed

5.3.1

20 files

5.3.0

20 files

5.2.1

20 files

This release

5.2.0 This release

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