Bump version to v21.3

This commit is contained in:
Hinrich Mahler 2024-06-07 16:52:22 +02:00
parent 78c945d485
commit a9f6afd015
23 changed files with 98 additions and 64 deletions

View file

@ -4,6 +4,40 @@
Changelog
=========
Version 21.3
============
*Released 2024-06-07*
This is the technical changelog for version 21.3. More elaborate release notes can be found in the news channel `@pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>`_.
Major Changes
-------------
- Full Support for Bot API 7.4 (:pr:`4286`, :pr:`4276` closes :issue:`4275`, :pr:`4285`, :pr:`4283`, :pr:`4280`, :pr:`4278`, :pr:`4279`)
- Deprecate ``python-telegram-bot-raw`` (:pr:`4270`)
- Remove Functionality Deprecated in Bot API 7.3 (:pr:`4266` closes :issue:`4244`)
New Features
------------
- Add Parameter ``chat_id`` to ``ChatMemberHandler`` (:pr:`4290` by `uniquetrij <https://github.com/uniquetrij>`_ closes :issue:`4287`)
Documentation Improvements
--------------------------
- Documentation Improvements (:pr:`4264` closes :issue:`4240`)
Internal Changes
----------------
- Add ``setuptools`` to ``requirements-dev.txt`` (:pr:`4282`)
- Update Settings for pre-commit.ci (:pr:`4265`)
Dependency Updates
------------------
- Bump ``pytest`` from 8.2.0 to 8.2.1 (:pr:`4272`)
Version 21.2
============

View file

@ -62,7 +62,7 @@
⚠️ Deprecation Notice
=====================
The ``python-telegram-bot-raw`` library will no longer be updated after NEXT.VERSION.
The ``python-telegram-bot-raw`` library will no longer be updated after 21.3.
Please instead use the ``python-telegram-bot`` `library <https://pypi.org/python-telegram-bot>`_.
The change requires no changes in your code and requires no additional dependencies.
For additional information, please see this `channel post <https://t.me/pythontelegrambotchannel/145>`_.

View file

