.gitignore
LICENSE.txt
Makefile
README.md
pyproject.toml
setup.py
uv.lock
.github/dependabot.yml
.github/scripts/test.bmp
.github/scripts/test.pdf
.github/scripts/wheel_test.py
.github/workflows/packaging.yml
.github/workflows/test_workflow.yml
docs/table-detection-algorithms.md
examples/Basic_usage.ipynb
examples/Implicit.ipynb
examples/borderless.ipynb
examples/utils.py
examples/data/borderless.jpg
examples/data/implicit.png
examples/data/tables.pdf
examples/data/tables.png
examples/data/tables.xlsx
examples/data/borderless/1.png
examples/data/borderless/2.png
examples/data/borderless/3.png
examples/data/borderless/4.png
src/img2table/__init__.py
src/img2table/_validation.py
src/img2table.egg-info/PKG-INFO
src/img2table.egg-info/SOURCES.txt
src/img2table.egg-info/dependency_links.txt
src/img2table.egg-info/requires.txt
src/img2table.egg-info/top_level.txt
src/img2table/document/__init__.py
src/img2table/document/_types.py
src/img2table/document/image.py
src/img2table/document/pdf.py
src/img2table/document/rotation/__init__.py
src/img2table/document/rotation/_rotation.c
src/img2table/document/rotation/_rotation.pyx
src/img2table/ocr/__init__.py
src/img2table/ocr/_types.py
src/img2table/ocr/aws_textract.py
src/img2table/ocr/azure.py
src/img2table/ocr/doctr.py
src/img2table/ocr/easyocr.py
src/img2table/ocr/google_vision.py
src/img2table/ocr/paddle.py
src/img2table/ocr/pdf.py
src/img2table/ocr/rapidocr.py
src/img2table/ocr/surya.py
src/img2table/ocr/tesseract.py
src/img2table/tables/__init__.py
src/img2table/tables/_metrics.c
src/img2table/tables/_metrics.pyx
src/img2table/tables/extractor.py
src/img2table/tables/metrics.py
src/img2table/tables/types.py
src/img2table/tables/bordered/__init__.py
src/img2table/tables/bordered/lines.py
src/img2table/tables/bordered/cells/__init__.py
src/img2table/tables/bordered/cells/_identification.c
src/img2table/tables/bordered/cells/_identification.pyx
src/img2table/tables/bordered/cells/deduplication.py
src/img2table/tables/bordered/cells/identification.py
src/img2table/tables/bordered/tables/__init__.py
src/img2table/tables/bordered/tables/normalization.py
src/img2table/tables/bordered/tables/creation/__init__.py
src/img2table/tables/bordered/tables/creation/cell_clustering.py
src/img2table/tables/bordered/tables/creation/creation.py
src/img2table/tables/bordered/tables/misc/__init__.py
src/img2table/tables/bordered/tables/misc/implicit.py
src/img2table/tables/bordered/tables/misc/semi_bordered.py
src/img2table/tables/borderless/__init__.py
src/img2table/tables/borderless/types.py
src/img2table/tables/borderless/layout/__init__.py
src/img2table/tables/borderless/layout/_text_lines.c
src/img2table/tables/borderless/layout/_text_lines.pyx
src/img2table/tables/borderless/layout/layout.py
src/img2table/tables/borderless/layout/text_lines.py
src/img2table/tables/borderless/sections/__init__.py
src/img2table/tables/borderless/sections/consistency.py
src/img2table/tables/borderless/sections/merging.py
src/img2table/tables/borderless/sections/segmentation.py
src/img2table/tables/borderless/tables/__init__.py
src/img2table/tables/borderless/tables/filter/__init__.py
src/img2table/tables/borderless/tables/filter/model.py
src/img2table/tables/borderless/tables/filter/metrics/__init__.py
src/img2table/tables/borderless/tables/filter/metrics/columns.py
src/img2table/tables/borderless/tables/filter/metrics/content.py
src/img2table/tables/borderless/tables/filter/metrics/misc.py
src/img2table/tables/borderless/tables/filter/metrics/rows.py
src/img2table/tables/borderless/tables/structure/__init__.py
src/img2table/tables/borderless/tables/structure/convert.py
src/img2table/tables/borderless/tables/structure/discrepancy.py
src/img2table/tables/borderless/tables/structure/headers.py
src/img2table/tables/common/__init__.py
src/img2table/tables/common/misc.py
src/img2table/tables/common/rows.py
src/img2table/tables/common/threshold.py
src/img2table/tables/common/titles.py
src/img2table/tables/extraction/__init__.py
src/img2table/tables/extraction/_utils.py
tests/__init__.py
tests/conftest.py
tests/ocr_data_utils.py
tests/_mock_data/azure.pkl
tests/_mock_data/surya.pkl
tests/_mock_data/tesseract_hocr.html
tests/_mock_data/textract.json
tests/_mock_data/vision.json
tests/_mock_data/vision.pkl
tests/document/__init__.py
tests/document/image/__init__.py
tests/document/image/test_image.py
tests/document/image/test_data/blank.png
tests/document/image/test_data/dark.png
tests/document/image/test_data/expected.xlsx
tests/document/image/test_data/test.png
tests/document/pdf/__init__.py
tests/document/pdf/test_pdf.py
tests/document/pdf/test_data/test.pdf
tests/document/rotation/__init__.py
tests/document/rotation/test_rotation.py
tests/document/rotation/test_data/test.png
tests/ocr/__init__.py
tests/ocr/aws_textract/__init__.py
tests/ocr/aws_textract/test_aws_textract.py
tests/ocr/aws_textract/test_data/content.json
tests/ocr/aws_textract/test_data/ocr.csv
tests/ocr/aws_textract/test_data/test.png
tests/ocr/azure/__init__.py
tests/ocr/azure/test_azure.py
tests/ocr/azure/test_data/ocr.csv
tests/ocr/azure/test_data/test.png
tests/ocr/data/__init__.py
tests/ocr/data/test_ocr_data.py
tests/ocr/data/test_data/expected_table.json
tests/ocr/data/test_data/ocr.csv
tests/ocr/data/test_data/table.json
tests/ocr/doctr/__init__.py
tests/ocr/doctr/test_doctr.py
tests/ocr/doctr/test_data/ocr.csv
tests/ocr/doctr/test_data/test.png
tests/ocr/easyocr/__init__.py
tests/ocr/easyocr/test_easyocr.py
tests/ocr/easyocr/test_data/ocr.csv
tests/ocr/easyocr/test_data/test.png
tests/ocr/google_vision/__init__.py
tests/ocr/google_vision/test_google_vision.py
tests/ocr/google_vision/test_data/ocr.csv
tests/ocr/google_vision/test_data/test.png
tests/ocr/paddle/__init__.py
tests/ocr/paddle/test_paddle.py
tests/ocr/paddle/test_data/ocr.csv
tests/ocr/paddle/test_data/test.png
tests/ocr/pdf/__init__.py
tests/ocr/pdf/test_pdf_ocr.py
tests/ocr/pdf/test_data/ocr.csv
tests/ocr/pdf/test_data/test.pdf
tests/ocr/rapidocr/__init__.py
tests/ocr/rapidocr/test_rapidocr.py
tests/ocr/rapidocr/test_data/ocr.csv
tests/ocr/rapidocr/test_data/test.png
tests/ocr/surya/__init__.py
tests/ocr/surya/test_surya.py
tests/ocr/surya/test_data/ocr.csv
tests/ocr/surya/test_data/test.png
tests/ocr/tesseract/__init__.py
tests/ocr/tesseract/test_tesseract.py
tests/ocr/tesseract/test_data/ocr.csv
tests/ocr/tesseract/test_data/test.png
tests/tables/__init__.py
tests/tables/bordered/__init__.py
tests/tables/bordered/cells/__init__.py
tests/tables/bordered/cells/test_cells.py
tests/tables/bordered/cells/test_deduplication_cells.py
tests/tables/bordered/cells/test_identification_cells.py
tests/tables/bordered/cells/test_data/expected.csv
tests/tables/bordered/cells/test_data/expected_ident_cells.csv
tests/tables/bordered/cells/test_data/expected_potential_cells.csv
tests/tables/bordered/cells/test_data/expected_vertical_dedup.csv
tests/tables/bordered/cells/test_data/lines.json
tests/tables/bordered/lines/__init__.py
tests/tables/bordered/lines/test_lines.py
tests/tables/bordered/lines/test_data/contours.json
tests/tables/bordered/lines/test_data/expected.json
tests/tables/bordered/lines/test_data/test.png
tests/tables/bordered/tables/__init__.py
tests/tables/bordered/tables/creation/__init__.py
tests/tables/bordered/tables/creation/test_cell_clustering.py
tests/tables/bordered/tables/creation/test_creation.py
tests/tables/bordered/tables/creation/test_data/cell_clusters_normalized.json
tests/tables/bordered/tables/creation/test_data/cells.json
tests/tables/bordered/tables/creation/test_data/cells_clustered.json
tests/tables/bordered/tables/creation/test_data/contours.json
tests/tables/bordered/tables/creation/test_data/tables_from_cells.json
tests/tables/bordered/tables/misc/__init__.py
tests/tables/bordered/tables/misc/test_implicit.py
tests/tables/bordered/tables/misc/test_semi_bordered.py
tests/tables/bordered/tables/misc/test_data/contours_implicit.json
tests/tables/bordered/tables/misc/test_data/table_implicit.json
tests/tables/bordered/tables/normalization/__init__.py
tests/tables/bordered/tables/normalization/test_normalization.py
tests/tables/bordered/tables/normalization/test_data/cell_clusters_normalized.json
tests/tables/bordered/tables/normalization/test_data/cells_clustered.json
tests/tables/borderless/__init__.py
tests/tables/borderless/layout/__init__.py
tests/tables/borderless/layout/test_layout.py
tests/tables/borderless/layout/test_text_lines.py
tests/tables/borderless/layout/test_data/contours.json
tests/tables/borderless/layout/test_data/lines.json
tests/tables/borderless/layout/test_data/test.bmp
tests/tables/borderless/sections/__init__.py
tests/tables/borderless/sections/test_consistency.py
tests/tables/borderless/sections/test_merging.py
tests/tables/borderless/sections/test_segmentation.py
tests/tables/borderless/sections/test_data/contours.json
tests/tables/borderless/tables/__init__.py
tests/tables/borderless/tables/test_tables.py
tests/tables/borderless/tables/filter/__init__.py
tests/tables/borderless/tables/filter/test_metrics.py
tests/tables/borderless/tables/filter/test_model.py
tests/tables/borderless/tables/structure/__init__.py
tests/tables/borderless/tables/structure/test_convert.py
tests/tables/borderless/tables/structure/test_discrepancy.py
tests/tables/common/__init__.py
tests/tables/common/test_common.py
tests/tables/extraction/__init__.py
tests/tables/extraction/test_extraction.py
tests/tables/extraction/test_data/table.html
tests/tables/extraction/test_data/tables.json
tests/tables/extractor/__init__.py
tests/tables/extractor/test_extractor.py
tests/tables/extractor/test_metrics.py
tests/tables/extractor/test_data/blank.png
tests/tables/extractor/test_data/borderless.png
tests/tables/extractor/test_data/ocr.csv
tests/tables/extractor/test_data/test.png
tests/tables/types/__init__.py
tests/tables/types/test_line.py
tests/tables/types/test_row.py
tests/tables/types/test_table.py
tests/tables/types/test_data/expected_tables.json
tests/tables/types/test_data/ocr.csv
tests/tables/types/test_data/tables.json