(self, name, value)
we override this so that we can provide direct attribute
        access to our config items, and move them into self.unsaved
        when they've been changed. hiddenservices have to be special
        unfortunately. the _setup_ thing is so that we can set up the
        attributes we need in the constructor without uusing __dict__
        all over the place.
we override this so that we can provide direct attribute
        access to our config items, and move them into self.unsaved
        when they've been changed. hiddenservices have to be special
        unfortunately. the _setup_ thing is so that we can set up the
        attributes we need in the constructor without uusing __dict__
        all over the place.
we override this so that we can provide direct attribute access to our config items and move them into self . unsaved when they ve been changed . hiddenservices have to be special unfortunately . the _setup_ thing is so that we can set up the attributes we need in the constructor without uusing __dict__ all over the place .
def __setattr__(self, name, value):
        """
        we override this so that we can provide direct attribute
        access to our config items, and move them into self.unsaved
        when they've been changed. hiddenservices have to be special
        unfortunately. the _setup_ thing is so that we can set up the
        attributes we need in the constructor without uusing __dict__
        all over the place.
        """

        # appease flake8's hatred of lambda :/
        def has_setup_attr(o):
            return '_setup_' in o.__dict__

        def has_accept_all_attr(o):
            return '_accept_all_' in o.__dict__

        def is_hidden_services(s):
            return s.lower() == "hiddenservices"

        if has_setup_attr(self):
            name = self._find_real_name(name)
            if not has_accept_all_attr(self) and not is_hidden_services(name):
                value = self.parsers[name].validate(value, self, name)
            if isinstance(value, list):
                value = _ListWrapper(
                    value, functools.partial(self.mark_unsaved, name))

            name = self._find_real_name(name)
            self.unsaved[name] = value

        else:
            super(TorConfig, self).__setattr__(name, value)
def __setattr__ ( self , name , value ) : # appease flake8's hatred of lambda :/ def has_setup_attr ( o ) : return '_setup_' in o . __dict__ def has_accept_all_attr ( o ) : return '_accept_all_' in o . __dict__ def is_hidden_services ( s ) : return s . lower ( ) == "hiddenservices" if has_setup_attr ( self ) : name = self . _find_real_name ( name ) if not has_accept_all_attr ( self ) and not is_hidden_services ( name ) : value = self . parsers [ name ] . validate ( value , self , name ) if isinstance ( value , list ) : value = _ListWrapper ( value , functools . partial ( self . mark_unsaved , name ) ) name = self . _find_real_name ( name ) self . unsaved [ name ] = value else : super ( TorConfig , self ) . __setattr__ ( name , value )