Bug in multi-line dictionaries
If the first element of a multi-line dictionary contains an underscore, this gets converted to a hyphen. For example, with an injection dict like this
injection_dict = {
chirp_mass=35.0,
mass_ratio=0.5,
chi_1=0.0,
chi_2=0.0,
luminosity_distance=100.0,
theta_jn=1.4,
psi_mod_pib2=1.4,
phase=1.3,
geocent_time=1126259642.413,
ra=1.375,
dec=-1.2108,
}
Then in the complete config, it gets converted to
injection-dict={chirp-mass: 35.0, mass_ratio=0.5, chi_1=0.0, chi_2=0.0, luminosity_distance=100.0, theta_jn=1.4, psi_mod_pib2=1.4, phase=1.3, geocent_time=1126259642.413, ra=1.375, dec=-1.2108, }
Which can be very confusing (as it manifests as a waveform generator pop failures since chirp-mass is not recognised as a mass parameter).
Complete example ini file
``` ################################################################################ ## Calibration arguments ################################################################################calibration-model=None calibration-correction-type=None spline-calibration-envelope-dict=None spline-calibration-nodes=10 spline-calibration-amplitude-uncertainty-dict=None spline-calibration-phase-uncertainty-dict=None calibration-prior-boundary=reflective
################################################################################
Data generation arguments
################################################################################
ignore-gwpy-data-quality-check=True gps-tuple=None gps-file=None timeslide-file=None timeslide-dict=None trigger-time=None n-simulation=1 data-dict=None data-format=None allow-tape=True channel-dict=None frame-type-dict=None data-find-url=None data-find-urltype=osdf gaussian-noise=True zero-noise=False
################################################################################
Detector arguments
################################################################################
coherence-test=False detectors=[H1, L1] duration=4.0 generation-seed=None psd-dict=None psd-fractional-overlap=0.5 post-trigger-duration=2.0 sampling-frequency=4096 psd-length=32 psd-maximum-duration=1024 psd-method=median psd-start-time=None maximum-frequency=None minimum-frequency=20 tukey-roll-off=0.4 resampling-method=lal
################################################################################
Injection arguments
################################################################################
injection=True injection_dict = { chirp_mass=35.0, mass_ratio=0.5, chi_1=0.0, chi_2=0.0, luminosity_distance=100.0, theta_jn=1.4, psi_mod_pib2=1.4, phase=1.3, geocent_time=1126259642.413, ra=1.375, dec=-1.2108, } injection-file=None injection-numbers=None injection-waveform-approximant=None injection-frequency-domain-source-model=None injection-waveform-arguments=None injection-waveform-generator-constructor-dict=None
################################################################################
Job submission arguments
################################################################################
accounting=ligo.dev.o4.cbc.pe.bilby accounting-user=None label=bbh_injection local=False local-generation=False generation-pool=local-pool local-plot=False outdir=/Users/gregashton/bilby_pipe/examples/injection/outdir_bbh_injection overwrite-outdir=False periodic-restart-time=28800 request-disk=5 request-memory=8.0 request-memory-generation=None request-cpus=4 conda-env=None scheduler=condor scheduler-args=None scheduler-module=None scheduler-env=None scheduler-analysis-time=7-00:00:00 submit=False condor-job-priority=0 transfer-files=True additional-transfer-paths=None environment-variables=None getenv=None disable-hdf5-locking=False log-directory=None osg=True desired-sites=None analysis-executable=None analysis-executable-parser=None scitoken-issuer=None container=None
################################################################################
Likelihood arguments
################################################################################
calibration-marginalization=False distance-marginalization=False distance-marginalization-lookup-table=None phase-marginalization=False time-marginalization=False jitter-time=True reference-frame=sky time-reference=geocent likelihood-type=GravitationalWaveTransient calibration-lookup-table=None number-of-response-curves=1000 roq-folder=None roq-linear-matrix=None roq-quadratic-matrix=None roq-weights=None roq-weight-format=hdf5 roq-scale-factor=1 fiducial-parameters=None update-fiducial-parameters=False epsilon=0.025 extra-likelihood-kwargs=None
################################################################################
Output arguments
################################################################################
plot-trace=False plot-data=False plot-injection=False plot-spectrogram=False plot-calibration=False plot-corner=False plot-marginal=False plot-skymap=False plot-waveform=False plot-format=png create-summary=False email=None notification=Never queue=None existing-dir=None webdir=None summarypages-arguments=None result-format=hdf5 final-result=True final-result-nsamples=20000
################################################################################
Prior arguments
################################################################################
default-prior=BBHPriorDict deltaT=0.2 prior-file=bbh_injection.prior prior-dict=None enforce-signal-duration=True
################################################################################
Post processing arguments
################################################################################
postprocessing-executable=None postprocessing-arguments=None single-postprocessing-executable=None single-postprocessing-arguments=None
################################################################################
Sampler arguments
################################################################################
sampler=dynesty sampling-seed=None n-parallel=1 sampler-kwargs={'nlive': 1000, 'naccept': 60, 'check_point_plot': True, 'check_point_delta_t': 1800, 'print_method': 'interval-60', 'sample': 'acceptance-walk', 'npool': 4} reweighting-configuration=None reweight-nested-samples=True
################################################################################
Waveform arguments
################################################################################
waveform-generator=bilby.gw.waveform_generator.LALCBCWaveformGenerator waveform-generator-constructor-dict=None reference-frequency=20 waveform-approximant=IMRPhenomPv2 catch-waveform-errors=True pn-spin-order=-1 pn-tidal-order=-1 pn-phase-order=-1 pn-amplitude-order=0 numerical-relativity-file=None waveform-arguments-dict=None mode-array=None frequency-domain-source-model=lal_binary_black_hole conversion-function=None generation-function=None
################################################################################
Global settings
################################################################################
cosmology=Planck15
</details>