document_redaction_vlm / test /demo_single_test.py
seanpedrickcase's picture
Sync: Added Qwen3-VL-235B-A22B-Instruct to transformers models options
43bfad5
#!/usr/bin/env python3
"""
Demonstration script showing how to run a single test example.
This script shows how to use the run_cli_redact function directly
to test a specific CLI example.
"""
import os
import shutil
import sys
import tempfile
# Add the parent directory to the path
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from test import run_cli_redact
def demo_pdf_redaction():
"""Demonstrate how to run a single PDF redaction test."""
print("=== Demo: PDF Redaction with Default Settings ===")
# Set up paths
script_path = os.path.join(
os.path.dirname(os.path.dirname(__file__)), "cli_redact.py"
)
input_file = os.path.join(
os.path.dirname(os.path.dirname(__file__)),
"example_data",
"example_of_emails_sent_to_a_professor_before_applying.pdf",
)
output_dir = tempfile.mkdtemp(prefix="demo_output_")
print(f"Script: {script_path}")
print(f"Input: {input_file}")
print(f"Output: {output_dir}")
# Check if files exist
if not os.path.isfile(script_path):
print(f"❌ Script not found: {script_path}")
return False
if not os.path.isfile(input_file):
print(f"❌ Input file not found: {input_file}")
print(
"Make sure you have the example data files in the example_data/ directory"
)
return False
try:
# Run the test
print("\nRunning PDF redaction with default settings...")
result = run_cli_redact(
script_path=script_path, input_file=input_file, output_dir=output_dir
)
if result:
print("✅ Test completed successfully!")
print(f"Check the output directory for results: {output_dir}")
else:
print("❌ Test failed!")
return result
finally:
# Clean up
if os.path.exists(output_dir):
shutil.rmtree(output_dir)
print(f"Cleaned up: {output_dir}")
def demo_csv_anonymisation():
"""Demonstrate how to run a CSV anonymisation test."""
print("\n=== Demo: CSV Anonymisation ===")
# Set up paths
script_path = os.path.join(
os.path.dirname(os.path.dirname(__file__)), "cli_redact.py"
)
input_file = os.path.join(
os.path.dirname(os.path.dirname(__file__)),
"example_data",
"combined_case_notes.csv",
)
output_dir = tempfile.mkdtemp(prefix="demo_output_")
print(f"Script: {script_path}")
print(f"Input: {input_file}")
print(f"Output: {output_dir}")
# Check if files exist
if not os.path.isfile(script_path):
print(f"❌ Script not found: {script_path}")
return False
if not os.path.isfile(input_file):
print(f"❌ Input file not found: {input_file}")
print(
"Make sure you have the example data files in the example_data/ directory"
)
return False
try:
# Run the test
print("\nRunning CSV anonymisation...")
result = run_cli_redact(
script_path=script_path,
input_file=input_file,
output_dir=output_dir,
text_columns=["Case Note", "Client"],
anon_strategy="replace_redacted",
)
if result:
print("✅ Test completed successfully!")
print(f"Check the output directory for results: {output_dir}")
else:
print("❌ Test failed!")
return result
finally:
# Clean up
if os.path.exists(output_dir):
shutil.rmtree(output_dir)
print(f"Cleaned up: {output_dir}")
if __name__ == "__main__":
print("CLI Redaction Test Demo")
print("=" * 50)
print("This script demonstrates how to run individual tests.")
print("=" * 50)
# Run the demos
success1 = demo_pdf_redaction()
success2 = demo_csv_anonymisation()
print("\n" + "=" * 50)
print("Demo Summary")
print("=" * 50)
print(f"PDF Redaction: {'✅ PASSED' if success1 else '❌ FAILED'}")
print(f"CSV Anonymisation: {'✅ PASSED' if success2 else '❌ FAILED'}")
overall_success = success1 and success2
print(f"\nOverall: {'✅ PASSED' if overall_success else '❌ FAILED'}")
sys.exit(0 if overall_success else 1)