JustCaptain kod-buduschego
topic-1.4-loops
Перейти к файлу
Код
task_9.py
"""
Задача 9. Найти самый загруженный день
Входные данные
"""

from dataclasses import dataclass
from typing import Any, Type, TypeVar

T = TypeVar("T")


@dataclass
class Log:
    date: str
    tokens: int


logs_raw = [
    {"date": "2025-05-01", "tokens": 15000},
    {"date": "2025-05-02", "tokens": 23000},
    {"date": "2025-05-03", "tokens": 18000},
    {"date": "2025-05-04", "tokens": 35000},
    {"date": "2025-05-05", "tokens": 12000},
    {"date": "2025-05-06", "tokens": 41000},
    {"date": "2025-05-07", "tokens": 22000},
]


def create_objects(data: list[Any], cls: Type[T]) -> list[T] | None:
    if isinstance(data, list) is False or len(data) == 0:
        return None
    result: list[T] = []
    for obj in data:
        result.append(cls(**obj))
    return result


def busiest_day(logs: list[Log]) -> Log | None:
    if isinstance(logs, list) is False or len(logs) == 0:
        return None

    busiest: Log = logs[0]
    for log in logs:
        if busiest.tokens < log.tokens:
            busiest = log
    return busiest


logs: list[Log] | None = create_objects(data=logs_raw, cls=Log)

if logs:
    result: Log | None = busiest_day(logs=logs)
    print(result)