graph LR
Project["Project"]
PyCore["PyCore"]
PyObject["PyObject"]
PyName["PyName"]
PyScope["PyScope"]
Evaluate["Evaluate"]
Project -- "orchestrates and initializes" --> PyCore
PyCore -- "manages" --> PyObject
PyCore -- "manages" --> PyName
PyCore -- "manages" --> PyScope
PyObject -- "defines or is contained within" --> PyScope
PyName -- "resolves to" --> PyObject
PyScope -- "provides context for" --> PyName
Evaluate -- "enriches" --> PyObject
Evaluate -- "utilizes" --> PyName
Evaluate -- "utilizes" --> PyScope
The Project & Semantic Model subsystem forms the analytical core of rope, responsible for understanding and representing Python code semantically.
The top-level orchestrator and entry point for code analysis. It manages project-wide configurations, resources, and acts as the primary interface for interacting with the semantic model.
Related Classes/Methods:
The central manager for the in-memory Python Object Model. It is responsible for building, caching, and maintaining the semantic representation of Python modules, classes, functions, and variables.
Related Classes/Methods:
Represents fundamental Python entities (e.g., modules, classes, functions, variables) within the semantic model. It holds basic structural and type information, forming the nodes of the semantic graph.
Related Classes/Methods:
rope.base.pyobjects.PyObject:6-81rope.base.pyobjects.PyModule:327-328rope.base.pyobjects.PyClass:280-281rope.base.pyobjects.PyFunction:269-270
Represents a named entity in the code. Its primary function is to resolve a name to its corresponding PyObject, incorporating inferred type information. It acts as a pointer within the semantic model.
Related Classes/Methods:
Defines lexical and semantic boundaries within the code (e.g., module scope, class scope, function scope). It manages the names defined within its context and maintains parent-child relationships with other scopes, crucial for name lookup.
Related Classes/Methods:
Performs static analysis and runtime object inference to determine types, values, and other semantic properties of code elements. It enriches the PyObject model with deeper semantic understanding.
Related Classes/Methods: