##########################################################################################################
### Imports  
##########################################################################################################

# External
import argparse
import os
import sys

project_dir = "../.."
sys.path.insert(0, os.path.abspath(project_dir))

# Internal
from grn_ml_lib.config import add_argument, get_config

##########################################################################################################
### Parameters
##########################################################################################################

parser = argparse.ArgumentParser(
    description = 'Retrieve simulation parameters using optimisation methods.'
)
    
add_argument(parser, "--example", 0, "An example argument")
add_argument(parser, "--override_file", None, "Override parameters using a params.override.yaml file", str)

##########################################################################################################
### Constants
##########################################################################################################

# Config
PROJECT_NAME = "optimisation"
CONFIG = get_config(project_dir, parser)

##########################################################################################################
### Main
##########################################################################################################

def main() -> None:
    print(CONFIG.get("example"))

    CONFIG.to_yaml("out/params.override.yaml")

if __name__ == "__main__":
    main()
    