Skip to content

Commit 026f839

Browse files
committed
Ruff formatting
1 parent aae5186 commit 026f839

File tree

5 files changed

+21
-63
lines changed

5 files changed

+21
-63
lines changed

src/config.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,12 @@ def __init__(self) -> None:
3636
self.NUM_CAL_DAYS_TO_QUERY: int = int(os.getenv("NUM_CAL_DAYS_TO_QUERY", "30"))
3737
self.IMAGE_WIDTH: int = int(os.getenv("IMAGE_WIDTH", "1200"))
3838
self.IMAGE_HEIGHT: int = int(os.getenv("IMAGE_HEIGHT", "825"))
39-
self.WEATHER_UNITS: WeatherUnits = WeatherUnits[
40-
os.getenv("WEATHER_UNITS", "metric")
41-
]
39+
self.WEATHER_UNITS: WeatherUnits = WeatherUnits[os.getenv("WEATHER_UNITS", "metric")]
4240
self.SHOW_ADDITIONAL_WEATHER: bool = (
4341
os.getenv("SHOW_ADDITIONAL_WEATHER", "False").lower() == "true"
4442
)
45-
self.SHOW_MOON_PHASE: bool = (
46-
os.getenv("SHOW_MOON_PHASE", "False").lower() == "true"
47-
)
48-
self.SHOW_CALENDAR_NAME: bool = (
49-
os.getenv("SHOW_CALENDAR_NAME", "False").lower() == "true"
50-
)
43+
self.SHOW_MOON_PHASE: bool = os.getenv("SHOW_MOON_PHASE", "False").lower() == "true"
44+
self.SHOW_CALENDAR_NAME: bool = os.getenv("SHOW_CALENDAR_NAME", "False").lower() == "true"
5145

5246
@classmethod
5347
def get_config(cls) -> "DashboardConfig":

