-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
For several reasons, it would be beneficial to have data containers be frozen.
- Caching: it is not possible to reliably cache objects that can be changed after creation. Frozen objects allows for caching in memory or on disk, potentially resulting in major speed improvements.
- Provenance tracking: for provenance tracking (i.e., what steps and objects resulted in the creation of the current object?) it is necessary that all intermediate objects are frozen. Otherwise, the tracking is incomplete/unreliable.
- Predictability of code: some commands can unintentionally alter objects. This can result in unpredictable and difficult to reproduce results.
For many workflows, this will not have any major implications. Many objects are created, and then never changed. There is a pattern, however, where a copy of an object is made, which is then edited to be a new version, e.g., with edited data and a different label. There should be an easy way to do this in a single command, using a method similar to dataclasses.replace().
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request