@ -494,7 +494,7 @@ if not (Path(__file__).parent.resolve().absolute() / "ext").exists():
# seeing the warning.
warn(
warnings.PTBDeprecationWarning(version="NEXT.VERSION", message=_MESSAGE),
warnings.PTBDeprecationWarning(version="21.3", message=_MESSAGE),
stacklevel=2,
)
warn(

View file

@ -976,7 +976,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -1350,10 +1350,10 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -1508,7 +1508,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -1662,7 +1662,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -1788,7 +1788,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -1944,10 +1944,10 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -2096,7 +2096,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -2253,10 +2253,10 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -2408,7 +2408,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -2534,7 +2534,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -2717,7 +2717,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -3014,7 +3014,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -3156,7 +3156,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -3276,7 +3276,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -4079,7 +4079,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
inline keyboard.
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Returns:
:class:`telegram.Message`: On success, if edited message is not an inline message, the
@ -4976,7 +4976,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
`@BotFather <https://t.me/BotFather>`_. Pass an empty string for payments in
|tg_stars|.
.. deprecated:: NEXT.VERSION
.. deprecated:: 21.3
As of Bot API 7.4, this parameter is now optional and future versions of the
library will make it optional as well.
@ -5057,7 +5057,7 @@ class Bot(TelegramObject, AsyncContextManager["Bot"]):
.. versionadded:: 20.8
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -7045,7 +7045,7 @@ CUSTOM_EMOJI_IDENTIFIER_LIMIT` custom emoji identifiers can be specified.
.. versionadded:: 21.2
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -7218,7 +7218,7 @@ CUSTOM_EMOJI_IDENTIFIER_LIMIT` custom emoji identifiers can be specified.
.. versionadded:: 21.1
message_effect_id (:obj:`str`, optional): |message_effect_id|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -7641,7 +7641,7 @@ CUSTOM_EMOJI_IDENTIFIER_LIMIT` custom emoji identifiers can be specified.
.. versionadded:: 20.8
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Keyword Args:
allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
@ -7910,7 +7910,7 @@ CUSTOM_EMOJI_IDENTIFIER_LIMIT` custom emoji identifiers can be specified.
`@BotFather <https://t.me/BotFather>`_. Pass an empty string for payments in
|tg_stars|.
.. deprecated:: NEXT.VERSION
.. deprecated:: 21.3
As of Bot API 7.4, this parameter is now optional and future versions of the
library will make it optional as well.
@ -9042,7 +9042,7 @@ CUSTOM_EMOJI_IDENTIFIER_LIMIT` custom emoji identifiers can be specified.
) -> bool:
"""Refunds a successful payment in |tg_stars|.
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Args:
user_id (:obj:`int`): User identifier of the user whose payment will be refunded.

View file

@ -69,7 +69,7 @@ if TYPE_CHECKING:
class _ChatBase(TelegramObject):
"""Base class for :class:`telegram.Chat` and :class:`telegram.ChatFullInfo`.
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""
__slots__ = ("first_name", "id", "is_forum", "last_name", "title", "type", "username")
@ -3277,7 +3277,7 @@ class Chat(_ChatBase):
this field for backwards compatibility, it is available through
:attr:`~telegram.TelegramObject.api_kwargs`.
.. versionchanged:: NEXT.VERSION
.. versionchanged:: 21.3
As per Bot API 7.3, most of the arguments and attributes of this class have now moved to
:class:`telegram.ChatFullInfo`.

View file

@ -44,7 +44,7 @@ class ChatFullInfo(_ChatBase):
.. versionadded:: 21.2
.. versionchanged:: NEXT.VERSION
.. versionchanged:: 21.3
Explicit support for all shortcut methods known from :class:`telegram.Chat` on this
object. Previously those were only available because this class inherited from
:class:`telegram.Chat`.

View file

@ -162,7 +162,7 @@ class InputMediaAnimation(InputMedia):
.. versionadded:: 20.2
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Attributes:
type (:obj:`str`): :tg-const:`telegram.constants.InputMediaType.ANIMATION`.
@ -189,7 +189,7 @@ class InputMediaAnimation(InputMedia):
.. versionadded:: 20.2
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""
__slots__ = (
@ -277,7 +277,7 @@ class InputMediaPhoto(InputMedia):
.. versionadded:: 20.0
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Attributes:
type (:obj:`str`): :tg-const:`telegram.constants.InputMediaType.PHOTO`.
@ -298,7 +298,7 @@ class InputMediaPhoto(InputMedia):
.. versionadded:: 20.0
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""
__slots__ = (
@ -387,7 +387,7 @@ class InputMediaVideo(InputMedia):
.. versionadded:: 20.2
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Attributes:
type (:obj:`str`): :tg-const:`telegram.constants.InputMediaType.VIDEO`.
@ -416,7 +416,7 @@ class InputMediaVideo(InputMedia):
.. versionadded:: 20.2
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""
__slots__ = (

View file

@ -61,7 +61,7 @@ class InlineQueryResultCachedGif(InlineQueryResult):
message to be sent instead of the gif.
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Attributes:
type (:obj:`str`): :tg-const:`telegram.constants.InlineQueryResultType.GIF`.
@ -86,7 +86,7 @@ class InlineQueryResultCachedGif(InlineQueryResult):
message to be sent instead of the gif.
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""

View file

@ -61,7 +61,7 @@ class InlineQueryResultCachedMpeg4Gif(InlineQueryResult):
message to be sent instead of the MPEG-4 file.
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Attributes:
type (:obj:`str`): :tg-const:`telegram.constants.InlineQueryResultType.MPEG4GIF`.
@ -86,7 +86,7 @@ class InlineQueryResultCachedMpeg4Gif(InlineQueryResult):
message to be sent instead of the MPEG-4 file.
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""

View file

@ -62,7 +62,7 @@ class InlineQueryResultCachedPhoto(InlineQueryResult):
message to be sent instead of the photo.
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Attributes:
type (:obj:`str`): :tg-const:`telegram.constants.InlineQueryResultType.PHOTO`.
@ -88,7 +88,7 @@ class InlineQueryResultCachedPhoto(InlineQueryResult):
message to be sent instead of the photo.
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""

View file

@ -58,7 +58,7 @@ class InlineQueryResultCachedVideo(InlineQueryResult):
message to be sent instead of the video.
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Attributes:
type (:obj:`str`): :tg-const:`telegram.constants.InlineQueryResultType.VIDEO`.
@ -84,7 +84,7 @@ class InlineQueryResultCachedVideo(InlineQueryResult):
message to be sent instead of the video.
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""

View file

@ -80,7 +80,7 @@ class InlineQueryResultGif(InlineQueryResult):
message to be sent instead of the GIF animation.
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Raises:
:class:`ValueError`: If neither :paramref:`thumbnail_url` nor :paramref:`thumb_url` is
@ -120,7 +120,7 @@ class InlineQueryResultGif(InlineQueryResult):
message to be sent instead of the GIF animation.
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""

View file

@ -82,7 +82,7 @@ class InlineQueryResultMpeg4Gif(InlineQueryResult):
message to be sent instead of the video animation.
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Raises:
:class:`ValueError`: If neither :paramref:`thumbnail_url` nor :paramref:`thumb_url` is
supplied or if both are supplied and are not equal.
@ -122,7 +122,7 @@ class InlineQueryResultMpeg4Gif(InlineQueryResult):
message to be sent instead of the video animation.
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""
__slots__ = (

View file

@ -76,7 +76,7 @@ class InlineQueryResultPhoto(InlineQueryResult):
message to be sent instead of the photo.
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Raises:
:class:`ValueError`: If neither :paramref:`thumbnail_url` nor :paramref:`thumb_url` is
@ -110,7 +110,7 @@ class InlineQueryResultPhoto(InlineQueryResult):
message to be sent instead of the photo.
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""

View file

@ -90,7 +90,7 @@ class InlineQueryResultVideo(InlineQueryResult):
(e.g., a YouTube video).
show_caption_above_media (:obj:`bool`, optional): Pass |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Raises:
:class:`ValueError`: If neither :paramref:`thumbnail_url` nor :paramref:`thumb_url` is
@ -132,7 +132,7 @@ class InlineQueryResultVideo(InlineQueryResult):
(e.g., a YouTube video).
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""

View file

@ -52,7 +52,7 @@ class InputInvoiceMessageContent(InputMessageContent):
`@Botfather <https://t.me/Botfather>`_. Pass an empty string for payments in
|tg_stars|.
.. deprecated:: NEXT.VERSION
.. deprecated:: 21.3
As of Bot API 7.4, this parameter is now optional and future versions of the
library will make it optional as well.
currency (:obj:`str`): Three-letter ISO 4217 currency code, see more on

View file

@ -331,7 +331,7 @@ class Message(MaybeInaccessibleMessage):
effect_id (:obj:`str`, optional): Unique identifier of the message effect added to the
message.
..versionadded:: NEXT.VERSION
..versionadded:: 21.3
caption_entities (Sequence[:class:`telegram.MessageEntity`], optional): For messages with a
Caption. Special entities like usernames, URLs, bot commands, etc. that appear in the
@ -344,7 +344,7 @@ class Message(MaybeInaccessibleMessage):
show_caption_above_media (:obj:`bool`, optional): |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
audio (:class:`telegram.Audio`, optional): Message is an audio file, information
about the file.
document (:class:`telegram.Document`, optional): Message is a general file, information
@ -628,7 +628,7 @@ class Message(MaybeInaccessibleMessage):
effect_id (:obj:`str`): Optional. Unique identifier of the message effect added to the
message.
..versionadded:: NEXT.VERSION
..versionadded:: 21.3
caption_entities (Tuple[:class:`telegram.MessageEntity`]): Optional. For messages with a
Caption. Special entities like usernames, URLs, bot commands, etc. that appear in the
@ -641,7 +641,7 @@ class Message(MaybeInaccessibleMessage):
show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
audio (:class:`telegram.Audio`): Optional. Message is an audio file, information
about the file.

View file

@ -165,7 +165,7 @@ class MessageEntity(TelegramObject):
EXPANDABLE_BLOCKQUOTE: Final[str] = constants.MessageEntityType.EXPANDABLE_BLOCKQUOTE
""":const:`telegram.constants.MessageEntityType.EXPANDABLE_BLOCKQUOTE`
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""
HASHTAG: Final[str] = constants.MessageEntityType.HASHTAG
""":const:`telegram.constants.MessageEntityType.HASHTAG`"""

View file

@ -2163,7 +2163,7 @@ class User(TelegramObject):
For the documentation of the arguments, please see
:meth:`telegram.Bot.refund_star_payment`.
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Returns:
:obj:`bool`: On success, :obj:`True` is returned.

View file

@ -51,7 +51,7 @@ class Version(NamedTuple):
__version_info__: Final[Version] = Version(
major=21, minor=2, micro=0, releaselevel="final", serial=0
major=21, minor=3, micro=0, releaselevel="final", serial=0
)
__version__: Final[str] = str(__version_info__)

View file

@ -1653,7 +1653,7 @@ class MessageEntityType(StringEnum):
EXPANDABLE_BLOCKQUOTE = "expandable_blockquote"
""":obj:`str`: Message entities representing collapsed-by-default block quotation.
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
"""
HASHTAG = "hashtag"
""":obj:`str`: Message entities representing a hashtag."""
@ -1809,7 +1809,7 @@ class MessageType(StringEnum):
EFFECT_ID = "effect_id"
""":obj:`str`: Messages with :attr:`telegram.Message.effect_id`.
.. versionadded:: NEXT.VERSION"""
.. versionadded:: 21.3"""
FORUM_TOPIC_CREATED = "forum_topic_created"
""":obj:`str`: Messages with :attr:`telegram.Message.forum_topic_created`.

View file

@ -61,7 +61,7 @@ class ChatMemberHandler(BaseHandler[Update, CCT]):
.. seealso:: :wiki:`Concurrency`
chat_id (:obj:`int` | Collection[:obj:`int`], optional): Filters chat member updates from
specified chat ID(s) only.
.. versionadded:: NEXT.VERSION
.. versionadded:: 21.3
Attributes:
callback (:term:`coroutine function`): The callback function for this handler.

View file

@ -1349,7 +1349,7 @@ class _EffectId(MessageFilter):
EFFECT_ID = _EffectId(name="filters.EFFECT_ID")
"""Messages that contain :attr:`telegram.Message.effect_id`.
.. versionadded:: NEXT.VERSION"""
.. versionadded:: 21.3"""
class Entity(MessageFilter):