camelot-dev/camelot

A Python library to extract tabular data from PDFs

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 5 minutes ago
Added to GitGenius on September 18th, 2026
Created on July 1st, 2019
Open Issues & Pull Requests: 55 (+0)
GitHub issues: Enabled
Number of forks: 546
Total Stargazers: 3,823 (+0)
Total Subscribers: 46 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 89.2 days
Mean response time: 636.2 days
90th percentile: 2190.8 days
Tracked items: 226

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 14
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 895 days
Stale 30+ days: 14
Stale 90+ days: 13

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (94)
  • enhancement (46)
  • question (7)
  • documentation (5)
  • good first issue (4)
  • testing (2)
  • faq (1)
  • help wanted (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Camelot is a Python library for extracting tabular data from PDFs.

The library addresses the challenge of recovering structured table data from unstructured PDF documents. It provides five distinct parsing strategies: lattice for ruled tables, stream for whitespace-based detection, network and hybrid modes using text alignment, and an optional machine learning backend using Table Transformer for borderless tables. Users can also enable optical character recognition to handle scanned or image-only PDFs. The tool combines vector line detection from the PDF itself with raster-based OpenCV detection to identify faintly-ruled tables that single approaches might miss.

Camelot suits projects requiring reliable table extraction without heavy dependencies. The default installation uses a bundled pdfium backend with no system requirements, while optional extras add neural network and OCR capabilities. Every extracted table becomes a pandas DataFrame, and the library supports export to CSV, JSON, Excel, HTML, Markdown, and SQLite. A command-line interface is included for quick extraction tasks. The tool handles multi-page tables through a stacking function and offers quality metrics per table—accuracy, whitespace ratio, and confidence scores—allowing users to filter out low-quality extractions. Configuration options cover table regions, column separators, and text processing.

The project maintains active engagement with its codebase, regularly addressing issues and incorporating user feedback. Development shows consistent attention to both core functionality and edge cases, with particular focus on improving parser robustness across different PDF types. The maintainers prioritize backward compatibility while expanding capabilities through optional dependencies rather than bloating the base installation.