306034820c
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
Field Extraction
Running the Code
This project uses Python's module system for imports. To run the code properly:
-
DO NOT run files directly like this:
python src/client/main.py # ❌ This won't work -
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
-mflag - 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 .