Source statements below remain in their published language. Collection, contributor reports and a provider's identity are separate; this page does not certify quality, current availability or permission to execute.
Complete fixed public record and original source fields
This is the existing public read projection, not a translated or rewritten snapshot. Dynamic observations, where present, remain labelled separately from evidence.
{
"availability": "unknown",
"callability": "documentation_only",
"category": "development",
"data_handling": {
"location": "local",
"notes": "\u6587\u6863\u6240\u8FF0\u5DE5\u5177\u8C03\u7528\uFF1B\u5B9E\u9645\u73AF\u5883\u7F51\u7EDC\u884C\u4E3A\u3001\u79C1\u4EBA\u6587\u4EF6\u8BB8\u53EF\u548C\u5B8C\u6574\u6570\u636E\u6D41\u672A\u7531\u672Cprofile\u6267\u884C\u9A8C\u8BC1\u3002"
},
"description": "Complete pinned README/CHANGELOG/LICENSE reviewed as documentation; SDK table extraction was not executed. \u4EC5\u6587\u6863\u58F0\u660E\uFF1B\u5B9E\u9645\u7248\u672C\u3001\u6761\u4EF6\u548C\u8F93\u51FA\u5FC5\u987B\u6309\u5404\u8BC1\u636E\u4F5C\u7528\u57DF\u5224\u65AD\u3002",
"inputs": [
"\u542B\u53EF\u7528\u6587\u5B57\u5C42\u7684PDF\uFF1B\u9002\u7528\u6027\u4ECD\u9700\u6838\u5BF9"
],
"invocation": {
"authentication": {
"kind": "unknown",
"notes": "unknown; no actual scenario executed"
},
"command": null,
"entry_url": null,
"kind": "local_library",
"method": null,
"requirements": [
"README upstream statement: tested on Python 3.10, 3.11, 3.12, 3.13, 3.14; NAVONAVO did not run these tests",
"\u914D\u65B9\u4EC5proposed\uFF1B\u539F\u59CB\u6587\u6863\u7248\u672C\u4E0D\u7B49\u4E8E\u5F53\u524D\u5B89\u88C5\u6216\u8FD0\u884C\u7248\u672C\u3002"
]
},
"limitations": [
"output_format=xlsx\uFF1ANo applicable native XLSX-export evidence in this saved response.",
"output_structure=json_object\uFF1ASDK table -\u003E row -\u003E cell lists are not a verified JSON-object recipe.",
"text_layer=present\uFF1AMachine-generated preference does not prove every PDF has a usable text layer.",
"runtime_os=windows\uFF1ANo applicable Windows feature execution or installation was performed.",
"input_features=merged_cells\uFF1AMerged-cell output quality was not executed or checked.",
"languages=zh\uFF1AChinese table extraction was not executed.",
"cpu_only=true\uFF1ANo exact-profile CPU-only evidence was verified.",
"gpu_required=false\uFF1ANo exact-profile GPU requirement evidence was verified.",
"runtime_network_required=false\uFF1ANo offline-runtime scenario was executed.",
"setup_network_required=true\uFF1AA pip command alone does not establish mandatory network or offline installation behavior.",
"auth_required=false\uFF1ANo applicable authentication behavior was tested.",
"account_required=false\uFF1ANo applicable account requirement was tested.",
"\u53E6\u4E00\u672C\u673A0.11.9\u5355\u4F8B\u89C2\u5BDF\u4E0E\u672Cprofile\u7684\u6587\u6863commit\u5206\u79BB\uFF0C\u4E0D\u80FD\u642C\u6210\u672Cprofile\u5B9E\u6D4B\u3002"
],
"outputs": [
"\u6587\u6863\u58F0\u660Etable\u2192row\u2192cell\u5D4C\u5957\u5217\u8868\uFF1BXLSX\u548C\u901A\u7528JSON\u5BF9\u8C61\u9002\u914D\u672A\u77E5"
],
"pricing": {
"model": "unknown",
"notes": "\u672Cprofile\u7684\u7B2C\u4E09\u65B9\u8D39\u7528\u3001\u8D26\u6237\u5B9E\u9645\u989D\u5EA6\u548C\u5B8C\u6574\u4F7F\u7528\u6210\u672C\u672A\u6838\uFF1B\u516C\u5F00\u8D44\u6599\u53EF\u8BFB\u4E0D\u4EE3\u8868\u8C03\u7528\u514D\u8D39\u3002",
"source_url": null
},
"provider_claimed": false,
"record_kind": "public_source",
"representative_queries": [],
"sources": [
{
"basis": "official_repository",
"checked_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"title": "pdfplumber/README.md at stable \u00B7 jsvine/pdfplumber \u00B7 GitHub",
"url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md"
}
],
"summary": "\u4F9D\u636E\u56FA\u5B9AREADME\u7684Python SDK\u8868\u683C\u63D0\u53D6\u6587\u6863\uFF1B\u672Cprofile\u672A\u6267\u884C\uFF0C\u4E0D\u662FOCR\u6216XLSX\u5BFC\u51FA\u3002",
"tags": [
"pdfplumber",
"documentation_only",
"not_tested"
],
"terms_url": null,
"title": "pdfplumber \u00B7 PDF\u8868\u683C\u63D0\u53D6",
"unknowns": [
"output_format=xlsx\uFF1ANo applicable native XLSX-export evidence in this saved response.",
"output_structure=json_object\uFF1ASDK table -\u003E row -\u003E cell lists are not a verified JSON-object recipe.",
"text_layer=present\uFF1AMachine-generated preference does not prove every PDF has a usable text layer.",
"runtime_os=windows\uFF1ANo applicable Windows feature execution or installation was performed.",
"input_features=merged_cells\uFF1AMerged-cell output quality was not executed or checked.",
"languages=zh\uFF1AChinese table extraction was not executed.",
"cpu_only=true\uFF1ANo exact-profile CPU-only evidence was verified.",
"gpu_required=false\uFF1ANo exact-profile GPU requirement evidence was verified.",
"runtime_network_required=false\uFF1ANo offline-runtime scenario was executed.",
"setup_network_required=true\uFF1AA pip command alone does not establish mandatory network or offline installation behavior.",
"auth_required=false\uFF1ANo applicable authentication behavior was tested.",
"account_required=false\uFF1ANo applicable account requirement was tested."
],
"verification": {
"checked_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"checks_performed": [
"\u5DF2\u4FDD\u5B58HTTP200\u4E14\u672A\u622A\u65AD\u7684\u6765\u6E90\u8D44\u6599",
"\u9010\u6761\u4EF6\u5BF9\u7167\u6587\u6863\u3001\u9650\u5236\u4E0E\u7248\u672C\u4F5C\u7528\u57DF",
"\u539FDeepCard\u5951\u7EA6\u9759\u6001\u6821\u9A8C\u901A\u8FC7"
],
"evidence_urls": [
"https://github.com/jsvine/pdfplumber/blob/stable/README.md"
],
"level": "documentation_only",
"not_verified": [
"\u5B9E\u9645\u8F6F\u4EF6/\u5F15\u64CE\u7248\u672C\u3001\u5B89\u88C5\u73AF\u5883\u3001\u8EAB\u4EFD\u4E0E\u8C03\u7528\u7ED3\u679C",
"\u8D39\u7528\u3001\u989D\u5EA6\u3001\u79C1\u4EBA\u6570\u636E\u8BB8\u53EF\u53CA\u5B8C\u6574\u7559\u5B58\u5220\u9664\u653F\u7B56",
"\u4E2D\u6587\u3001\u5408\u5E76\u683C\u3001\u590D\u6742\u8868\u683C\u4E0E\u8F93\u51FA\u8D28\u91CF"
],
"outcome": "not_tested",
"reported_by": "contributor",
"software_version": null,
"test_summary": "\u53EA\u6838\u5BF9\u4FDD\u5B58\u7684\u516C\u5F00\u6587\u6863\u53CA\u6B64\u7CBE\u786Eprofile\u8BC1\u636E\u4F5C\u7528\u57DF\uFF1B\u672A\u6267\u884C\u6B64\u7248\u672C\u7684\u5DE5\u5177\u3001API\u6216\u8F93\u51FA\u68C0\u67E5\u3002"
},
"author_name": null,
"schema_version": "navonavo.capability.v1",
"service_id": "cap-64a07121b07c92f045155387",
"version": 2,
"source_url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"ownership_state": "unclaimed",
"submitted_by": {
"kind": "importer",
"name": "\u9694\u79BB\u672C\u5730\u8D44\u6599\u9884\u89C8"
},
"submitter_identity_verified": false,
"source_check": {
"url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"final_url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"status_code": 200,
"title": "pdfplumber/README.md at stable \u00B7 jsvine/pdfplumber \u00B7 GitHub",
"description": "Plumb a PDF for detailed information about each char, rectangle, line, et cetera \u2014\u00A0and easily extract text and tables. - pdfplumber/README.md at stable \u00B7 jsvine/pdfplumber",
"checked_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"warnings": [
"\u6765\u6E90\u53EF\u8BFB\u53D6\u53EA\u8BC1\u660E\u672C\u6B21\u8D44\u6599\u8BFB\u53D6\uFF0C\u4E0D\u662F\u529F\u80FD\u3001\u8EAB\u4EFD\u6216\u957F\u671F\u53EF\u7528\u6027\u8BA4\u8BC1\u3002"
]
},
"created_at": "2026-10-24T03:17:06.7384628\u002B00:00",
"updated_at": "2026-10-24T03:17:06.7670013\u002B00:00",
"read_url": "https://navonavo.com/api/v1/capabilities/cap-64a07121b07c92f045155387?version=2",
"page_url": "https://navonavo.com/capabilities/cap-64a07121b07c92f045155387?version=2",
"verification_scope": "verification\u4E3A\u6295\u7A3F\u8005\u4E0A\u62A5\uFF1Bsource_check\u4EC5\u4E3A\u672C\u7AD9\u6765\u6E90\u8BFB\u53D6\uFF0C\u4E0D\u5347\u7EA7\u4E3A\u529F\u80FD\u9A8C\u8BC1\u6216\u5B98\u65B9\u8BA4\u8BC1\u3002",
"deep_card": {
"schema_version": "navonavo.deep-card.v1",
"dictionary_version": "navonavo.conditions.v1",
"card_version": 2,
"updated_at": "2026-10-24T01:20:49.9081211\u002B00:00",
"review_state": "current",
"profiles": [
{
"profile_id": "pdfplumber-python-extract-tables",
"component_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"summary": "Complete pinned README/CHANGELOG/LICENSE reviewed as documentation; SDK table extraction was not executed.",
"claims": [
{
"key": "input_format",
"value": "pdf",
"conclusion": "supported",
"evidence_refs": [
"normal-readme-intro"
],
"unknown_reason": null
},
{
"key": "invocation_mode",
"value": "sdk",
"conclusion": "supported",
"evidence_refs": [
"normal-readme-intro"
],
"unknown_reason": null
},
{
"key": "execution_location",
"value": "local",
"conclusion": "supported",
"evidence_refs": [
"normal-readme-intro"
],
"unknown_reason": null
},
{
"key": "operation",
"value": "extract_tables",
"conclusion": "supported",
"evidence_refs": [
"normal-readme-tables"
],
"unknown_reason": null
},
{
"key": "output_structure",
"value": "table",
"conclusion": "supported",
"evidence_refs": [
"normal-readme-tables"
],
"unknown_reason": null
},
{
"key": "setup_required",
"value": "true",
"conclusion": "supported",
"evidence_refs": [
"normal-readme-install"
],
"unknown_reason": null
},
{
"key": "operation",
"value": "ocr",
"conclusion": "unsupported",
"evidence_refs": [
"normal-readme-no-ocr"
],
"unknown_reason": null
},
{
"key": "output_format",
"value": "xlsx",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "No applicable native XLSX-export evidence in this saved response."
},
{
"key": "output_structure",
"value": "json_object",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "SDK table -\u003E row -\u003E cell lists are not a verified JSON-object recipe."
},
{
"key": "text_layer",
"value": "present",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "Machine-generated preference does not prove every PDF has a usable text layer."
},
{
"key": "runtime_os",
"value": "windows",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "No applicable Windows feature execution or installation was performed."
},
{
"key": "input_features",
"value": "merged_cells",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "Merged-cell output quality was not executed or checked."
},
{
"key": "languages",
"value": "zh",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "Chinese table extraction was not executed."
},
{
"key": "cpu_only",
"value": "true",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "No exact-profile CPU-only evidence was verified."
},
{
"key": "gpu_required",
"value": "false",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "No exact-profile GPU requirement evidence was verified."
},
{
"key": "runtime_network_required",
"value": "false",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "No offline-runtime scenario was executed."
},
{
"key": "setup_network_required",
"value": "true",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "A pip command alone does not establish mandatory network or offline installation behavior."
},
{
"key": "auth_required",
"value": "false",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "No applicable authentication behavior was tested."
},
{
"key": "account_required",
"value": "false",
"conclusion": "unknown",
"evidence_refs": [],
"unknown_reason": "No applicable account requirement was tested."
}
],
"connection": {
"entry": "python:pdfplumber.open",
"protocol": "Python SDK; documented, not run",
"authentication": "unknown; no actual scenario executed",
"environment": [
"README upstream statement: tested on Python 3.10, 3.11, 3.12, 3.13, 3.14; NAVONAVO did not run these tests"
],
"pricing_status": "unknown",
"quota_status": "unknown"
},
"recipe": {
"recipe_id": "pdfplumber-extract-tables-draft",
"revision": 1,
"required_capabilities": [
"extract_tables"
],
"preconditions": [
"Usable native-PDF text layer; not an OCR workflow",
"Authorized isolated Python installation and test fixture; not performed in this draft"
],
"steps": [
"Review the pinned README and limitations.",
"If separately authorized, install pdfplumber in an isolated Python environment.",
"Open a fixture PDF with pdfplumber.open and call page.extract_tables().",
"Check table, row and cell values against expected fixture contents before adoption."
],
"input_contract": "A local native PDF with an independently confirmed usable text layer.",
"output_contract": "Documented table -\u003E row -\u003E cell nested lists; no verified XLSX export or JSON-object adapter.",
"validation": "NOT RUN. Require a reproducible fixture, exact dependency version, environment, expected cell checks and output artifact.",
"failure_fallback": "Keep unknown; scanned PDF needs a separately evidenced OCR path; do not infer quality or publish from this draft."
}
}
],
"evidence": [
{
"evidence_id": "readme-intro",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber",
"locator": "saved wire read.text / article / introduction and Python usage",
"excerpt": "Works best on machine-generated, rather than scanned, PDFs.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "831636d6fa3df9d610beaac44d589cc5b34ee447ff54ba56118b540b0acfd96a",
"collected_at": "2026-10-23T23:27:39.323344\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "input_format",
"value": "pdf"
},
{
"key": "invocation_mode",
"value": "sdk"
},
{
"key": "execution_location",
"value": "local"
}
],
"execution": null
},
{
"evidence_id": "readme-tables",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber",
"locator": "saved wire read.text / article / extract_tables(table_settings={})",
"excerpt": "Returns text from tables as nested lists with the structure table -\u003E row -\u003E cell.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "831636d6fa3df9d610beaac44d589cc5b34ee447ff54ba56118b540b0acfd96a",
"collected_at": "2026-10-23T23:27:39.323344\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "operation",
"value": "extract_tables"
},
{
"key": "output_structure",
"value": "table"
}
],
"execution": null
},
{
"evidence_id": "readme-no-ocr",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber",
"locator": "saved wire read.text / article / Comparison to other libraries / features not provided",
"excerpt": "The README lists OCR among features pdfplumber does not provide.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "831636d6fa3df9d610beaac44d589cc5b34ee447ff54ba56118b540b0acfd96a",
"collected_at": "2026-10-23T23:27:39.323344\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "operation",
"value": "ocr"
}
],
"execution": null
},
{
"evidence_id": "readme-install",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber",
"locator": "saved wire read.text / article / Installation",
"excerpt": "pip install pdfplumber",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "831636d6fa3df9d610beaac44d589cc5b34ee447ff54ba56118b540b0acfd96a",
"collected_at": "2026-10-23T23:27:39.323344\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "setup_required",
"value": "true"
}
],
"execution": null
},
{
"evidence_id": "normal-readme-intro",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"locator": "rawLines L7, L70\u201376",
"excerpt": "The documentation describes PDF input and local Python SDK usage, with a preference for machine-generated PDFs.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "b789fa65e1dfd51a0e7eb18a7d159b8c3a2febeeb14549a0e037f516230841b9",
"collected_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "input_format",
"value": "pdf"
},
{
"key": "invocation_mode",
"value": "sdk"
},
{
"key": "execution_location",
"value": "local"
}
],
"execution": null
},
{
"evidence_id": "normal-readme-tables",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"locator": "rawLines L374",
"excerpt": "The documented result is nested lists ordered by table, row and cell, without verifying a JSON-object or XLSX adapter.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "b789fa65e1dfd51a0e7eb18a7d159b8c3a2febeeb14549a0e037f516230841b9",
"collected_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "operation",
"value": "extract_tables"
},
{
"key": "output_structure",
"value": "table"
}
],
"execution": null
},
{
"evidence_id": "normal-readme-no-ocr",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"locator": "rawLines L519\u2013524",
"excerpt": "The documented limitations include no OCR and no strong table-extraction support for OCR documents.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "b789fa65e1dfd51a0e7eb18a7d159b8c3a2febeeb14549a0e037f516230841b9",
"collected_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "operation",
"value": "ocr"
}
],
"execution": null
},
{
"evidence_id": "normal-readme-install",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"locator": "rawLines L32",
"excerpt": "The README gives a pip installation command; it was not executed in this task.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "b789fa65e1dfd51a0e7eb18a7d159b8c3a2febeeb14549a0e037f516230841b9",
"collected_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "setup_required",
"value": "true"
}
],
"execution": null
}
]
},
"version_read_basis": "archived_revision",
"deep_read": {
"schema_version": "navonavo.capability-read.v1",
"card_id": "cap-64a07121b07c92f045155387",
"card_version": 2,
"selected_profile_id": null,
"state": "documented",
"review_state": "current",
"read_url": "https://navonavo.com/api/v1/capabilities/cap-64a07121b07c92f045155387?version=2",
"page_url": "https://navonavo.com/capabilities/cap-64a07121b07c92f045155387?version=2",
"profiles": [
{
"profile_id": "pdfplumber-python-extract-tables",
"component_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"summary": "Complete pinned README/CHANGELOG/LICENSE reviewed as documentation; SDK table extraction was not executed.",
"conditions": [
{
"key": "input_format",
"value": "pdf",
"state": "T",
"reason": "Supported within this profile and component version.",
"evidence_refs": [
"normal-readme-intro"
]
},
{
"key": "invocation_mode",
"value": "sdk",
"state": "T",
"reason": "Supported within this profile and component version.",
"evidence_refs": [
"normal-readme-intro"
]
},
{
"key": "execution_location",
"value": "local",
"state": "T",
"reason": "Supported within this profile and component version.",
"evidence_refs": [
"normal-readme-intro"
]
},
{
"key": "operation",
"value": "extract_tables",
"state": "T",
"reason": "Supported within this profile and component version.",
"evidence_refs": [
"normal-readme-tables"
]
},
{
"key": "output_structure",
"value": "table",
"state": "T",
"reason": "Supported within this profile and component version.",
"evidence_refs": [
"normal-readme-tables"
]
},
{
"key": "setup_required",
"value": "true",
"state": "T",
"reason": "Supported within this profile and component version.",
"evidence_refs": [
"normal-readme-install"
]
},
{
"key": "operation",
"value": "ocr",
"state": "F",
"reason": "Explicitly contradicted within this profile.",
"evidence_refs": [
"normal-readme-no-ocr",
"normal-readme-tables"
]
},
{
"key": "output_format",
"value": "xlsx",
"state": "U",
"reason": "No applicable native XLSX-export evidence in this saved response.",
"evidence_refs": []
},
{
"key": "output_structure",
"value": "json_object",
"state": "U",
"reason": "SDK table -\u003E row -\u003E cell lists are not a verified JSON-object recipe.",
"evidence_refs": []
},
{
"key": "text_layer",
"value": "present",
"state": "U",
"reason": "Machine-generated preference does not prove every PDF has a usable text layer.",
"evidence_refs": []
},
{
"key": "runtime_os",
"value": "windows",
"state": "U",
"reason": "No applicable Windows feature execution or installation was performed.",
"evidence_refs": []
},
{
"key": "input_features",
"value": "merged_cells",
"state": "U",
"reason": "Merged-cell output quality was not executed or checked.",
"evidence_refs": []
},
{
"key": "languages",
"value": "zh",
"state": "U",
"reason": "Chinese table extraction was not executed.",
"evidence_refs": []
},
{
"key": "cpu_only",
"value": "true",
"state": "U",
"reason": "No exact-profile CPU-only evidence was verified.",
"evidence_refs": []
},
{
"key": "gpu_required",
"value": "false",
"state": "U",
"reason": "No exact-profile GPU requirement evidence was verified.",
"evidence_refs": []
},
{
"key": "runtime_network_required",
"value": "false",
"state": "U",
"reason": "No offline-runtime scenario was executed.",
"evidence_refs": []
},
{
"key": "setup_network_required",
"value": "true",
"state": "U",
"reason": "A pip command alone does not establish mandatory network or offline installation behavior.",
"evidence_refs": []
},
{
"key": "auth_required",
"value": "false",
"state": "U",
"reason": "No applicable authentication behavior was tested.",
"evidence_refs": []
},
{
"key": "account_required",
"value": "false",
"state": "U",
"reason": "No applicable account requirement was tested.",
"evidence_refs": []
}
],
"connection": {
"entry": "python:pdfplumber.open",
"protocol": "Python SDK; documented, not run",
"authentication": "unknown; no actual scenario executed",
"environment": [
"README upstream statement: tested on Python 3.10, 3.11, 3.12, 3.13, 3.14; NAVONAVO did not run these tests"
],
"pricing_status": "unknown",
"quota_status": "unknown"
},
"recipe": {
"recipe_id": "pdfplumber-extract-tables-draft",
"revision": 1,
"required_capabilities": [
"extract_tables"
],
"preconditions": [
"Usable native-PDF text layer; not an OCR workflow",
"Authorized isolated Python installation and test fixture; not performed in this draft"
],
"steps": [
"Review the pinned README and limitations.",
"If separately authorized, install pdfplumber in an isolated Python environment.",
"Open a fixture PDF with pdfplumber.open and call page.extract_tables().",
"Check table, row and cell values against expected fixture contents before adoption."
],
"input_contract": "A local native PDF with an independently confirmed usable text layer.",
"output_contract": "Documented table -\u003E row -\u003E cell nested lists; no verified XLSX export or JSON-object adapter.",
"validation": "NOT RUN. Require a reproducible fixture, exact dependency version, environment, expected cell checks and output artifact.",
"failure_fallback": "Keep unknown; scanned PDF needs a separately evidenced OCR path; do not infer quality or publish from this draft."
},
"evidence": [
{
"evidence_id": "readme-intro",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber",
"locator": "saved wire read.text / article / introduction and Python usage",
"excerpt": "Works best on machine-generated, rather than scanned, PDFs.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "831636d6fa3df9d610beaac44d589cc5b34ee447ff54ba56118b540b0acfd96a",
"collected_at": "2026-10-23T23:27:39.323344\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "input_format",
"value": "pdf"
},
{
"key": "invocation_mode",
"value": "sdk"
},
{
"key": "execution_location",
"value": "local"
}
],
"execution": null
},
{
"evidence_id": "readme-tables",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber",
"locator": "saved wire read.text / article / extract_tables(table_settings={})",
"excerpt": "Returns text from tables as nested lists with the structure table -\u003E row -\u003E cell.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "831636d6fa3df9d610beaac44d589cc5b34ee447ff54ba56118b540b0acfd96a",
"collected_at": "2026-10-23T23:27:39.323344\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "operation",
"value": "extract_tables"
},
{
"key": "output_structure",
"value": "table"
}
],
"execution": null
},
{
"evidence_id": "readme-no-ocr",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber",
"locator": "saved wire read.text / article / Comparison to other libraries / features not provided",
"excerpt": "The README lists OCR among features pdfplumber does not provide.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "831636d6fa3df9d610beaac44d589cc5b34ee447ff54ba56118b540b0acfd96a",
"collected_at": "2026-10-23T23:27:39.323344\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "operation",
"value": "ocr"
}
],
"execution": null
},
{
"evidence_id": "readme-install",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber",
"locator": "saved wire read.text / article / Installation",
"excerpt": "pip install pdfplumber",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "831636d6fa3df9d610beaac44d589cc5b34ee447ff54ba56118b540b0acfd96a",
"collected_at": "2026-10-23T23:27:39.323344\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "setup_required",
"value": "true"
}
],
"execution": null
},
{
"evidence_id": "normal-readme-intro",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"locator": "rawLines L7, L70\u201376",
"excerpt": "The documentation describes PDF input and local Python SDK usage, with a preference for machine-generated PDFs.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "b789fa65e1dfd51a0e7eb18a7d159b8c3a2febeeb14549a0e037f516230841b9",
"collected_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "input_format",
"value": "pdf"
},
{
"key": "invocation_mode",
"value": "sdk"
},
{
"key": "execution_location",
"value": "local"
}
],
"execution": null
},
{
"evidence_id": "normal-readme-tables",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"locator": "rawLines L374",
"excerpt": "The documented result is nested lists ordered by table, row and cell, without verifying a JSON-object or XLSX adapter.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "b789fa65e1dfd51a0e7eb18a7d159b8c3a2febeeb14549a0e037f516230841b9",
"collected_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "operation",
"value": "extract_tables"
},
{
"key": "output_structure",
"value": "table"
}
],
"execution": null
},
{
"evidence_id": "normal-readme-no-ocr",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"locator": "rawLines L519\u2013524",
"excerpt": "The documented limitations include no OCR and no strong table-extraction support for OCR documents.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "b789fa65e1dfd51a0e7eb18a7d159b8c3a2febeeb14549a0e037f516230841b9",
"collected_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "operation",
"value": "ocr"
}
],
"execution": null
},
{
"evidence_id": "normal-readme-install",
"evidence_type": "documentation",
"source_url": "https://github.com/jsvine/pdfplumber/blob/stable/README.md",
"locator": "rawLines L32",
"excerpt": "The README gives a pip installation command; it was not executed in this task.",
"source_version": "4c64b92d5caccd71c645e98e0fabb0c4dba7ff45",
"content_sha256": "b789fa65e1dfd51a0e7eb18a7d159b8c3a2febeeb14549a0e037f516230841b9",
"collected_at": "2026-10-24T01:19:44.9419469\u002B00:00",
"profile_ids": [
"pdfplumber-python-extract-tables"
],
"covers": [
{
"key": "setup_required",
"value": "true"
}
],
"execution": null
}
]
}
],
"warnings": [
"\u8D44\u6599\u4E0E\u6765\u6E90\u58F0\u660E\u4E0D\u7B49\u4E8E\u672C\u7AD9\u5B9E\u6D4B\uFF1B\u672A\u5217\u51FA\u7684\u6761\u4EF6\u4ECD\u672A\u77E5\u3002",
"\u7ED3\u6784\u5316\u914D\u65B9\u53EA\u6309\u516C\u5F00\u58F0\u660E\u68C0\u67E5\u7EA6\u675F\u4E0E\u63A5\u53E3\uFF0C\u4E0D\u6267\u884C\u4EFB\u52A1\u6216\u6388\u4E88\u6743\u9650\uFF1B\u7F3A\u5931\u8BB0\u5F55\u4FDD\u6301\u672A\u77E5\uFF0C\u63A5\u53E3\u517C\u5BB9\u4E0D\u8BC1\u660E\u5B9E\u9645\u6210\u529F\u3002"
]
}
}