| 161 | |
| 162 | |
| 163 | def get_ocr_reader(ocr_reader_name: Optional[str] = None): |
| 164 | if not ocr_reader_name: |
| 165 | for name, reader in OCR_MAPPING.items(): |
| 166 | if OCR_AVAILABLE[name]: |
| 167 | return reader() |
| 168 | |
| 169 | if ocr_reader_name in OCR_MAPPING.keys(): |
| 170 | if OCR_AVAILABLE[ocr_reader_name]: |
| 171 | return OCR_MAPPING[ocr_reader_name]() |
| 172 | else: |
| 173 | raise NoOCRReaderFound(f"Failed to load: {ocr_reader_name} Please make sure its installed correctly.") |
| 174 | else: |
| 175 | raise NoOCRReaderFound( |
| 176 | f"Failed to find: {ocr_reader_name} in the available ocr libraries. The choices are: {list(OCR_MAPPING.keys())}" |
| 177 | ) |