from caspia import reactive
from .time import time
_sun = None
[docs]def register_sun(sun_service):
global _sun
_sun = sun_service
[docs]def get_sun():
if _sun is None:
raise RuntimeError('Sun service not set. Use register_sun().')
return _sun
[docs]def sunrise():
return reactive.lambda_(lambda dt: (dt.hour, dt.minute), get_sun().sunrise)
[docs]def sunset():
return reactive.lambda_(lambda dt: (dt.hour, dt.minute), get_sun().sunset)
[docs]def at_sunrise():
return reactive.impuls(time == sunrise())
[docs]def at_sunset():
return reactive.impuls(time == sunset())