From 6e1d90de2fda843957d78b27134fa3252e3a85c3 Mon Sep 17 00:00:00 2001 From: Esa Kataja Date: Tue, 3 Dec 2024 21:15:34 +0200 Subject: [PATCH] feat: Add settings module - Add configuration for parallel processing - Add optimization settings (optipng level, trim padding) - Support environment variable overrides - Add temporary directory prefix setting --- settings.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 settings.py diff --git a/settings.py b/settings.py new file mode 100644 index 0000000..044e084 --- /dev/null +++ b/settings.py @@ -0,0 +1,18 @@ +"""Configuration settings for the PDF Musical Score Cleaner.""" + +import os +import multiprocessing + +# 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)) + +# 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 + +# Temporary directory settings +TEMP_DIR_PREFIX = 'notes_cleaner_'