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

Uploaded CPython 3.13Windows x86-64

deepread_monkai-3.0.1-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.1-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.1-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.1-cp312-cp312-win_amd64.whl (947.1 kB view details)

Uploaded CPython 3.12Windows x86-64

deepread_monkai-3.0.1-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.1-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.1-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.1-cp311-cp311-win_amd64.whl (973.1 kB view details)

Uploaded CPython 3.11Windows x86-64

deepread_monkai-3.0.1-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.1-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.1-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.1-cp310-cp310-win_amd64.whl (970.4 kB view details)

Uploaded CPython 3.10Windows x86-64

deepread_monkai-3.0.1-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.1-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.1-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.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 829b9de2745d14a5a0950606ce60738e15ae8d75b45dc4d88a54995fe3073cc7
MD5 1228b048fd5a63e0960f666c08e9388d
BLAKE2b-256 ac4e3d60bca9296f0e204469fda7a5930fb1fee553c591b09a6545d41bac558c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 86b6974753314a5ee84f025bc020a528089073091eb78e67bf51461a516e31c5
MD5 394c8f7f23ac8c7bb463edb13b301802
BLAKE2b-256 11f3c05fb6eaea30334049c6a1f1a4dab16ea3514a152a480b7090ed516a9156

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 5466a109067b4ec3661a5582b594d013ef2965f7a5407168be2f7e5d9ef4f957
MD5 4597073abc207741a10b2dda5c1a7a43
BLAKE2b-256 c09d3e2a58f88cdc61b051a55ff5f98894cb72c6e793119b16f8b8bed0b5b54c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 37971826f7fb7e1d90d45e22ce61adec2fc695dd6b83193af763f62db7e519f3
MD5 1588e37a8b8636ccefe507209f1f33d4
BLAKE2b-256 31cb8184eab5b9f3b07710614b6a5a22b01acd862c67cc51168aeb198abb10e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 54e108771c3c651cf23ac66e280946ca2d77f72aff1b29fb3b253a8433c13de3
MD5 cfb880088e238cd993a74bb4ac213832
BLAKE2b-256 f6d278508b5829513c863e6867609ccc52809ab808192bfc0a26068aad322ec3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 bf08ef24348a7ec2ea2b023ece80d49ec7415b671bf23ec963136d76bb1cad83
MD5 f57a7e87abde1326402ae3f4eae8a643
BLAKE2b-256 e43cdcbf41646c4fedbcefb52d04926b74183780fd836faf575d7da429bc8ab6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 db5f9a2b6fb125d806a028fa6e059f3a242091144dd5067c62e4949a9a455e47
MD5 70f5aff7cc08b3ca02f37b78852788fd
BLAKE2b-256 ae0043f59e1a0983cf1fa0981507d35abbd1b76481d6ad062b6109a551acc1ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 d07cf776f3d79f41501c1510850e3361c7908181d64cf78a237c2e0b55fc2e5a
MD5 854ae531f47f252be547129fa8f9a664
BLAKE2b-256 85bd79b39dcb812f66e79ee923c34f51cfca3fdfc33bd4eb68110f7c34ad790c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 713dbf5750b2ca327bbe5fe0fdcb81ca00e0fe748699f519e7f763b6cad73414
MD5 e238a3cf76d9ab7888e532bdc5fcbfb6
BLAKE2b-256 200a5ca140fd2f833d880f02285df4db64503e0591fd533e6e6238b23160c47b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 85969487f73e889fdd28bd6dad964eeb31707deb881438f1a33262275d9fd2a7
MD5 017b72f836e634623dc7dc7557ce7883
BLAKE2b-256 5cfa844235622ca3b5be6b13b5541d4fd1e1fbd99a0f0adeeb58b8991c1c792c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 b0763990c888f2f52cf20b667be8cf3defdd2392211401f3671b9997e3d95e55
MD5 c54aa5fb2752e7ea6d586c748aa5d920
BLAKE2b-256 e03f2d54513f8918f00e6d852d03c889a1f6ce76f445332c5a8db24adea52c94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f13aba40efb53fc70ee8f41767fa23e28ffae5e1235000e72d9344d0227480b8
MD5 7f7e351340b93859cbfcc648087ce75c
BLAKE2b-256 9bb7571d71fca01c01b55776ed6fd01007954db3f23fcb42fbbb1e614ff1aad8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 efa5ec1f736e8f793c37ac4aceae77b27516c82d880a3baf84ba654f720d0cd7
MD5 4058a6653c1cc1c48993b21df3f1e7fe
BLAKE2b-256 f457cb032782456636c8d336fc1e22abffc0f8f9e875a2e99f5e3c3092113d03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b3774da67f423ad80cef983d35f3662e5f103eee1f29d8ab21cc602a0ad23944
MD5 08f6ee4f878180e10ea9aa18c62b0662
BLAKE2b-256 666fa79bae43d2e00848a153a6926c298d9ab941d593f6af0c35b7c1a8dbe058

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 46e618990e839769566f70f4a432513ec9963e0e67f4fb17d80177d9342b6827
MD5 703b08b7eb3572f2df1acac8f9223ed9
BLAKE2b-256 92779b31c987920247793509be8f62a9ce43d3a5435d7f1ce506edb8489e390b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deepread_monkai-3.0.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 52abdd01241658e1fcf698645ef3cc19790285130937f200c279bb6d98d259cd
MD5 dd90346bffc8092fb628230d238592d1
BLAKE2b-256 0006cb68242fb422a5100335de681f173d5912aa44c83de6af79a821d3b5df2a

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