SQLAlchemy 2.0 Documentation
- Previous: Events
- Next: Core Exceptions
- Up: Home
- On this page:
Runtime Inspection API¶
The inspection module provides the inspect() function, which delivers runtime information about a wide variety of SQLAlchemy objects, both within the Core as well as the ORM.
The inspect() function is the entry point to SQLAlchemy’s public API for viewing the configuration and construction of in-memory objects. Depending on the type of object passed to inspect(), the return value will either be a related object which provides a known interface, or in many cases it will return the object itself.
The rationale for inspect() is twofold. One is that it replaces the need to be aware of a large variety of “information getting” functions in SQLAlchemy, such as Inspector.from_engine() (deprecated in 1.4), instance_state(), class_mapper(), and others. The other is that the return value of inspect() is guaranteed to obey a documented API, thus allowing third party tools which build on top of SQLAlchemy configurations to be constructed in a forwards-compatible way.
| Object Name | Description |
|---|---|
inspect(subject[, raiseerr]) | Produce an inspection object for the given target. |
- function sqlalchemy.inspect(subject: Any, raiseerr: bool = True) → Any¶
Produce an inspection object for the given target.
The returned value in some cases may be the same object as the one given, such as if a
Mapperobject is passed. In other cases, it will be an instance of the registered inspection type for the given object, such as if anEngineis passed, anInspectorobject is returned.- Parameters:
subject¶ – the subject to be inspected.
raiseerr¶ – When
True, if the given subject does not correspond to a known SQLAlchemy inspected type,sqlalchemy.exc.NoInspectionAvailableis raised. IfFalse,Noneis returned.
Available Inspection Targets¶
Below is a listing of many of the most common inspection targets.
Connectable(i.e.Engine,Connection) - returns anInspectorobject.ClauseElement- all SQL expression components, includingTable,Column, serve as their own inspection objects, meaning any of these objects passed toinspect()return themselves.object- an object given will be checked by the ORM for a mapping - if so, anInstanceStateis returned representing the mapped state of the object. TheInstanceStatealso provides access to per attribute state via theAttributeStateinterface as well as the per-flush “history” of any attribute via theHistoryobject.See also
type(i.e. a class) - a class given will be checked by the ORM for a mapping - if so, aMapperfor that class is returned.See also
mapped attribute - passing a mapped attribute to
inspect(), such asinspect(MyClass.some_attribute), returns aQueryableAttributeobject, which is the descriptor associated with a mapped class. This descriptor refers to aMapperProperty, which is usually an instance ofColumnPropertyorRelationshipProperty, via itsQueryableAttribute.propertyattribute.AliasedClass- returns anAliasedInspobject.
flambé! the dragon and The Alchemist image designs created and generously donated by Rotem Yaari.
Created using Sphinx 8.2.3. Documentation last generated: Tue 21 Oct 2025 06:01:18 PM EDT