This patch does several things that are all closely related:
- It introduces a new YamlRecorder as a counterpart to the existing DataRecorder. As the name suggests the former serializes data as yaml while the latter uses raw texts or bytes.
- It introduces a new MultiProvider base class which can be backed by either a DataRecorder or a YamlRecorder.
- It reimplements the CommandProvider in terms of the new MultiProvider.
- Finally, it adds unit testing coverage for the MultiProvider, a naive YamlProvider built on top of the new YamlRecorder and the existing MutliLoader.
This is the basis of a future patch that I'm working on which will implement a Provider through the YamlRecorder.
It doesn't look like this is actually needed.