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

Class AbsentModuleObjectInternal

A class representing a module that is missing from the DB, but inferred to exists from imports.

Import path

import semmle.python.objects.Modules

Direct supertypes

Indirect supertypes

Predicates

attribute

Holds if the result of getting the attribute name is value and that value comes from origin. Note this is not the same as class lookup. For example for an object x the attribute name (x.name) may refer to a bound-method, an attribute of the instance, or an attribute of the class.

attributesUnknown

Holds if the attributes of this object are wholly or partly unknowable

calleeAndOffset

Holds if the function scope is called when this object is called and paramOffset is the difference from the parameter position and the argument position. For a normal function paramOffset is 0. For classes and bound-methods it is 1. Used by points-to to help determine flow from arguments to parameters.

getBuiltin

Gets the Builtin for this object, if any. Objects (except unknown and undefined values) should attempt to return exactly one result for either this method or getOrigin().

getClassDeclaration

Gets the class declaration for this object, if it is a class with a declaration.

getName

Gets the name of this of this object if it has a meaningful name. Note that the name of an object is not necessarily the name by which it is called For example the function named posixpath.join will be called os.path.join.

getOrigin

Gets a control flow node that represents the source origin of this object, if it has a meaningful location in the source code. This method exists primarily for providing backwards compatibility and locations for source objects. Source code objects should attempt to return exactly one result for this method.

getSourceModule

Gets the source scope of this module, if it has one.

hasCompleteExportInfo

Whether the complete set of names “exported” by this module can be accurately determined

intValue

Gets the integer value of things that have integer values and whose integer value is tracked. That is, some ints, mainly small numbers, and bools.

introducedAt

Holds if this object is introduced into the code base at node given the context This means that node, in context, points-to this object, but the object has not flowed there from anywhere else. Examples: * The object None is “introduced” by the keyword “None”. * A bound method would be “introduced” when relevant attribute on an instance is accessed. In x = X(); x.m x.m introduces the bound method.

strValue

Gets the string value of things that have string values. That is, strings.

toString

Gets a textual representation of this element.

Inherited predicates

binds

Holds if attribute lookup on this object may “bind” instance to descriptor. Here “bind” means that instance is passed to the descriptor.__get__() method at runtime. The term “bind” is used as this most likely results in a bound-method.

from ModuleObjectInternal
booleanValue

Gets the boolean value of this object. This may be both true and false if the “object” represents a set of possible objects.

from ModuleObjectInternal
callResult

Holds if obj is the result of calling this and origin is the origin of obj.

from ModuleObjectInternal
callResult

Holds if obj is the result of calling this and origin is the origin of obj with callee context callee.

from ModuleObjectInternal
contextSensitiveCalleefrom ModuleObjectInternal
descriptorGetClass

Holds if the result of attribute access on the class holding this descriptor is value, originating at origin For example, although T.__dict__['name'] = classmethod(f), T.name is a bound-method, binding f and T

from ModuleObjectInternal
descriptorGetInstance

Holds if the result of attribute access on an instance of a class holding this descriptor is value, originating at origin For example, with T.__dict__['name'] = classmethod(f), T().name is a bound-method, binding f and T

from ModuleObjectInternal
exports

Holds if this module “exports” name. That is, does it define name in __all__ or is __all__ not defined and name a global variable that does not start with “_” This is the set of names imported by from ... import *.

from ModuleObjectInternal
functionAndOffset

Holds if the object function is called when this object is called and paramOffset is the difference from the parameter position and the argument position. For a normal function paramOffset is 0. For classes and bound-methods it is 1. This is used to implement the CallableValue public API.

from ObjectInternal
getClass

Gets the class of this object.

from ModuleObjectInternal
getIterNext

Gets the ‘object’ resulting from iterating over this object. Used in the context for i in this:. The result is the ‘object’ assigned to i.

from ModuleObjectInternal
getSource

For backwards compatibility shim – Not all objects have a “source”. Objects (except unknown and undefined values) should attempt to return exactly one result for this method.

from ObjectInternal
hasAttribute

Holds if this value has the attribute name

from ObjectInternal
isBuiltinfrom ObjectInternal
isClass

True if this “object” is a class. That is, its class inherits from type

from ModuleObjectInternal
isDescriptor

Holds if this object is a descriptor. Holds, for example, for functions and properties and not for integers.

from ModuleObjectInternal
isInitModule

Holds if this module is a __init__.py module.

from ModuleObjectInternal
isNotSubscriptedTypefrom ModuleObjectInternal
length

Gets the length of the sequence that this “object” represents. Always returns a value for a sequence, will be -1 if the object has no fixed length.

from ModuleObjectInternal
notTestableForEquality

True if this “object” can be meaningfully analyzed to determine the boolean value of equality tests on it. For example, None or int can be, but int() or an unknown string cannot.

from ModuleObjectInternal
subscriptUnknown

Holds if the result of subscripting this object are wholly or partly unknowable

from ModuleObjectInternal
useOriginAsLegacyObject

Holds if this ‘object’ represents an entity that should be exposed to the legacy points_to API This should hold for almost all objects that do not have an underlying DB object representing their source, for example super objects and bound-method. This should not hold for objects that are inferred to exists by an import statements or the like, but which aren’t in the database.

from ModuleObjectInternal