intents#
Вспомогательный класс намерений.
Часто при работе над расписанием, поиском, счётчиками или списком изменений, нам бы хотелось более точно укзаать результаты работы. Например если мы хотим получить резльтат только для определённого класса или дня недели. С этой целью вы можете использовать данный класс намерений. Помимо классов и дней, вы также сможете передать уроки и кабинеты.
- class sp.intents.Intent(cl: set[str] = {}, days: set[int] = {}, lessons: set[str] = {}, cabinets: set[str] = {})#
Вспомогательный класс, хранящий в себе намерения пользователя.
Если вам нужно более точно указать результаты работы расписнаия. Например при поиске или получении списка изменений. Просмотреть результаты для конкретного дня или урока.
Предупреждение
Пожалуйста не вводите данные вручную.
Если вы хотите собрать новое намерение, то используйте метод класса construct:
sc = Schedule() i = Intent.construct(sc, cl="8в")
Или воспользуйтесь методом parse:
sc = Schedule() prompt = "9в матем 204" i = Intent.parse(sc, prompt.split())
Подсказка
Альтернатива
Помимо встренных методов для создания намерения есть также и их синонимы в
sp.parser.Schedule.Для comstruct -
sp.parser.Schedule.construct_intent()Для parse -
sp.parser.Schedule.parse_intent()
- cl: set[str]#
Классы намерения (алиас на индекс 0)
- days: set[int]#
Дни недели намерения 0-5 (понедельник-суббота) (алиас на индекс 1)
- lessons: set[str]#
Уроки намерения, например матем (алиас на индекс 2)
- cabinets: set[str]#
Кабенты расписания, например 328 (алиас на индекс 3)
- to_str() str#
Запаковывает намерение в строку.
Используется, для сохранения содержимого намерения в строке. Например при сохранении в базу данных или другое хранилище.
Примеры запакованных намерений:
::: - Пустое намерение.
9в::матем: - Намерение с классом «9в» и «уроком математика».
:1,2:: - Намерение с несколькими значениями (тут днями).
- Результат:
Упакованное намерение.
- Тип результата:
str
Сборка намерения#
Методы, используемые для сборки новоего намерения из некоторых сторонних данных.
- classmethod from_str(s: str) Intent#
Распаковывает намерение из строки.
Получает экземпляр намерение, которое ранее было упаковано в строку через метод to_str().
# Запаковываем намерение sc = Schedule() i = Intent.construct(sc, cl="8в") i_str = i.to_str() # Тут будет ваш код... # ... Что-то делаем... # ... И спустя долгое время... # а теперь вы захотели загрузить намерение из строки i = Intent.from_str(i_str)
Примечание
Обратите внимание, что метод from_str не производит валидацию передаваемых значений относительно расписания. Мы предпогаем что вы никак не изменяли запакованную строку.
Формат строки:
cl,…:day,…:lessons,…:cabinets,cabinets2,cabinetsN
«9в:1,2::» -> Intent(cl=[«9в»], days=[1, 2])
- Параметры:
s (str) – Строка с упакованным намерение.
- Результат:
Новое распакованное намерение.
- Тип результата:
- classmethod construct(sc, cl: Iterable[str] | str = (), days: Iterable[int] | int = (), lessons: Iterable[str] | str = (), cabinets: Iterable[str] | str = ())#
Собирает новый экземпляр намерений.
Занимается сборкой и валидацией нового экземпляра намерений. Вы можете передавать для сборки итерируемые контейнеры.
i = Intent.construct(sc, cl="8а") # Intent({"8а"}, set(), set(), set()) i = Intent.construct(sc, days=[2, 3], lessons="матем")
Экзмеляр Schedule используется для валидации параметров относительно текущего расписания.
- Параметры:
sc (Schedule) – Экземпляр расписания уроков для валидации аргументов.
cl (Union[Iterable[str], str]) – Какие классы расписания добавить в намерение
days (Union[Iterable[int], int]) – Какие дни добавить в намерение (0-5)
lessons (Union[Iterable[str], str]) – Какие уроки добавить в намерение (из l_index).
cabinets (Union[Iterable[str], str]) – Какие кабинеты добавить в намерение (c_index).
- Результат:
Проверенное намерение из переданных аргументов
- Тип результата:
- classmethod parse(sc, args: Iterable[str])#
Извлекает намерения из списка строковых аргументов.
Урок Кабинет / / > Химия вторнки 204 8а / / День класс
Также занимается валидацией параметров, использую класс Schedule относительно текущего расписнаия.
Пересборка намерения#
Методы чтобы создать новое намерение, основываясь на старом.
Устарело, начиная с версии v5.7: Считаются устаревшими и будут удалены вместе с классом Intents.
- reconstruct(sc, cl: Iterable[str] | str = (), days: Iterable[int] | int = (), lessons: Iterable[str] | str = (), cabinets: Iterable[str] | str = ())#
Пересобирает новый экземпляр намерений.
Занимается сборкой и валидацией нового экземпляра намерений на основе текущего экземпляра. Вы можете передавать для сборки итерируемые контейнеры. Если вы не укзаали какой-то параметр, который уже был в экзмемпляре, он будет взят из текущего экземлпяра.
# Intent({"8а"}, set(), set(), set()) i = Intent.construct(sc, cl="8а") # Intent({"8а"}, set(), {"матем"}, set()) new_i = i.reconstruct(sc, lessons="матем")
Экзмеляр Schedule используется для валидации параметров относительно текущего расписания.
- Параметры:
sc (Schedule) – Экземпляр расписания уроков для валидации аргументов.
cl (Union[Iterable[str], str]) – Какие классы расписания добавить в намерение
days (Union[Iterable[int], int]) – Какие дни добавить в намерение (0-5)
lessons (Union[Iterable[str], str]) – Какие уроки добавить в намерение (из l_index).
cabinets (Union[Iterable[str], str]) – Какие кабинеты добавить в намерение (c_index).
- Результат:
Пересобранное намерение из переданных аргументов
- Тип результата:
- reparse(sc, args: Iterable[str])#
Извлекает намерения из списка строковых аргументов.
Собрает новый экземпляр намерений из строковых аргументов и параметров экземпляра. Если вы не указали какой-то параметр в строковых аргументах он будет подставлен из текущего экземлпяра.
Урок Кабинет / / > Химия вторнки 204 8а / / День класс
Также занимается валидацией параметров, использую класс Schedule относительно текущего расписнаия.