The current AttributeClass and Attribute classes were mainly created to be flexible representations of data classes to be used when speccing out the new class designs as part of the openff-evaluator refactoring.
While these classes are flexible, extensible and allow new classes to be specced out easily, complete with automatic serialization support, automatic docstrings and a degree of automatic validation, they are not particularly performant and could (and should) likely be replace with / built on top of the existing attrs library.
Any replacement solution must provide the same level of flexibility, extensibility and automation, as well as being able to readily support polymorphic class designs.
From @SimonBoothroyd:
The current
AttributeClass
andAttribute
classes were mainly created to be flexible representations of data classes to be used when speccing out the new class designs as part of theopenff-evaluator
refactoring.While these classes are flexible, extensible and allow new classes to be specced out easily, complete with automatic serialization support, automatic docstrings and a degree of automatic validation, they are not particularly performant and could (and should) likely be replace with / built on top of the existing
attrs
library.Any replacement solution must provide the same level of flexibility, extensibility and automation, as well as being able to readily support polymorphic class designs.