diff options
author | René 'Necoro' Neumann <necoro@necoro.net> | 2017-12-03 18:06:10 +0100 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.net> | 2017-12-03 18:06:10 +0100 |
commit | ef092edc64ac489fe25d83bad05e4c1660b2444b (patch) | |
tree | 1df27bd3cfe51e3a454d94ba88997f174d6e161f /archivist/peewee_ext.py | |
parent | c447aeb3d35ab2d7678b683ab2fa16a726109885 (diff) | |
download | archivist-master.tar.gz archivist-master.tar.bz2 archivist-master.zip |
Diffstat (limited to 'archivist/peewee_ext.py')
-rw-r--r-- | archivist/peewee_ext.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/archivist/peewee_ext.py b/archivist/peewee_ext.py index edcb9c9..011f80d 100644 --- a/archivist/peewee_ext.py +++ b/archivist/peewee_ext.py @@ -1,5 +1,5 @@ from peewee import Field, SQL -from playhouse.fields import CompressedField as _CompressedField +from playhouse.fields import CompressedField as _CompressedField, CharField as _CharField from itertools import starmap from functools import reduce @@ -11,6 +11,14 @@ def sqlite_tuple_in(fields, values): subqueries = (reduce(op.and_, starmap(op.eq, zip(fields, value_tuple))) for value_tuple in values) return reduce(op.or_, subqueries) +class CharField(_CharField): + def __init__(self, *args, **kwargs): + constraints = kwargs.pop('constraints', []) + nocase = kwargs.pop('nocase', False) + if nocase: + constraints.append(SQL('COLLATE NOCASE')) + super().__init__(*args, constraints=constraints, **kwargs) + class CompressedField(_CompressedField): def db_value(self, value): return value if value is None else self.compress(value) |