CodeQL library for Python
codeql/python-all 0.11.12 (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
    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