The Container class is designed to hold SymbolWrapper objects in a way which:
Allows the getting of objects via their string, Symbol or index identifiers,
Allows two Container objects to be added together by combining their items with + notation, as well as allows the combination of a Container and SymbolWrapper object with + notation.
As development has continued, the accessing of objects via index identifiers is rarely done, and the interface of psymple has become increasingly data-driven through string representations.
It therefore makes sense to re-implement the Container class as a subclass of dict, so that SymbolWrapper objects can be easily identified via their string representations, eg. "object.child.child.parameter". The second feature (2.) above can be reimplemented without issue, if required.
The
Container
class is designed to holdSymbolWrapper
objects in a way which:string
,Symbol
orindex
identifiers,Container
objects to be added together by combining their items with+
notation, as well as allows the combination of aContainer
andSymbolWrapper
object with+
notation.As development has continued, the accessing of objects via
index
identifiers is rarely done, and the interface ofpsymple
has become increasingly data-driven throughstring
representations.It therefore makes sense to re-implement the
Container
class as a subclass ofdict
, so thatSymbolWrapper
objects can be easily identified via theirstring
representations, eg."object.child.child.parameter"
. The second feature (2.) above can be reimplemented without issue, if required.