lincc-frameworks / tape

[Deprecated] Package for working with LSST time series data
https://tape.readthedocs.io
MIT License
12 stars 3 forks source link

Config Class (Dataclass?) #250

Open dougbrn opened 11 months ago

dougbrn commented 11 months ago

It may be a good idea to introduce an ensemble-level config class. There are a small number of configurable aspects to TAPE, users being able to view/manage these via a config class would make these more approachable. I also think this would make saving an ensemble easier, as the config can be stored and reloaded, and would aid in reproducibility to easily know the configuration settings that were used in a given workflow.

Implementation-wise, I'm thinking something as simple as a dictionary, but could also be a dataframe.

Edit: More details from slack

I was thinking of it as a central place for some of the various flags and settings we have going in TAPE right now, a few examples:

So mainly just giving settings that have the ability to influence how the ensemble is behaving a more central place for inspection/reproducibility.

dougbrn commented 11 months ago

Additionally, this could hold unit information if available. We're still trying to understand the scope of how TAPE should support units (is it just for reference, minimal usage in unit conversion functions, or full blown unit tracking in all TAPE operations?). The config class would offer the ability to store these by column name, giving us a way to inherit unit information and metadata as it's provided by hipscat, and the ability to save that metadata to file when ensemble saving is implemented so that information is not lost between sessions.