Files
doczyai-pipelines/fieldExtraction
Alex Galarce 306034820c Merged in feature/tin-enhancements (pull request #697)
Feature/tin enhancements

* Add OCR-correctable TIN patterns and substitution mapping

* Merge remote-tracking branch 'origin/main' into feature/tin-enhancements

* Refactor OCR-correctable TIN pattern and enhance documentation for clarity

* Enhance get_all_matches function with type hints and improve documentation; add get_all_matches_with_ocr for OCR-correctable matches

* Add attempt_ocr_correction function for TIN OCR error handling and validation

* Merge remote-tracking branch 'origin/main' into feature/tin-enhancements

* Integrate OCR correction for TIN extraction in run_provider_info_fields; log corrections for monitoring

* Refactor OCR-correctable patterns in regex_patterns.py; add NPI_OCR_PATTERN and enhance documentation for clarity

* Enhance OCR correction in attempt_ocr_correction to support both TIN and NPI; update validation logic for identifier lengths

* Integrate NPI OCR correction in run_provider_info_fields; log corrections for monitoring

* Enhance logging in run_provider_info_fields to summarize TIN and NPI extraction quality; include counts of exact and OCR-corrected identifiers

* Add unit and integration tests for OCR correction

* isort

* Merge remote-tracking branch 'origin/main' into feature/tin-enhancements

* Merged main into feature/tin-enhancements


Approved-by: Katon Minhas
2025-09-05 15:15:39 +00:00
..

Field Extraction

Running the Code

This project uses Python's module system for imports. To run the code properly:

  1. DO NOT run files directly like this:

    python src/client/main.py  # ❌ This won't work
    
  2. INSTEAD, use Python's module flag (-m) from the project root:

    python -m src.client.main  # ✅ This is correct
    

Why?

The code uses absolute imports (e.g., from src.utils import llm_utils) to maintain a clear and consistent package structure. Running with python -m ensures Python can properly resolve these imports.

Development

  • All imports should use the src. prefix (e.g., from src.utils import llm_utils)
  • Always run code from the project root directory using the -m flag
  • Tests are configured to handle these imports automatically via pytest settings in pyproject.toml

Configuration

The project uses poetry for dependency management and pytest for testing. Key configurations in pyproject.toml:

[tool.pytest.ini_options]
pythonpath=["."]
testpaths = [
    "tests"
]

Dependencies

To install dependencies:

poetry install

To run tests:

poetry run pytest

To run type checking:

poetry run mypy .