Перейти к содержанию

Счётчик

Счётчики элементов расписания.

Предоставляет счётчик для анализа количества элементов в расписании. Все методы используют намерения, для уточнения результатов подсчёта.

CounterRes = dict[_K, CounterGroup] module-attribute

CounterGroup(total: int, cl: Counter[str], days: Counter[int], lessons: Counter[str], cabinets: Counter[str]) dataclass

Группа результатов работы счётчика.

в зависимости от типа счётчика некоторые поля могут быть пусты. К примеру у счётчика по классам классы будут пустыми.

total: int instance-attribute

cl: Counter[str] instance-attribute

days: Counter[int] instance-attribute

lessons: Counter[str] instance-attribute

cabinets: Counter[str] instance-attribute

CounterTarget

Bases: Enum

Описывает все доступные подгруппы счётчиков.

Пример использования с CurrentCounter:

    counter = CurrentCounter(sc, Intent())
    message = view.counter(
        counter.cl()
        target=CounterTarget.CL
    )
  • NONE: То же самое что и None, без цели отображения.
  • CL: По классам в расписании.
  • DAYS: По дням недели.
  • LESSONS: По урокам (l_index).
  • CABINETS: По кабинетам (c_index).
  • MAIN: Противоположный выбранному счётчику индекса. Если это счётчик уроков - то по кабинетам. И напротив, если это счётчик кабинетов, то по урокам.

NONE = 'none' class-attribute instance-attribute

CL = 'cl' class-attribute instance-attribute

DAYS = 'days' class-attribute instance-attribute

LESSONS = 'lessons' class-attribute instance-attribute

CABINETS = 'cabinets' class-attribute instance-attribute

MAIN = 'main' class-attribute instance-attribute

CurrentCounter(sc: Schedule, intent: Intent)

Счётчик элементов текущего расписания.

Предоставляет методы для подсчёта элементов расписания. Вы можете отобразить результат через класс представления.

sc = sc instance-attribute

intent = intent instance-attribute

cl(intent: Intent | None = None) -> dict[int, CounterRes[str]]

Счётчик по классам с использованием sp.lessons.

Считает элементы расписания, пробегаясь по sp.lessons. Использует намерение для уточнения результатов поиска.

days(intent: Intent | None = None) -> dict[int, CounterRes[int]]

Счётчик по дням с использованием sc.lessons.

Производит подсчёт элементов относительно дней недели. Использует намерение для уточнения результатов работы счётчиков.

lessons(intent: Intent | None = None) -> dict[int, CounterRes[str]]

Счётчик уроков с использованием индексов.

Производит подсчёт элементов расписания в счётчиках. В зависимости от режима считает уроки или кабинеты. Использует намерение, для уточнения результатов счётчика.

cabinets(intent: Intent | None = None) -> dict[int, CounterRes[str]]

Счётчик уроков с использованием индексов.

Производит подсчёт элементов расписания в счётчиках. В зависимости от режима считает уроки или кабинеты. Использует намерение, для уточнения результатов счётчика.

reverse_counter(cnt: Counter[str]) -> dict[int, list[str]]

Меняет ключ и значение collections.Counter местами.

Переворачивает счётчик из name:count -> count:[name, name, name]. Используется в группировке результатов работы счётчиков по количеству. Также будет пропускать пустые значения при подсчёте.