"""Configuration settings for the PDF Musical Score Cleaner.""" import os import multiprocessing from enum import IntEnum class OptimizationLevel(IntEnum): """Optimization levels for image processing. Levels: 1: Only trim whitespace 2: Trim + convert to 1-bit monochrome 3: All optimizations + optipng """ TRIM = 1 # Only trim whitespace MONOCHROME = 2 # Trim + convert to 1-bit monochrome FULL = 3 # All optimizations + optipng # Number of parallel processes to use for operations that support parallelization # Defaults to number of CPU cores - 1, but never less than 1 DEFAULT_PARALLEL_PROCESSES = max(1, multiprocessing.cpu_count() - 1) # Can be overridden by environment variable PARALLEL_PROCESSES = int(os.getenv('NOTES_CLEANER_PARALLEL_PROCESSES', DEFAULT_PARALLEL_PROCESSES)) # Border size in pixels for the final PDF output PDF_BORDER_SIZE = 50 # Optimization settings OPTIPNG_OPTIMIZATION_LEVEL = int(os.getenv('NOTES_CLEANER_OPTIPNG_LEVEL', '7')) # 0-7, higher = better compression but slower TRIM_PADDING_PIXELS = int(os.getenv('NOTES_CLEANER_TRIM_PADDING', '20')) # Padding around content after trimming # Image processing settings MONOCHROME_THRESHOLD = int(os.getenv('NOTES_CLEANER_MONO_THRESHOLD', '200')) # 0-255, higher = more white # Temporary directory settings TEMP_DIR_PREFIX = 'notes_cleaner_'