ModinDataframe serves the purpose of describing and defining the Core Dataframe Algebra.
It is the core construction element and serves as the client for the Modin Query Compiler. Descendants that offer implementations execute the queries from the compiler by invoking functions over partitions via a partition manager.
The partitions and partition manager interfaces are currently implementation-specific, but may be standardized in the future.
ModinDataframe and axis partitions are the interfaces that must be implemented by any execution backend in order for it to be plugged in to Modin.
These classes are mostly abstract, however very simple and generic enough methods like
force_materialization() can be implemented at the base level because for now we do not expect them to differ in any implementation.
ModinDataframe is an abstract class which represents the algebra operators a dataframe must expose.
BaseDataframeAxisPartition is an abstract class, representing a joined group of partitions along some axis (either rows or labels).