Configuration¶
irorun relies on external configuration files to dictate its behavior. The two primary configuration files are:
project_config.toml: Controls project bootstrapping parameters such as project directory, environment manager, subdirectories, dependencies, and additional options like Git initialization.
logging.conf: Defines the logging setup, including loggers, handlers, and formatters. It uses a custom handler to output color-coded logs.
Example: project_config.toml¶
[init]
project_directory = "apriquot"
subdirectories = ["src", "docs", "tests"]
extra_subdirectories = [] # Additional directories if needed
package_manager = "poetry" # Options: "poetry", "uv", "virtualenv"
venv_name = "venv"
dependencies = ["numpy", "pandas", "matplotlib"]
Example: logging.conf¶
[loggers]
keys=root,irorun
[handlers]
keys=typerHandler,fileHandler
[formatters]
keys=coloredFormatter
[logger_root]
level=INFO
handlers=typerHandler
[logger_irorun]
level=DEBUG
handlers=typerHandler,fileHandler
qualname=irorun
propagate=0
[handler_typerHandler]
class=irorun.logger_setup.TyperLoggerHandler
level=DEBUG
formatter=coloredFormatter
args=()
[handler_fileHandler]
class=FileHandler
level=INFO
formatter=coloredFormatter
args=('irorun.log', 'a')
[formatter_coloredFormatter]
format=[%(asctime)s] %(levelname)s in %(module)s: %(message)s
datefmt=%Y-%m-%d %H:%M:%S
This structure allows you to modify behavior without changing code, ensuring consistency across environments.