版本:1.1.0b2 |发布日期:2016年7月1日

SQLAlchemy 1.1文档

替代类仪器

可扩展的类仪器。

sqlalchemy.ext.instrumentation包为ORM中的类工具提供了备用系统。类检测是指ORM如何在维护数据的类上放置属性,并跟踪对该数据的更改,以及类中安装的事件挂钩。

注意

提供扩展包是为了与已经执行自己的仪器的其他对象管理包集成。它不适合一般用途。

有关如何使用检测扩展的示例,请参阅示例Attribute Instrumentation

版本0.8已更改 sqlalchemy.orm.instrumentation被拆分出来,以便将与非标准检测相关的所有功能移出到sqlalchemy.ext.instrumentation导入时,模块将自己安装在sqlalchemy.orm.instrumentation中,以便生效,包括识别映射类上的__sa_instrumentation_manager__以及instrumentation_finders >被用来确定类仪器的分辨率。

API参考

sqlalchemy.ext.instrumentation。 INSTRUMENTATION_MANAGER ='__sa_instrumentation_manager __'

属性,在映射类上存在时选择自定义检测。

允许类指定一个稍微或非常不同的技术来跟踪对映射的属性和集合所做的更改。

在一个给定的对象继承层次结构中只允许有一个工具实现。

这个属性的值必须是可调用的,并且会传递一个类对象。可调用函数必须返回以下之一:

  • InstrumentationManager或子类的实例
  • 实现InstrumentationManager(TODO)的全部或部分对象,
  • 一个可玩的字典,实施全部或部分上述(TODO)
  • ClassManager或子类的一个实例

一旦sqlalchemy.ext.instrumentation模块被导入后,通过SQLAlchemy工具解析来查询该属性。如果自定义查找器安装在全局instrumentation_finders列表中,则可能会选择或不选择此属性。

class sqlalchemy.orm.instrumentation。 InstrumentationFactory

工厂新的ClassManager实例。

class sqlalchemy.ext.instrumentation.InstrumentationManager(class_)

用户定义的类工具扩展。

InstrumentationManager can be subclassed in order to change how class instrumentation proceeds. 这个类是为了与其他对象管理框架集成而存在的,这些对象管理框架完全修改了ORM的检测方法,而不是定期使用。为了拦截类工具事件,请参阅InstrumentationEvents

这个类的API应该被认为是半稳定的,并且可能会随着新版本的发布而略有变化。

dict_getter T0> ( T1> 类_ T2> ) T3> ¶ T4>
dispose(class_, manager)
get_instance_dict tt> class_instance
initialize_instance_dict(class_, instance)
install_descriptor(class_, key, inst)
install_member(class_, key, implementation)
install_state(class_, instance, state)
instrument_attribute(class_, key, inst)
instrument_collection_class(class_, key, collection_class)
manage(class_, manager)
manager_getter T0> ( T1> 类_ T2> ) T3> ¶ T4>
post_configure_attribute(class_, key, inst)
remove_state tt> class_instance
state_getter T0> ( T1> 类_ T2> ) T3> ¶ T4>
uninstall_descriptor(class_, key)
uninstall_member(class_, key)
sqlalchemy.ext.instrumentation.instrumentation_finders = [<function find_native_user_instrumentation_hook at 0x7f430c541230>]

返回检测实现的可扩展的可调用序列

当一个类被注册时,每个可调用对象将被传递一个类对象。如果返回None,则查阅序列中的下一个发现者。否则,返回必须是符合sqlalchemy.ext.instrumentation.INSTRUMENTATION_MANAGER相同准则的检测工厂。

默认情况下,唯一的发现者是find_native_user_instrumentation_hook,它搜索INSTRUMENTATION_MANAGER。如果所有查找器都返回None,则使用标准的ClassManager工具。

class sqlalchemy.ext.instrumentation。 ExtendedInstrumentationRegistry

基础:sqlalchemy.orm.instrumentation.InstrumentationFactory

扩展InstrumentationFactory以增加簿记,以适应多种类型的管理器。