From 393c30baf91e0150c095793193a4513792de10ad Mon Sep 17 00:00:00 2001 From: Pablo Marti Date: Mon, 25 Jul 2016 15:24:46 +0100 Subject: [PATCH 1/2] Fix typo in docs --- sqlalchemy_utils/observer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sqlalchemy_utils/observer.py b/sqlalchemy_utils/observer.py index 0e8fcf5..69a2053 100644 --- a/sqlalchemy_utils/observer.py +++ b/sqlalchemy_utils/observer.py @@ -152,7 +152,7 @@ Category has many Products. Observing multiple columns ----------------------- -You can also observe multiple columns by spesifying all the observable columns +You can also observe multiple columns by specifying all the observable columns in the decorator. From 9e71bbccc9f692592ed87ff68aff38488ac177db Mon Sep 17 00:00:00 2001 From: Andrew Pashkin Date: Mon, 17 Oct 2016 11:02:36 +0300 Subject: [PATCH 2/2] Add documentation for EmailType --- docs/data_types.rst | 8 ++++++++ sqlalchemy_utils/types/email.py | 27 +++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/docs/data_types.rst b/docs/data_types.rst index eac2b4f..3d8a0ef 100644 --- a/docs/data_types.rst +++ b/docs/data_types.rst @@ -63,6 +63,14 @@ CurrencyType .. autoclass:: Currency +EmailType +--------- + +.. automodule:: sqlalchemy_utils.types.email + +.. autoclass:: EmailType + + EncryptedType ------------- diff --git a/sqlalchemy_utils/types/email.py b/sqlalchemy_utils/types/email.py index 2d35860..a781a70 100644 --- a/sqlalchemy_utils/types/email.py +++ b/sqlalchemy_utils/types/email.py @@ -4,6 +4,33 @@ from ..operators import CaseInsensitiveComparator class EmailType(sa.types.TypeDecorator): + """ + Provides a way for storing emails in a lower case. + + Example:: + + + from sqlalchemy_utils import EmailType + + + class User(Base): + __tablename__ = 'user' + id = sa.Column(sa.Integer, primary_key=True) + name = sa.Column(sa.Unicode(255)) + email = sa.Column(EmailType) + + + user = User() + user.email = 'John.Smith@foo.com' + user.name = 'John Smith' + session.add(user) + session.commit() + # Notice - email in filter() is lowercase. + user = (session.query(User) + .filter(User.email == 'john.smith@foo.com') + .one()) + assert user.name == 'John Smith' + """ impl = sa.Unicode comparator_factory = CaseInsensitiveComparator