A Python client for the ReadPDFs API
Project description
ReadPDFs
A Python client for the ReadPDFs API that allows you to process PDF files and convert them to markdown.
Installation
pip install readpdfs
Usage
Basic Client Usage
from readpdfs import ReadPDFs
# Initialize the client
client = ReadPDFs(api_key="your_api_key")
# Process a PDF from a URL
result = client.process_pdf(pdf_url="https://example.com/document.pdf")
# Process a local PDF file
result = client.process_pdf(file_path="path/to/local/document.pdf")
# Process from file content
with open("document.pdf", "rb") as f:
content = f.read()
result = client.process_pdf(file_content=content, filename="document.pdf")
# Fetch markdown content
markdown = client.fetch_markdown(url="https://api.readpdfs.com/documents/123/markdown")
# Get user documents
documents = client.get_user_documents(clerk_id="user_123")
FastAPI Integration
from fastapi import FastAPI, File, UploadFile, HTTPException
from readpdfs import ReadPDFs
from typing import Optional
app = FastAPI()
client = ReadPDFs(api_key="your_api_key")
@app.post("/process-pdf")
async def process_pdf(
pdf_url: Optional[str] = None,
file: Optional[UploadFile] = File(None),
quality: str = "standard"
):
try:
if pdf_url and file:
raise HTTPException(
status_code=400,
detail="Provide either pdf_url or file, not both"
)
if pdf_url:
result = client.process_pdf(pdf_url=pdf_url, quality=quality)
elif file:
content = await file.read()
result = client.process_pdf(
file_content=content,
filename=file.filename,
quality=quality
)
else:
raise HTTPException(
status_code=400,
detail="Either pdf_url or file must be provided"
)
return result
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
Features
- Process PDFs from URLs, local files, or file content
- Convert PDFs to markdown
- Fetch markdown content
- Retrieve user documents
- Configurable processing quality
- FastAPI integration support
Requirements
- Python 3.7+
- requests library
For FastAPI integration:
- fastapi
- python-multipart
- uvicorn
API Examples
cURL
# Process PDF from URL
curl -X POST "http://localhost:8000/process-pdf?pdf_url=https://example.com/document.pdf&quality=high"
# Upload PDF file
curl -X POST "http://localhost:8000/process-pdf?quality=high" \
-H "Content-Type: multipart/form-data" \
-F "file=@/path/to/local/document.pdf"
Python Requests
import requests
# URL method
response = requests.post(
"http://localhost:8000/process-pdf",
params={"pdf_url": "https://example.com/document.pdf", "quality": "high"}
)
# File upload method
with open("document.pdf", "rb") as f:
response = requests.post(
"http://localhost:8000/process-pdf",
params={"quality": "high"},
files={"file": f}
)
result = response.json()
License
This project is licensed under the MIT License - see the LICENSE file for details.
This update:
1. Added the new file content processing method
2. Included a complete FastAPI integration example
3. Added API examples using cURL and Python requests
4. Updated the requirements section to include FastAPI-related packages
5. Reorganized the usage section to separate basic client usage from FastAPI integration
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
readpdfs-0.1.5.tar.gz
(4.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file readpdfs-0.1.5.tar.gz.
File metadata
- Download URL: readpdfs-0.1.5.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09ff8d266ba64d125d6a96c02f23de6c782fa7d411530d8ef7439f1fa007fb81
|
|
| MD5 |
205bb63cd490c9a33e83c13f6f80ecfc
|
|
| BLAKE2b-256 |
35fdc560742e5277488c720310d1d63931106bb78750a6691df53ee90bf1fd4b
|
File details
Details for the file readpdfs-0.1.5-py3-none-any.whl.
File metadata
- Download URL: readpdfs-0.1.5-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44c6e85c75e24c97480506ddb47db5e3bf2c82e995745cfc2045d4bc4953ad3a
|
|
| MD5 |
b5e827a809382d446973e1782ec63fc0
|
|
| BLAKE2b-256 |
749558566ae173ff62b20272d61e54d6d28bf4ccdf5508c396ed9f3f0f27e438
|