chore: initialize public repository
CI / checks (push) Has been cancelled

This commit is contained in:
maddin
2026-03-22 12:55:55 +00:00
commit 9794362f39
143 changed files with 19832 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
from datetime import date
DEFAULT_WORKING_DAYS = (0, 1, 2, 3, 4)
def normalize_working_days(days: list[int] | set[int] | tuple[int, ...]) -> list[int]:
normalized = sorted({int(day) for day in days if 0 <= int(day) <= 6})
if not normalized:
return list(DEFAULT_WORKING_DAYS)
return normalized
def serialize_working_days(days: list[int] | set[int] | tuple[int, ...]) -> str:
return ",".join(str(day) for day in normalize_working_days(days))
def parse_working_days_csv(value: str | None) -> set[int]:
if not value:
return set(DEFAULT_WORKING_DAYS)
parsed: list[int] = []
for part in value.split(","):
item = part.strip()
if not item:
continue
try:
parsed.append(int(item))
except ValueError:
continue
normalized = normalize_working_days(parsed)
return set(normalized)
def is_workday(day: date, relevant_weekdays: set[int]) -> bool:
return day.weekday() in relevant_weekdays