(cls)
return cls._non_removable_attrs
Returns a set of names of attributes that may not be removed.

        Attributes whose 'mandatory' property is True are automatically added
        to this set. To add additional attributes to the set, override the
        field _extra_non_removable_attrs in subclasses, with a set of the form
        {'/foo', '/bar'}.
Returns a set of names of attributes that may not be removed.
Returns a set of names of attributes that may not be removed .
def non_removable_attrs(cls):
        """Returns a set of names of attributes that may not be removed.

        Attributes whose 'mandatory' property is True are automatically added
        to this set. To add additional attributes to the set, override the
        field _extra_non_removable_attrs in subclasses, with a set of the form
        {'/foo', '/bar'}.
        """
        if cls._non_removable_attrs is None:
            cls._non_removable_attrs = cls._extra_non_removable_attrs.copy()
            if cls._api_base:
                fields = inspect.getmembers(cls._api_base,
                                            lambda a: not inspect.isroutine(a))
                for name, field in fields:
                    if getattr(field, 'mandatory', False):
                        cls._non_removable_attrs.add('/%s' % name)
        return cls._non_removable_attrs
def non_removable_attrs ( cls ) : if cls . _non_removable_attrs is None : cls . _non_removable_attrs = cls . _extra_non_removable_attrs . copy ( ) if cls . _api_base : fields = inspect . getmembers ( cls . _api_base , lambda a : not inspect . isroutine ( a ) ) for name , field in fields : if getattr ( field , 'mandatory' , False ) : cls . _non_removable_attrs . add ( '/%s' % name ) return cls . _non_removable_attrs