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
Mapper
object is passed. In other cases, it will be an instance of the registered inspection type for the given object, such as if anEngine
is passed, anInspector
object 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.NoInspectionAvailable
is raised. IfFalse
,None
is 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
オブジェクトを返します。