(self, obj)
return self.save_reduce(operator.attrgetter, tuple(attrs))
attrgetter serializer
attrgetter serializer
attrgetter serializer
def save_attrgetter(self, obj):
        """attrgetter serializer"""

        class Dummy(object):
            def __init__(self, attrs, index=None):
                self.attrs = attrs
                self.index = index

            def __getattribute__(self, item):
                attrs = object.__getattribute__(self, "attrs")
                index = object.__getattribute__(self, "index")
                if index is None:
                    index = len(attrs)
                    attrs.append(item)
                else:
                    attrs[index] = ".".join([attrs[index], item])
                return type(self)(attrs, index)

        attrs = []
        obj(Dummy(attrs))
        return self.save_reduce(operator.attrgetter, tuple(attrs))
def save_attrgetter ( self , obj ) : class Dummy ( object ) : def __init__ ( self , attrs , index = None ) : self . attrs = attrs self . index = index def __getattribute__ ( self , item ) : attrs = object . __getattribute__ ( self , "attrs" ) index = object . __getattribute__ ( self , "index" ) if index is None : index = len ( attrs ) attrs . append ( item ) else : attrs [ index ] = "." . join ( [ attrs [ index ] , item ] ) return type ( self ) ( attrs , index ) attrs = [ ] obj ( Dummy ( attrs ) ) return self . save_reduce ( operator . attrgetter , tuple ( attrs ) )