Switch this to be similar to testdata. This would allow me to remove the Interface.inject methods and simplify the amount of startup pout needs until it's ready to go.
This would need two parts
Add Interface.__init_subclass__ to record each of the Interface subclasses that get loaded into memory.
Add pout.__init__.__getattr__ method that can use the Interface.instances that were recorded in __init_subclass__ and find the correct subclass to usefor the method that was called.
Switch this to be similar to testdata. This would allow me to remove the
Interface.inject
methods and simplify the amount of startuppout
needs until it's ready to go.This would need two parts
Interface.__init_subclass__
to record each of the Interface subclasses that get loaded into memory.pout.__init__.__getattr__
method that can use theInterface.instances
that were recorded in__init_subclass__
and find the correct subclass to usefor the method that was called.That should do it.