Store_attr and __gitattr__

In case other fastcore users stumble over this:

Apparently when using __getattr__() and store_attr() together in the same class, the call to store_attr() needs to be after the assignment of the reference object for the __getattr__(), otherwise one gets RecursionErrors starting from the store_attr() call. See gist here:

I’m not sure why store_attr needs to have this defined, something to do with how it wants to make sure if attributes already exist? And when it tries to look up a_obj it gets into the loop of using gitattr() for finding it, but it’s of course not there yet, so RecursionError.
The gist notebook can be made to work by simply putting the store_attr() call after the self.a_obj assignment.