Interim handling of gmxapi data references.
The implicit behaviors described in early gmxapi 0.1 candidates have become untenable.
We delayed design of the gmxapi typing system and data model, and have gotten bogged down in various semantic ambiguities for gmxapi data topology and how to handle Python native types, along with the combinatoric explosion of the provisional annotations for data arrays, futures, and ensembles.
Until we can introduce a proper typing system and updated data model, triage amounts to making the current behavior and capabilities unambiguous and well documented.
Tasks
- identify unsupported data flow topologies or conversions.
- apply explicit handling of sequence types for arrays and ensembles in gmxapi package functions.
Deferred to other efforts under the parent task
- define implicit behaviors that reduce syntax requirements.
- expose core gmxapi data types to Python.
- update gmxapi Python static and dynamic type checking. Replace native Python type annotations with gmxapi type annotations in gmxapi package.
- allow explicit definition of input names and types (instead of relying exclusively on Python function signature introspection).
- implement C++ based self-describing managed gmxapi data references.