Split sunrise/sunset code into own file
This commit is contained in:
parent
7949e16195
commit
b52a076c5b
|
@ -11,7 +11,6 @@ from typing import List
|
||||||
import dateutil
|
import dateutil
|
||||||
import dateutil.parser
|
import dateutil.parser
|
||||||
import dateutil.tz
|
import dateutil.tz
|
||||||
import ephem
|
|
||||||
import exchange_calendars
|
import exchange_calendars
|
||||||
import holidays
|
import holidays
|
||||||
import lxml
|
import lxml
|
||||||
|
@ -24,7 +23,7 @@ from dateutil.relativedelta import FR, relativedelta
|
||||||
|
|
||||||
from agenda import thespacedevs
|
from agenda import thespacedevs
|
||||||
|
|
||||||
from . import fx, gwr, markets, waste_schedule
|
from . import fx, gwr, markets, sun, waste_schedule
|
||||||
from .types import Event
|
from .types import Event
|
||||||
|
|
||||||
warnings.simplefilter(action="ignore", category=FutureWarning)
|
warnings.simplefilter(action="ignore", category=FutureWarning)
|
||||||
|
@ -35,7 +34,6 @@ warnings.simplefilter(action="ignore", category=FutureWarning)
|
||||||
# morzine ski lifts
|
# morzine ski lifts
|
||||||
# chalet availablity calendar
|
# chalet availablity calendar
|
||||||
|
|
||||||
# sunrise and sunset
|
|
||||||
# starlink visible
|
# starlink visible
|
||||||
|
|
||||||
here = dateutil.tz.tzlocal()
|
here = dateutil.tz.tzlocal()
|
||||||
|
@ -450,23 +448,6 @@ def bristol_waste_collection_events(start_date: date) -> list[Event]:
|
||||||
return waste_schedule.get_bristol_gov_uk(start_date, data_dir, uprn)
|
return waste_schedule.get_bristol_gov_uk(start_date, data_dir, uprn)
|
||||||
|
|
||||||
|
|
||||||
def bristol() -> ephem.Observer:
|
|
||||||
"""Location of Bristol."""
|
|
||||||
observer = ephem.Observer()
|
|
||||||
observer.lat, observer.lon = "51.4545", "-2.5879"
|
|
||||||
return observer
|
|
||||||
|
|
||||||
|
|
||||||
def sunrise(observer: ephem.Observer) -> datetime:
|
|
||||||
"""Sunrise."""
|
|
||||||
return typing.cast(datetime, observer.next_rising(ephem.Sun(observer)).datetime())
|
|
||||||
|
|
||||||
|
|
||||||
def sunset(observer: ephem.Observer) -> datetime:
|
|
||||||
"""Sunrise."""
|
|
||||||
return typing.cast(datetime, observer.next_setting(ephem.Sun(observer)).datetime())
|
|
||||||
|
|
||||||
|
|
||||||
def build_events_for_calendar(events: list[Event]) -> list[dict[str, typing.Any]]:
|
def build_events_for_calendar(events: list[Event]) -> list[dict[str, typing.Any]]:
|
||||||
"""Build list of events for FullCalendar."""
|
"""Build list of events for FullCalendar."""
|
||||||
items: list[dict[str, typing.Any]] = []
|
items: list[dict[str, typing.Any]] = []
|
||||||
|
@ -562,9 +543,9 @@ def get_data(now: datetime) -> typing.Mapping[str, str | object]:
|
||||||
event = Event(name=key, date=value)
|
event = Event(name=key, date=value)
|
||||||
events.append(event)
|
events.append(event)
|
||||||
|
|
||||||
observer = bristol()
|
observer = sun.bristol()
|
||||||
reply["sunrise"] = sunrise(observer)
|
reply["sunrise"] = sun.sunrise(observer)
|
||||||
reply["sunset"] = sunset(observer)
|
reply["sunset"] = sun.sunset(observer)
|
||||||
|
|
||||||
for key, value in xmas_last_posting_dates.items():
|
for key, value in xmas_last_posting_dates.items():
|
||||||
events.append(Event(name=f"xmas_last_{key}", date=value))
|
events.append(Event(name=f"xmas_last_{key}", date=value))
|
||||||
|
|
23
agenda/sun.py
Normal file
23
agenda/sun.py
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
"""Sunrise and sunset times."""
|
||||||
|
|
||||||
|
import typing
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
import ephem
|
||||||
|
|
||||||
|
|
||||||
|
def bristol() -> ephem.Observer:
|
||||||
|
"""Location of Bristol."""
|
||||||
|
observer = ephem.Observer()
|
||||||
|
observer.lat, observer.lon = "51.4545", "-2.5879"
|
||||||
|
return observer
|
||||||
|
|
||||||
|
|
||||||
|
def sunrise(observer: ephem.Observer) -> datetime:
|
||||||
|
"""Sunrise."""
|
||||||
|
return typing.cast(datetime, observer.next_rising(ephem.Sun(observer)).datetime())
|
||||||
|
|
||||||
|
|
||||||
|
def sunset(observer: ephem.Observer) -> datetime:
|
||||||
|
"""Sunrise."""
|
||||||
|
return typing.cast(datetime, observer.next_setting(ephem.Sun(observer)).datetime())
|
Loading…
Reference in a new issue