Flags: Ensure the default first flag column is always set
As brought up in #182 (closed) , and discussed in person, the History should always carry a dummy column at the first position, indicating, that nothing is done yet. The problem is, that this first column is not set consistently and is missing, when a new Flags object is initialized from an existing one.
In order to get a missing feature into the translation schemes (!237 (merged)), I tried to fix this issue. Unfortunately, the initialization and checking of the Flags/History object is somewhat convoluted and the call chain triggered not straight forward. After putting in several hours resulting in a bunch of working but unsatisfying hacks, I'd like to give this task back to the original author @palmb.
To summarize the necessities:
-
Historyshould always carry a first columns (usually set toUNFLAGGED), no matter how they are initialized - We should not have multiple initializing columns as a result from repeated
Historycreation
All in all, I'd think, the Flags and History needs a bit of a cleanup. I especially stumbled upon the initialization:
- The function
initFlagsLikecreating emptyFlagsand correctHistory - The method
_initFromRawcreating non-emptyFlagswith incorrectHistory
IMO it would make sense to bring both to the same level, e.g as classmethods and somewhat streamline the value checks (maybe make _initFromRaw call initFlagsLike).