Lazy vs eager evaluation
As we decided in a personal discussion, SaQC is likely to get another modus operandi, namely eager evaluation (@palmb's camp) in addition to its current idea of laziness (@schaefed's camp). This change is likely to be accompanied, or rather spearheaded by the the introduction of __getitem__
based variable access, as discussed in (way) more detail in #147 (closed).
But if we have different and incompatible ways of doing things (__getitem__
basically breaks the call-History as outlined here), we need a way to clearly separate them, in order to minimize confusion and secure potential foot guns.
One possible solution, I wanted to point your attention to, is the way it is done in polars, a rather immature pandas replacement project. As a side note, I consider this project to be interesting, because of its usage of Apache Arrow as the underlying data architecture, which might or might not be the future of columnar in-memory representations. Arrows at least brought us Apache Parquet, my current favorite, extremely efficient on-disk data format.
Anyways, I am getting distracted, here is a Notebooks outlining a possible way to integrate two rather different, but strongly related API concepts into a single data type.