src/ics_cal/ics.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ def get_events(
4646

4747
for event in eventList:
4848
if event["isMultiday"]:
49-
numDays = (
50-
event["endDatetime"].date() - event["startDatetime"].date()
51-
).days
49+
numDays = (event["endDatetime"].date() - event["startDatetime"].date()).days
5250
for day in range(0, numDays + 1):
5351
event_day = event.copy()
5452
if day > 0:
@@ -58,9 +56,7 @@ def get_events(
5856
) + dt.timedelta(days=day)
5957
event_day["allday"] = True
6058

61-
calDict.setdefault(event_day["startDatetime"].date(), []).append(
62-
event_day
63-
)
59+
calDict.setdefault(event_day["startDatetime"].date(), []).append(event_day)
6460
else:
6561
calDict.setdefault(event["startDatetime"].date(), []).append(event)
6662

src/ics_cal/icshelper.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,12 @@ def retrieve_events(
3535
if response.ok:
3636
cal = icalendar.Calendar.from_ical(response.text)
3737
else:
38-
self.logger.error(
39-
f"Received an error when downloading ICS: {response.text}"
40-
)
38+
self.logger.error(f"Received an error when downloading ICS: {response.text}")
4139
continue
4240

4341
cal_name = cal.get("X-WR-CALNAME", None)
4442

45-
events = recurring_ical_events.of(cal).between(
46-
calStartDatetime, calEndDatetime
47-
)
43+
events = recurring_ical_events.of(cal).between(calStartDatetime, calEndDatetime)
4844
local_timezone = pytz.timezone(localTZ)
4945

5046
for event in events:
@@ -81,9 +77,7 @@ def retrieve_events(
8177
and new_event["startDatetime"] < calEndDatetime
8278
):
8379
# Don't show past days for ongoing multiday event
84-
new_event["startDatetime"] = max(
85-
new_event["startDatetime"], calStartDatetime
86-
)
80+
new_event["startDatetime"] = max(new_event["startDatetime"], calStartDatetime)
8781
new_event["calendarName"] = cal_name
8882

8983
event_list.append(new_event)

src/main.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,7 @@ def get_image() -> FileResponse:
5555

5656
currTime = dt.datetime.now(pytz.timezone(cfg.DISPLAY_TZ))
5757
calStartDatetime = currTime.replace(hour=0, minute=0, second=0, microsecond=0)
58-
calEndDatetime = calStartDatetime + dt.timedelta(
59-
days=cfg.NUM_CAL_DAYS_TO_QUERY, seconds=-1
60-
)
58+
calEndDatetime = calStartDatetime + dt.timedelta(days=cfg.NUM_CAL_DAYS_TO_QUERY, seconds=-1)
6159

6260
events: List[Tuple[dt.date, List[Dict[str, Any]]]] = calModule.get_events(
6361
cfg.ICS_URL,
@@ -76,14 +74,10 @@ def get_image() -> FileResponse:
7674
break
7775

7876
end_time = time.time()
79-
logger.info(
80-
f"Completed data retrieval in {round(end_time - start_time, 3)} seconds."
81-
)
77+
logger.info(f"Completed data retrieval in {round(end_time - start_time, 3)} seconds.")
8278

8379
# TODO: delete=False leads to accumulating temporary files in /tmp but is currently needed because the FileResponse is async.
84-
with tempfile.NamedTemporaryFile(
85-
suffix=".png", delete_on_close=False, delete=False
86-
) as tf:
80+
with tempfile.NamedTemporaryFile(suffix=".png", delete_on_close=False, delete=False) as tf:
8781
start_time = time.time()
8882
logger.info("Generating image...")
8983

src/render/render.py

Lines changed: 10 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,8 @@ def set_viewport_size(self, driver: webdriver.Chrome) -> None:
3838
inner_height = int(html.get_attribute("clientHeight") or "0")
3939

4040
# "Internal width you want to set+Set "outer frame width" to window size
41-
target_width = self.cfg.IMAGE_WIDTH + (
42-
current_window_size["width"] - inner_width
43-
)
44-
target_height = self.cfg.IMAGE_HEIGHT + (
45-
current_window_size["height"] - inner_height
46-
)
41+
target_width = self.cfg.IMAGE_WIDTH + (current_window_size["width"] - inner_width)
42+
target_height = self.cfg.IMAGE_HEIGHT + (current_window_size["height"] - inner_height)
4743

4844
driver.set_window_rect(width=target_width, height=target_height)
4945

@@ -60,9 +56,7 @@ def get_screenshot(self, path_to_server_image: str) -> None:
6056
# Try to automatically locate chromedriver, source: https://github.com/fdmarcin/MagInkDash-updated
6157
try:
6258
chromedriver_path = (
63-
subprocess.check_output(["which", "chromedriver"])
64-
.decode("utf-8")
65-
.strip()
59+
subprocess.check_output(["which", "chromedriver"]).decode("utf-8").strip()
6660
)
6761
self.logger.info(f"Found chromedriver at: {chromedriver_path}")
6862
except (subprocess.SubprocessError, FileNotFoundError):
@@ -77,9 +71,7 @@ def get_screenshot(self, path_to_server_image: str) -> None:
7771
for path in possible_paths:
7872
if os.path.exists(path) and os.access(path, os.X_OK):
7973
chromedriver_path = path
80-
self.logger.info(
81-
f"Found chromedriver at default location: {chromedriver_path}"
82-
)
74+
self.logger.info(f"Found chromedriver at default location: {chromedriver_path}")
8375
break
8476

8577
if not chromedriver_path:
@@ -99,9 +91,7 @@ def get_screenshot(self, path_to_server_image: str) -> None:
9991
driver.get_screenshot_as_file(self.currPath + "/dashboard.png")
10092
driver.get_screenshot_as_file(path_to_server_image)
10193
driver.quit() # Make sure to quit the driver to free resources
102-
self.logger.debug(
103-
f"Screenshot captured and saved to file {path_to_server_image}."
104-
)
94+
self.logger.debug(f"Screenshot captured and saved to file {path_to_server_image}.")
10595
except Exception as e:
10696
self.logger.error(f"Error taking screenshot: {str(e)}")
10797
raise
@@ -140,15 +130,11 @@ def process_inputs(
140130
# Some clients set the location to empty string
141131
if "location" in event and event["location"] != "":
142132
cal_events_text += (
143-
'<span class="event-location"> at '
144-
+ event["location"]
145-
+ "</span>"
133+
'<span class="event-location"> at ' + event["location"] + "</span>"
146134
)
147135
if self.cfg.SHOW_CALENDAR_NAME and event["calendarName"] is not None:
148136
cal_events_text += (
149-
'<span class="event-calendar-name"> ('
150-
+ event["calendarName"]
151-
+ ")</span>"
137+
'<span class="event-calendar-name"> (' + event["calendarName"] + ")</span>"
152138
)
153139
cal_events_text += "</div>\n"
154140
if d == current_date:
@@ -172,9 +158,7 @@ def process_inputs(
172158
if self.cfg.SHOW_ADDITIONAL_WEATHER:
173159
additional_infos = []
174160
if round(current_weather["temp"]) != round(current_weather["feels_like"]):
175-
additional_infos.append(
176-
f"Feels Like {round(current_weather['feels_like'])}°"
177-
)
161+
additional_infos.append(f"Feels Like {round(current_weather['feels_like'])}°")
178162
if (current_weather["sunrise"] < current_weather["dt"]) and (
179163
current_weather["dt"] < current_weather["sunset"]
180164
):
@@ -197,9 +181,7 @@ def process_inputs(
197181
cal_days=cal_events_days,
198182
cal_days_events=cal_events_list,
199183
# I'm choosing to show the forecast for the next hour instead of the current weather
200-
current_weather_text=string.capwords(
201-
current_weather["weather"][0]["description"]
202-
),
184+
current_weather_text=string.capwords(current_weather["weather"][0]["description"]),
203185
current_weather_id=current_weather["weather"][0]["id"],
204186
current_weather_temp=f"{round(current_weather['temp'])}°",
205187
current_weather_add_info=weather_add_info,
@@ -242,9 +224,7 @@ def get_short_time(cls, datetimeObj: dt.datetime, is24hour: bool = False) -> str
242224
return datetime_str
243225

244226
@classmethod
245-
def extend_list(
246-
cls, my_list: List[str], new_length: int, default_value: str
247-
) -> None:
227+
def extend_list(cls, my_list: List[str], new_length: int, default_value: str) -> None:
248228
return my_list.extend([default_value] * (new_length - len(my_list)))
249229

250230
@classmethod

0 commit comments

Comments
 (0)