def _is_public_instance_attr_def(self, node: ast.Attribute) -> bool: return ( isinstance(node.ctx, ast.Store) and access.is_public(node.attr) and isinstance(node.value, ast.Name) and node.value.id == 'self' )
def _check_public_attributes(self, node: ast.ClassDef) -> None: _, instance_attributes = classes.get_attributes(node) attrs_count = len({ attr.attr for attr in instance_attributes if access.is_public(attr.attr) }) if attrs_count > self.options.max_attributes: self.add_violation( TooManyPublicAttributesViolation( node, text=str(attrs_count), baseline=self.options.max_attributes, ), )