CodeQL library for Python
codeql/python-all 0.10.5 ( changelog , source )
Search

Class AttrWrite

A data flow node that writes an attribute of an object. This includes

  • Simple attribute writes: object.attr = value
  • Dynamic attribute writes: setattr(object, attr, value)
  • Fields written during class initialization: class MyClass: attr = value

Import path

import semmle.python.dataflow.new.internal.Attributes

Direct supertypes

Indirect supertypes

Known direct subtypes

Predicates

getValue

Gets the data flow node corresponding to the value that is written to the attribute.

Inherited predicates

accesses

Holds if this data flow node accesses attribute named attrName on object object.

from AttrRef
asCfgNode

Gets the control-flow node corresponding to this node, if any.

from Node
asExpr

Gets the expression corresponding to this node, if any.

from Node
asVar

Gets the ESSA variable corresponding to this node, if any.

from Node
getALocalSource

Gets a local source node from which data may flow to this node in zero or more local data-flow steps.

from Node
getAttributeName

Gets the name of the attribute being read or written. For dynamic attribute accesses, this method is not guaranteed to return a result. For such cases, using mayHaveAttributeName may yield better results.

from AttrRef
getAttributeNameExpr

Gets the expression node that defines the attribute being accessed, if any. This is usually an identifier or literal.

from AttrRef
getEnclosingCallable

Gets the enclosing callable of this node.

from Node
getLocation

Gets the location of this node

from Node
getObject

Gets the data flow node corresponding to the object whose attribute is being read or written.

from AttrRef
getScope

Gets the scope of this node.

from Node
hasLocationInfo

Holds if this element is at the specified location. The location spans column startcolumn of line startline to column endcolumn of line endline in file filepath. For more information, see Locations.

from Node
mayHaveAttributeName

Holds if this attribute reference may access an attribute named attrName. Uses local data flow to track potential attribute names, which may lead to imprecision. If more precision is needed, consider using getAttributeName instead.

from AttrRef
toString

Gets a textual representation of this element.

from Node
unknownAttribute

Holds if a name could not be determined for this attribute.

from AttrRef