bg dZddlmZddlmZddlmZmZmZm Z m Z ddl m Z e dZe dZefdefd Zd e dd fd Zee eed S) zy Astroid hook for the attrs library Without this hook pylint reports unsupported-assignment-operation for attrs classes ) safe_infer)AstroidManager) AnnAssignAssign AssignNameCallUnknown)ClassDef)zattr.ibattribz attr.attribz attr.fieldz attrs.fieldfield) zattr.sattrsz attr.attrszattr.attributesz attr.definez attr.mutablez attr.frozenz attrs.definez attrs.mutablez attrs.frozenreturnc|jsdS|jjD]h}t|tr|j}||vrdSt |}|r |jdkrdSidS)z>Return whether a decorated node has an attr decorator applied.FTzattr._next_gen) decoratorsnodes isinstancerfunc as_stringrrootname)nodedecorator_namesdecorator_attributeinferreds j/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/astroid/brain/brain_attrs.pyis_decorated_with_attrsr#s ?u#4 )4 0 0 ;"5":   ( ( * *o = =44122   ,0@@@44 5rNct|g|jd<|jD]}t|tt fst|jtr'|jj tvr_nat|dr|j n|j g}|D]S}t|j|j|}t|t r |g|j|j<|g|j|j<TdS)zhGiven that the ClassNode has an attr decorator, rewrite class attributes as instance attributes )parent__attrs_attrs__targets)lineno col_offsetrN)r localsbodyrrrvaluerrr ATTRIB_NAMEShasattrr!targetr"r#rrinstance_attrs)rcdef_body_noder!r)rhs_nodes rattr_attributes_transformr-3s/ '.T&:&:&:%;DK!")>>.69*=>>   n*D 1 1 #(2244LHHI ~y11 )N " " '(   > >F%,)4%H &*-- >-5: FK(4<:#FK0 >>>r)__doc__astroid.helpersrastroid.managerrastroid.nodes.node_classesrrrrr astroid.nodes.scoped_nodesr frozensetr' ATTRS_NAMESboolrr-register_transformrrr8s  '&&&&&******SSSSSSSSSSSSSS//////yN i    3>  $     >H > > > > >F## ')@r