From 8965f3021539f3132311d6277aab475d6c44ebbe Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 30 Oct 2017 20:02:21 -0400 Subject: - add notes that @comparator and @expression don't go together. Change-Id: I3fb366f8b49454453e4b6dada565c24c5ccb975e --- lib/sqlalchemy/ext/hybrid.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib/sqlalchemy') diff --git a/lib/sqlalchemy/ext/hybrid.py b/lib/sqlalchemy/ext/hybrid.py index 141a64599..243ef961d 100644 --- a/lib/sqlalchemy/ext/hybrid.py +++ b/lib/sqlalchemy/ext/hybrid.py @@ -384,6 +384,10 @@ behavior of each SQLAlchemy expression operator individually. They are useful when creating custom types that have some highly idiosyncratic behavior on the SQL side. +.. note:: The :meth:`.hybrid_property.comparator` decorator introduced + in this section **replaces** the use of the + :meth:`.hybrid_property.expression` decorator. They cannot be used together. + The example class below allows case-insensitive comparisons on the attribute named ``word_insensitive``:: @@ -972,6 +976,10 @@ class hybrid_property(interfaces.InspectionAttrInfo): The return value of the decorated method should be an instance of :class:`~.hybrid.Comparator`. + .. note:: The :meth:`.hybrid_property.comparator` decorator + **replaces** the use of the :meth:`.hybrid_property.expression` + decorator. They cannot be used together. + When a hybrid is invoked at the class level, the :class:`~.hybrid.Comparator` object given here is wrapped inside of a specialized :class:`.QueryableAttribute`, which is the same kind of -- cgit v1.2.1