LSSTDESC / CCL

DESC Core Cosmology Library: cosmology routines with validated numerical accuracy
BSD 3-Clause "New" or "Revised" License
133 stars 64 forks source link

`write_yaml` does not serialise completely #1159

Open tilmantroester opened 4 months ago

tilmantroester commented 4 months ago

write_yaml currently ignores the baryonic_effects and mg_parametrization arguments to Cosmology, since it only uses what's in self._params_init_kwargs and self._config_init_kwargs. It also loses the information on transfer_function and matter_power_spectrum if they are emulators. That is, a roundtrip of write_yaml and read_yaml doesn't recover the same Cosmology object.

damonge commented 3 months ago

@tilmantroester , should this have been solved by #1160 ?

tilmantroester commented 3 months ago

Not exactly. Trying to use write_yaml with complex types for Cosmology arguments now raises an error instead of silently ignoring these arguments. But you still can't round-trip using read_yaml and write_yaml if an argument to Cosmology isn't something like a float or str.

damonge commented 3 months ago

OK, I see. So I guess we'd want some kind of _repr_ for the relevant CCL classes that contains enough information to recreate them from scratch.