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¶
以下は、最も一般的なインスペクション対象の多くのリストです。
Connectable(すなわちEngine,Connection) -Inspectorオブジェクトを返します。
ClauseElement-Table,Columnを含むすべてのSQL式コンポーネントは、独自の検査オブジェクトとして機能します。つまり、inspect()に渡されたこれらのオブジェクトは、自分自身を返します。
object- 指定されたオブジェクトはORMによってマッピングがチェックされます。- そのため、オブジェクトのマップされた状態を表すInstanceStateが返されます。InstanceStateは、AttributeStateインターフェースを介した属性ごとの状態へのアクセスや、Historyオブジェクトを介した任意の属性のフラッシュごとの”履歴”へのアクセスも提供します。See also
type(つまりクラス) - 指定されたクラスがORMによってマッピングのためにチェックされます。もしチェックされていれば、そのクラスのMapperが返されます。See also
mapped attribute - マップされた属性を
inspect()に渡すこと。例えばinspect(MyClass.some_attribute)は、マップされたクラスに関連付けられた descriptor であるQueryableAttributeオブジェクトを返します。この記述子はMapperPropertyを参照します。これは通常、QueryableAttribute.property属性を介してColumnPropertyまたはRelationshipPropertyのインスタンスです。
AliasedClass-AliasedInspオブジェクトを返します。