-
Notifications
You must be signed in to change notification settings - Fork 1
Description
You can reproduce this error with a small script test_mbatch.py like this one:
from mnms import noise_models as nm
import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument("--output-dir", dest="output_dir", type=str, default=None)
parser.add_argument('--config-name', dest='config_name', type=str, required=True,
help='Name of model config file from which to load parameters')
parser.add_argument('--noise-model-name', dest='noise_model_name', type=str, required=True,
help='Name of model within config file from which to load parameters')
parser.add_argument('--qid', dest='qid', nargs='+', type=str, required=True,
help='list of soapack array "qids"')
args = parser.parse_args()
print(args.qid)
# args.qid = [item for sublist in args.qid for item in sublist.split()]
model = nm.BaseNoiseModel.from_config(args.config_name, args.noise_model_name,
*args.qid)
print('success')To run it, we use a test mbatch config file looks like this
root_dir: /home/ia404/gitreps/mnms/scripts/
stages:
stage_test:
exec: python
options:
config-name: 'act_dr6v4_day'
noise-model-name: 'tile_cmbmask_daywide'
qid:
- 'pa5a_dw'
- 'pa5b_dw'
script: scripts/test_mbatch.pyThis generates
python scripts/test_mbatch.py --config-name=act_dr6v4_day --noise-model-name=tile_cmbmask_daywide --qid="['pa5a_dw', 'pa5b_dw']" --output-dir /home/ia404/gitreps/mnms/scripts/test/stage_test, which doesn't work because qid ends up being ["['pa5a_dw', 'pa5b_dw']"], pa5a and pa6a all together.
Another alternative:
root_dir: /home/ia404/gitreps/mnms/scripts/
stages:
stage_test:
exec: python
options:
config-name: 'act_dr6v4_day'
noise-model-name: 'tile_cmbmask_daywide'
qid: 'pa5a_dw pa5b_dw'
script: scripts/test_mbatch.pyBut in this case we have
python scripts/test_mbatch.py --config-name=act_dr6v4_day --noise-model-name=tile_cmbmask_daywide --qid='pa5a_dw pa5b_dw' --output-dir /home/ia404/gitreps/mnms/scripts/test/stage_test
which also doesn't work, ['pa5a_dw pa5b_dw'] not separated again.
Adding
args.qid = [item for sublist in args.qid for item in sublist.split()] is the best solution I could find for it to be able to run with mbatch, while also being compatible with older scripts.
Originally posted by @iabrilcabezas in simonsobs/mnms#8 (comment)
