Changelog
General
- Framework renamed from DFF to Chatsky (368)
Features
- New `has_text` condition for asserting that specific text is contained inside the last request (335)
- Validation stage reworked.
`Pipeline.validation_stage`, `Pipeline.verbose` and `Context.validation` fields are removed.
Added new type for annotating labels `dff.script.ConstLabel` (289)
- Functions `cnd.exact_match` and `check_happy_path` now accept both `Message` and `str`.
The following are now equivalent: `exact_match(Message("text"))` == `exact_match("text")`
(337)
- CLIMessengerInterface moved to `messengers.console` (328)
- Attachments reworked (328):
- `Session`, `Command`, `Link`, `Button`, `Keyboard` and `Attachments` classes removed, `Message.commands` field removed.
- Added `CallbackQuery`, `Contact`, `Invoice`, `Poll`, `Animation`, `Sticker`, `VoiceMessage`, `VideoMessage` and `MediaGroup` classes.
- Added attachment caching feature.
- Added `has_callback_query` condition.
- Removed `title` field from Data Attachments. Use `caption` instead.
- Telegram Messenger interface reworked (328):
- Now provides methods for attachment byte download.
- Added support for receiving attachment types as members of `Message.attachments`. Others may be accessed via `Message.original_message`.
- Added support for sending new attachment types (`Sticker`, `Poll`, e.t.c.).
- Added support for extra options such as `disable_notification`, `message_effect_id` or `caption`.
- Telegram tutorials rewritten to reflect all the changes.
- Added slots that simplify the process of extracting arbitrary data from user messages and accessing it later (36):
- New user guide and tutorials on slots
Documentation
- Return PRE_RESPONSE_PROCESSING and PRE_TRANSITION_PROCESSING tutorials
- New telegram interface tutorials (328)
- Slots user guide and tutorials (36)
Contrib
- Added `poe quick_test` to run tests that are not slow and do not require docker (344)
- `Context.framework_states` renamed to `Context.framework_data` and made `Pydantic.BaseModel` (359)
- Added `MessengerInterfaceWithAttachments` class (328)
- Added tools for enabling json serialization via pickle (328)
- Telegram tests made independent from telegram servers (328)
- `wrap_sync_function_in_async` moved to `utils.devel` (36)