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'
     )
Example #2
0
    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,
                ), )