Skip to main content

Biblioteca para extração inteligente de documentos PDF com IA

Project description

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)
  • 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

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")

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.


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 ou azure

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

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

Project details


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-3.0.2-cp313-cp313-win_amd64.whl (942.3 kB view details)

Uploaded CPython 3.13Windows x86-64

deepread_monkai-3.0.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

deepread_monkai-3.0.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (6.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

deepread_monkai-3.0.2-cp313-cp313-macosx_10_13_universal2.whl (2.0 MB view details)

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

deepread_monkai-3.0.2-cp312-cp312-win_amd64.whl (947.7 kB view details)

Uploaded CPython 3.12Windows x86-64

deepread_monkai-3.0.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

deepread_monkai-3.0.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

deepread_monkai-3.0.2-cp312-cp312-macosx_10_13_universal2.whl (2.0 MB view details)

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

deepread_monkai-3.0.2-cp311-cp311-win_amd64.whl (973.7 kB view details)

Uploaded CPython 3.11Windows x86-64

deepread_monkai-3.0.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

deepread_monkai-3.0.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

deepread_monkai-3.0.2-cp311-cp311-macosx_10_9_universal2.whl (2.0 MB view details)

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

deepread_monkai-3.0.2-cp310-cp310-win_amd64.whl (970.8 kB view details)

Uploaded CPython 3.10Windows x86-64

deepread_monkai-3.0.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

deepread_monkai-3.0.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (6.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

deepread_monkai-3.0.2-cp310-cp310-macosx_10_9_universal2.whl (2.1 MB view details)

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

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8fde70e3f14c4526168aed589a559f46ea85a7f91255f62499d6baf14451da0b
MD5 cc8495f185cac2c5bd5440dbf50c0f11
BLAKE2b-256 12ad3cff51ba2646c1ef537546edacb8efec8aa286e1e81b1a8ad782d67db9e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 f65e0e8165035d3f790da6faa363eda29caf2fd7db8de7842c072c15156cd6d5
MD5 728a4209b02258ef488e83faaf986c87
BLAKE2b-256 297f8a57d80d22816226e70b47bcd2bb10e8bbcf69f1b430822b06537fade87a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 4c35fff4469e6fe66fd6d62b419639848d0b85e15bbc4a9d884a209253a811ed
MD5 c733ff982b9044e93f0d19b0d9b37259
BLAKE2b-256 fb7928dcb465f3c96f0a8165be0f04998880553d5337746e7674faa0b0683ecc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3ece5a9244e1ad8a249f7866ca1ac3560aaf591435af815a5e7ae3ed3a41b549
MD5 1484f822e8d3acbeb5597e83a8772d69
BLAKE2b-256 fe199afb56648eb37d3b9d52c987ddd8ada2223cee66d07a2c73fbbdc86f7e51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 43f503d35dea951314e03f6eb58787c7c5a3876d357aeeee823984bcafe933db
MD5 69d7e5c1a00faa23bc2d52ea640fb1ab
BLAKE2b-256 c539dc9e8996ed6fc465cf83394b8bd75a1c883f8b95a3917afc48f1ffa0ac1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 be81a3dc22fd7e6bcb53fbe5900e6f29c34310cf63a09c2891717edd84bfc734
MD5 6fc84ede08356529c9a44d69698eb569
BLAKE2b-256 2fcb89e312f3d908fd34d969c1c308534dfd54837af34c8d571c5dc416371edc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 df44682926ea9c8cda630cb447b4f210af6aa26f8b8529ca05730af37635db2a
MD5 9af92c14ab60a936827ef068f5d71425
BLAKE2b-256 2f4632869a1b7b8005ba111b43ba0718629c859b172200f4953a5430ab58e887

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 0dc109322645d8c1f5207716d9431cc30d05c881da9c6fd0d95c8de59a8a38d9
MD5 10044c510fbc1b14eba2dbf3c4626bce
BLAKE2b-256 183528bbe043b0e5bc3df19f69292b84b5e86ba956174571c74ad0e1f98711de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d5c24f7463b72099e1673efed96696496ca54616100086fb05300d44d9c2b5ba
MD5 ce5777999965faf3f57cd5b332293070
BLAKE2b-256 9e6408b2e4fd429a36885c4ad7d890ac483a1c1a4aec79667e2369125d8519a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b64868bc8795e2b5b6e978857bbd221af158cc3d449ad88a79228113750f0603
MD5 55e5247d2003813c28d28c7f36f97d2b
BLAKE2b-256 ebf87830c4ef58dc4a6400b4b2e0dc47eab156de1c4285b5f6e518762ba93c9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 03a99dbf933c08d6995276a50cc656cbc5bb4f8ef07a820eff1c29e38cbd0930
MD5 904e65e49682ed2151ff2a70032e6be2
BLAKE2b-256 ae128f539b84a05bea0475c2febc4e1dd207aa946e69ab1cac1b63b5360d6282

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 79b112a41aa3c32b90aaf48542fdaa0b4419bcb071c4e8eb9ba914a75403e6dd
MD5 bca43e60b6c86f50440ae233c9c9ef90
BLAKE2b-256 e0cada0f8b296b5d6d4ccd3123c5c438a16e9c0e86504951fc3be6269f5adcc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 99b763da89ef0377c5dd0f8db1eaf84560454828401bae1aee51853fb18f223a
MD5 01976617cf74c5feedf61e67d9c37482
BLAKE2b-256 4e6a801c0b1e713397ccd5693ecb293bf5da4f707daf04360f20274a1b73ba34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9e1ee30a8e355abe866024ec93ca60aaa062c253905ff604a25e199f6d3f35d4
MD5 c10c4f9ad4afdbef6844491c82c9654d
BLAKE2b-256 203dcf73edbd364cbf8f44bc74f13c8030efd7a70cd46cd97cd9ee9c60af6d7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 fd4022c785ec794d81af4ecc78003311f06052549426bba231da6ce80f107b78
MD5 4bd9ea1640c019b17698ae3a2f6c4b56
BLAKE2b-256 1c9bfd78f74c26acfbaab8adba670dc8457906af58efd726c9f57735443c2336

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2d45d8196469119d4b5c9b94309a78760d1442f10cf6dfdfc14603e7fed1efeb
MD5 21d0665c482b76ea9b9c761198674e8a
BLAKE2b-256 e418a42d3df0c2b805496131146aac49588109702b3bf2909a7c419bd6592950

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page