text counter#

Обёртка над счётчиками.

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

Вмето того, чтобы использовать множество функций. Проще будет использовать всего один класс.

Старый вариант:

from sp.counters import days_counter
from sp.parser import Schedule
from sp.messages import send_counter

sc = Schedule()
res = days_counter(sc, sc.construct_intent())
groups = group_counter_res(res)
message = send_counter(groups, target="cl")

Новый вариант:

from sp.counters import CounterTarget
from sp.parser import Schedule
from sp.text_counter import TextCounter, CounterTarget

sc = Schedule()
counter = TextCounter(sc)
message = counter.days(
    sc.construct_intent(),
    target=CounterTarget.CL
)
class sp.text_counter.TextCounter(sc: Schedule)#

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

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

Параметры:

sc (Schedule) – Экземпляр расписания, для которого считать элементы.

cl(intent: Intent, target: CounterTarget | None = None) str#

Счётчик по классам в расписании (sc.lessons).

Является обёрткой над cl_counter. Группирует результаты и формарует текстовое сообщение. Использует намерения, для уточнения результатов подсчёта. Вы также можете выбрать отображаемую подргуппу.

Доступные подгруппы:

  • CounterTarget.NONE.

  • CounterTarget.DAYS.

  • CounterTarget.LESSONS.

  • CounterTarget.CABINETS.

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

from sp.counters import CounterTarget
from sp.parser import Schedule
from sp.text_counter import TextCounter

sc = Schedule()
counter = TextCounter(sc)
message = counter.cl(sc.construct_intent())
Параметры:
  • intent (Intent) – Намерение для уточнения результатов подсчёта.

  • target (Optional[CounterTarget]) – Отображаемая подгруппа.

Результат:

Сообщение с результатом работы счётчика.

Тип результата:

str

days(intent: Intent, target: CounterTarget | None = None) str#

Счётчик по дням в расписании (sc.lessons).

Является обёрткой над days_counter. Группирует результаты и формарует текстовое сообщение. Использует намерения, для уточнения результатов подсчёта. Вы также можете выбрать отображаемую подгруппу.

Доступные подгруппы:

  • CounterTarget.NONE.

  • CounterTarget.CL.

  • CounterTarget.LESSONS.

  • CounterTarget.CABINETS.

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

from sp.counters import CounterTarget
from sp.parser import Schedule
from sp.text_counter import TextCounter

sc = Schedule()
counter = TextCounter(sc)
message = counter.days(
    sc.construct_intent(),
    target=CounterTarget.CL
)
Параметры:
  • intent (Intent) – Намерение для уточнения результатов подсчёта.

  • target (Optional[CounterTarget]) – Какую добавить подгруппу.

Результат:

Сообщение с результатом работы счётчика.

Тип результата:

str

index(intent: Intent, cabinets_mode: bool | None = False, target: CounterTarget | None = None) str#

Счётчик по урокам/кабинетам в расписании (имдексам).

Является обёрткой над index_counter. Группирует результаты и формарует текстовое сообщение. Использует намерения, для уточнения результатов подсчёта. Вы также можете выбрать отображаемую подгруппу.

Доступные подгруппы:

  • CounterTarget.NONE.

  • CounterTarget.CL.

  • CounterTarget.DAYS.

  • CounterTarget.MAIN.

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

from sp.counters import CounterTarget
from sp.parser import Schedule
from sp.text_counter import TextCounter

sc = Schedule()
counter = TextCounter(sc)
message = counter.index(
    sc.construct_intent(),
    cabinets_mode=True,
    target=CounterTarget.CL
)
Параметры:
  • intent (Intent) – Намерение для уточнения результатов подсчёта.

  • cabinets_mode (bool) – Использовать индекс кабинетов.

  • target (Optional[CounterTarget]) – Какую добавить подгруппу.

Результат:

Сообщение с результатом работы счётчика.

Тип результата:

str