diff options
author | alm <alonme@users.noreply.github.com> | 2023-04-01 11:45:56 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-01 10:45:56 +0200 |
commit | 489c90fb29970d9362f21f26247bd45a39832dcd (patch) | |
tree | 64fe13af7f7babf10c8790f02b139ca19edc0b17 /astroid/brain | |
parent | 6714f15531c78d98860d8b17123d4308205aecc6 (diff) | |
download | astroid-git-489c90fb29970d9362f21f26247bd45a39832dcd.tar.gz |
Support attrs decorators even if they are imported from attrs (#2059)
Use inference to determine membership of ``attr(s)`` module
Co-authored-by: Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>
Diffstat (limited to 'astroid/brain')
-rw-r--r-- | astroid/brain/brain_attrs.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/astroid/brain/brain_attrs.py b/astroid/brain/brain_attrs.py index 80d9a252..44f9572a 100644 --- a/astroid/brain/brain_attrs.py +++ b/astroid/brain/brain_attrs.py @@ -8,6 +8,7 @@ Astroid hook for the attrs library Without this hook pylint reports unsupported-assignment-operation for attrs classes """ +from astroid.helpers import safe_infer from astroid.manager import AstroidManager from astroid.nodes.node_classes import AnnAssign, Assign, AssignName, Call, Unknown from astroid.nodes.scoped_nodes import ClassDef @@ -40,6 +41,10 @@ def is_decorated_with_attrs(node, decorator_names=ATTRS_NAMES) -> bool: decorator_attribute = decorator_attribute.func if decorator_attribute.as_string() in decorator_names: return True + + inferred = safe_infer(decorator_attribute) + if inferred and inferred.root().name == "attr._next_gen": + return True return False |