1from ...exceptions import ImproperlyConfigured
2from .pendulum_datetime import PendulumDateTime
3
4pendulum = None
5try:
6 import pendulum
7except ImportError:
8 pass
9
10
11class PendulumDate(PendulumDateTime):
12 def __init__(self):
13 if not pendulum:
14 raise ImproperlyConfigured(
15 "'pendulum' package is required to use 'PendulumDate'"
16 )
17
18 def _coerce(self, impl, value):
19 if value:
20 if not isinstance(value, pendulum.Date):
21 value = super()._coerce(impl, value).date()
22 return value
23
24 def process_result_value(self, impl, value, dialect):
25 if value:
26 return pendulum.parse(value.isoformat()).date()
27 return value
28
29 def process_bind_param(self, impl, value, dialect):
30 if value:
31 return self._coerce(impl, value)
32 return value