# pyright: ignore
#!/usr/bin/env python3
"""
Test VLM pipeline only to see what's broken with markdown export.
"""

from pathlib import Path
from docling.document_converter import DocumentConverter, PdfFormatOption
from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import VlmPipelineOptions
from docling.datamodel.vlm_model_specs import GRANITEDOCLING_TRANSFORMERS
from docling.pipeline.vlm_pipeline import VlmPipeline

# Test file
pdf_path = Path("output/debug_pages/TMUS_992_Q423_page_017.pdf")

print(f"Testing VLM pipeline on: {pdf_path}")
print("=" * 50)

# VLM pipeline configuration
vlm_options = VlmPipelineOptions(vlm_options=GRANITEDOCLING_TRANSFORMERS)
vlm_format_options = PdfFormatOption(
    pipeline_cls=VlmPipeline,
    pipeline_options=vlm_options
)

converter = DocumentConverter(
    format_options={InputFormat.PDF: vlm_format_options}
)

print("Converting with VLM pipeline...")
result = converter.convert(str(pdf_path))

print("
Conversion complete!")
print(f"Document has {len(result.document.pages)} pages")
print(f"Document has {len(result.document.tables)} tables")

# Check document structure
document = result.document

# Check for pictures (VLM might be interpreting as images)
if hasattr(document, 'pictures') and document.pictures:
    print(f"
Found {len(document.pictures)} pictures")
    for i, pic in enumerate(document.pictures[:3]):
        print(f"Picture {i+1}: {pic}")

# Export to markdown
markdown = result.document.export_to_markdown()
print(f"
Markdown length: {len(markdown)} characters")

# Save output
output_path = Path("test_vlm_output.md")
with open(output_path, "w") as f:
    f.write(markdown)
print(f"Output saved to: {output_path}")

# Show preview
print("
First 2000 chars of markdown:")
print(markdown[:2000])
print("
Last 500 chars of markdown:")
print(markdown[-500:])
