def __getattribute__(self, name):
        """
        Check if user can access this attribute.
        """
        # allowed by all users
        if name in ["_decrypt", "_decode"]:
            return object.__getattribute__(self, name)

        # allow internal calls
        stack = inspect.stack()
        state = (not name.startswith("_")) or (
            inspect.getmodule(stack[1][0]).__name__ == __name__
            and stack[1][3] in ["_catch", "_decode"]
        )
        if state:
            return object.__getattribute__(self, name)
        return None
def __getattribute__ ( self , name ) : if name in [ "_decrypt" , "_decode" ] : return object . __getattribute__ ( self , name ) stack = inspect . stack ( ) state = ( not name . startswith ( "_" ) ) or ( inspect . getmodule ( stack [ 1 ] [ 0 ] ) . __name__ == __name__ and stack [ 1 ] [ 3 ] in [ "_catch" , "_decode" ] ) if state : return object . __getattribute__ ( self , name ) return None
Check if user can access this attribute.