Consider the following PEP723 config snippet :
...
# [tool.hog.anvil]
# endpoint = "5aafb4c1-27b2-40d8-a038-a0277611868f"
# account = "cis250461"
# walltime = 300
#
# [tool.hog.anvil.gpu]
# account = "cis250461-gpu"
# qos = "gpu"
# partition = "gpu-debug"
# scheduler_options = "#SBATCH --gpus-per-node=1"
# worker_init = "module load conda"
As a groundhog user who wants to share their script with a colleague, it doesn't make as much sense to have account = "cis250461" tightly coupled to the source code as it does to have e.g. # scheduler_options = "#SBATCH --gpus-per-node=1".
Since some config values might be sensitive and/or user specific, we should allow them to specify a low-precedence default ~/.groundhog.toml like
[tool.hog.anvil]
endpoint = "5aafb4c1-27b2-40d8-a038-a0277611868f"
account = "cis250461"
[tool.hog.anvil.gpu]
account = "cis250461-gpu"
so that the script I share with my colleague only needs the default values that would actually be common to us, not every single option I passed to the executor.
Consider the following PEP723 config snippet :
As a groundhog user who wants to share their script with a colleague, it doesn't make as much sense to have
account = "cis250461"tightly coupled to the source code as it does to have e.g.# scheduler_options = "#SBATCH --gpus-per-node=1".Since some config values might be sensitive and/or user specific, we should allow them to specify a low-precedence default
~/.groundhog.tomllikeso that the script I share with my colleague only needs the default values that would actually be common to us, not every single option I passed to the executor.