File size: 1,534 Bytes
22997db
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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)