handwriting-ocr / src /operators /main_processor.operator.py
ashkansadri's picture
init
22997db
Raw History Blame Contribute Delete
1.53 kB
import logging
from src.lib.cache_manager import CacheManager
from src.services.processors.english_handwritten import EnglishHandwrittenProcessor
from src.services.processors.mnist_processor import MNISTProcessor
from src.services.processors.az_processor import AZProcessor
from src.services.processors.chars74k_processor import Chars74KProcessor
def setup_basic_logging():
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
def main() -> bool:
try:
# Setup logging first
setup_basic_logging()
processors = {
"EH": EnglishHandwrittenProcessor(),
"MNIST": MNISTProcessor(),
"AZ": AZProcessor(),
"Chars74K": Chars74KProcessor()
}
success = True
for name, processor in processors.items():
logging.info(f"Starting {name} dataset processing...")
if not processor.process():
logging.error(f"Failed to process {name} dataset")
success = False
else:
logging.info(f"Successfully processed {name} dataset")
return success
except Exception as e:
logging.error(f"Critical error in main processor: {str(e)}")
return False
finally:
# Clean cache at the end
CacheManager.cleanup()
if __name__ == "__main__":
success = main()
exit(0 if success else 1)