Since this class has a large number of methods and attributes, below you can find a quick overview.
+
+
+
+ Sending Messages
+
+.. list-table::
+ :align: left
+ :widths: 1 4
+
+ * - :meth:`~telegram.Bot.send_animation`
+ - Used for sending animations
+ * - :meth:`~telegram.Bot.send_audio`
+ - Used for sending audio files
+ * - :meth:`~telegram.Bot.send_chat_action`
+ - Used for sending chat actions
+ * - :meth:`~telegram.Bot.send_contact`
+ - Used for sending contacts
+ * - :meth:`~telegram.Bot.send_dice`
+ - Used for sending dice messages
+ * - :meth:`~telegram.Bot.send_document`
+ - Used for sending documents
+ * - :meth:`~telegram.Bot.send_game`
+ - Used for sending a game
+ * - :meth:`~telegram.Bot.send_invoice`
+ - Used for sending an invoice
+ * - :meth:`~telegram.Bot.send_location`
+ - Used for sending location
+ * - :meth:`~telegram.Bot.send_media_group`
+ - Used for sending media grouped together
+ * - :meth:`~telegram.Bot.send_message`
+ - Used for sending text messages
+ * - :meth:`~telegram.Bot.send_photo`
+ - Used for sending photos
+ * - :meth:`~telegram.Bot.send_poll`
+ - Used for sending polls
+ * - :meth:`~telegram.Bot.send_sticker`
+ - Used for sending stickers
+ * - :meth:`~telegram.Bot.send_venue`
+ - Used for sending venue locations.
+ * - :meth:`~telegram.Bot.send_video`
+ - Used for sending videos
+ * - :meth:`~telegram.Bot.send_video_note`
+ - Used for sending video notes
+ * - :meth:`~telegram.Bot.send_voice`
+ - Used for sending voice messages
+ * - :meth:`~telegram.Bot.copy_message`
+ - Used for copying the contents of an arbitrary message
+ * - :meth:`~telegram.Bot.forward_message`
+ - Used for forwarding messages
+
+.. raw:: html
+
+
+
+
+.. raw:: html
+
+
+ Updating Messages
+
+.. list-table::
+ :align: left
+ :widths: 1 4
+
+ * - :meth:`~telegram.Bot.answer_callback_query`
+ - Used for answering the callback query
+ * - :meth:`~telegram.Bot.answer_inline_query`
+ - Used for answering the inline query
+ * - :meth:`~telegram.Bot.answer_pre_checkout_query`
+ - Used for answering a pre checkout query
+ * - :meth:`~telegram.Bot.answer_shipping_query`
+ - Used for answering a shipping query
+ * - :meth:`~telegram.Bot.edit_message_caption`
+ - Used for editing captions
+ * - :meth:`~telegram.Bot.edit_message_media`
+ - Used for editing the media on messages
+ * - :meth:`~telegram.Bot.edit_message_live_location`
+ - Used for editing the location in live location messages
+ * - :meth:`~telegram.Bot.edit_message_reply_markup`
+ - Used for editing the reply markup on messages
+ * - :meth:`~telegram.Bot.edit_message_text`
+ - Used for editing text messages
+ * - :meth:`~telegram.Bot.stop_poll`
+ - Used for stopping the running poll
+ * - :meth:`~telegram.Bot.delete_message`
+ - Used for deleting messages.
+
+.. raw:: html
+
+
+
+
+.. raw:: html
+
+
+ Chat Moderation and information
+
+.. list-table::
+ :align: left
+ :widths: 1 4
+
+ * - :meth:`~telegram.Bot.ban_chat_member`
+ - Used for banning a member from the chat
+ * - :meth:`~telegram.Bot.unban_chat_member`
+ - Used for unbanning a member from the chat
+ * - :meth:`~telegram.Bot.ban_chat_sender_chat`
+ - Used for banning a channel in a channel or supergroup
+ * - :meth:`~telegram.Bot.unban_chat_sender_chat`
+ - Used for unbanning a channel in a channel or supergroup
+ * - :meth:`~telegram.Bot.restrict_chat_member`
+ - Used for restricting a chat member
+ * - :meth:`~telegram.Bot.promote_chat_member`
+ - Used for promoting a chat member
+ * - :meth:`~telegram.Bot.set_chat_administrator_custom_title`
+ - Used for assigning a custom admin title to an admin
+ * - :meth:`~telegram.Bot.set_chat_permissions`
+ - Used for setting the permissions of a chat
+ * - :meth:`~telegram.Bot.export_chat_invite_link`
+ - Used for creating a new primary invite link for a chat
+ * - :meth:`~telegram.Bot.create_chat_invite_link`
+ - Used for creating an additional invite link for a chat
+ * - :meth:`~telegram.Bot.edit_chat_invite_link`
+ - Used for editing a non-primary invite link
+ * - :meth:`~telegram.Bot.revoke_chat_invite_link`
+ - Used for revoking an invite link created by the bot
+ * - :meth:`~telegram.Bot.approve_chat_join_request`
+ - Used for approving a chat join request
+ * - :meth:`~telegram.Bot.decline_chat_join_request`
+ - Used for declining a chat join request
+ * - :meth:`~telegram.Bot.set_chat_photo`
+ - Used for setting a photo to a chat
+ * - :meth:`~telegram.Bot.delete_chat_photo`
+ - Used for deleting a chat photo
+ * - :meth:`~telegram.Bot.set_chat_title`
+ - Used for setting a chat title
+ * - :meth:`~telegram.Bot.set_chat_description`
+ - Used for setting the description of a chat
+ * - :meth:`~telegram.Bot.pin_chat_message`
+ - Used for pinning a message
+ * - :meth:`~telegram.Bot.unpin_chat_message`
+ - Used for unpinning a message
+ * - :meth:`~telegram.Bot.unpin_all_chat_messages`
+ - Used for unpinning all pinned chat messages
+ * - :meth:`~telegram.Bot.get_user_profile_photos`
+ - Used for obtaining user's profile pictures
+ * - :meth:`~telegram.Bot.get_chat`
+ - Used for getting information about a chat
+ * - :meth:`~telegram.Bot.get_chat_administrators`
+ - Used for getting the list of admins in a chat
+ * - :meth:`~telegram.Bot.get_chat_member_count`
+ - Used for getting the number of members in a chat
+ * - :meth:`~telegram.Bot.get_chat_member`
+ - Used for getting a member of a chat
+ * - :meth:`~telegram.Bot.set_my_commands`
+ - Used for setting the list of commands
+ * - :meth:`~telegram.Bot.delete_my_commands`
+ - Used for deleting the list of commands
+ * - :meth:`~telegram.Bot.get_my_commands`
+ - Used for obtaining the list of commands
+ * - :meth:`~telegram.Bot.leave_chat`
+ - Used for leaving a chat
+
+.. raw:: html
+
+
+
+
+.. raw:: html
+
+
+ Stickerset management
+
+.. list-table::
+ :align: left
+ :widths: 1 4
+
+ * - :meth:`~telegram.Bot.add_sticker_to_set`
+ - Used for adding a sticker to a set
+ * - :meth:`~telegram.Bot.delete_sticker_from_set`
+ - Used for deleting a sticker from a set
+ * - :meth:`~telegram.Bot.create_new_sticker_set`
+ - Used for creating a new sticker set
+ * - :meth:`~telegram.Bot.set_chat_sticker_set`
+ - Used for setting a sticker set
+ * - :meth:`~telegram.Bot.delete_chat_sticker_set`
+ - Used for deleting the set sticker set
+ * - :meth:`~telegram.Bot.set_sticker_position_in_set`
+ - Used for moving a sticker's position in the set
+ * - :meth:`~telegram.Bot.set_sticker_set_thumb`
+ - Used for setting the thumbnail of a sticker set
+ * - :meth:`~telegram.Bot.get_sticker_set`
+ - Used for getting a sticker set
+ * - :meth:`~telegram.Bot.upload_sticker_file`
+ - Used for uploading a sticker file
+
+.. raw:: html
+
+
+
+
+.. raw:: html
+
+
+ Games
+
+.. list-table::
+ :align: left
+ :widths: 1 4
+
+ * - :meth:`~telegram.Bot.get_game_high_scores`
+ - Used for getting the game high scores
+ * - :meth:`~telegram.Bot.set_game_score`
+ - Used for setting the game score
+
+.. raw:: html
+
+
+
+
+.. raw:: html
+
+
+ Getting updates
+
+.. list-table::
+ :align: left
+ :widths: 1 4
+
+ * - :meth:`~telegram.Bot.get_updates`
+ - Used for getting updates using long polling
+ * - :meth:`~telegram.Bot.get_webhook_info`
+ - Used for getting current webhook status
+ * - :meth:`~telegram.Bot.set_webhook`
+ - Used for setting a webhook to receive updates
+ * - :meth:`~telegram.Bot.delete_webhook`
+ - Used for removing webhook integration
+
+.. raw:: html
+
+
+
+
+.. raw:: html
+
+
+ Miscellaneous
+
+.. list-table::
+ :align: left
+ :widths: 1 4
+
+ * - :meth:`~telegram.Bot.close`
+ - Used for closing server instance when switching to another local server
+ * - :meth:`~telegram.Bot.log_out`
+ - Used for logging out from cloud Bot API server
+ * - :meth:`~telegram.Bot.get_file`
+ - Used for getting basic info about a file
+ * - :meth:`~telegram.Bot.get_me`
+ - Used for getting basic information about the bot
+
+.. raw:: html
+
+
+
+
+.. raw:: html
+
+
+ Properties
+
+.. list-table::
+ :align: left
+ :widths: 1 4
+
+ * - :attr:`~telegram.Bot.bot`
+ - The user instance of the bot as returned by :meth:`~telegram.Bot.get_me`
+ * - :attr:`~telegram.Bot.can_join_groups`
+ - Whether the bot can join groups
+ * - :attr:`~telegram.Bot.can_read_all_group_messages`
+ - Whether the bot can read all incoming group messages
+ * - :attr:`~telegram.Bot.id`
+ - The user id of the bot
+ * - :attr:`~telegram.Bot.name`
+ - The username of the bot, with leading ``@``
+ * - :attr:`~telegram.Bot.first_name`
+ - The first name of the bot
+ * - :attr:`~telegram.Bot.last_name`
+ - The last name of the bot
+ * - :attr:`~telegram.Bot.username`
+ - The username of the bot, without leading ``@``
+ * - :attr:`~telegram.Bot.link`
+ - The t.me link of the bot
+ * - :attr:`~telegram.Bot.supports_inline_queries`
+ - Whether the bot supports inline queries
+
+.. raw:: html
+
+
+
+
diff --git a/docs/source/conf.py b/docs/source/conf.py
index e96519011..1a5ff48f1 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -11,15 +11,18 @@
#
# All configuration values have a default; values that are commented out
# serve to show the default.
+import subprocess
+import re
import sys
import os
+import inspect
from enum import Enum
+from pathlib import Path
from typing import Tuple
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
-import inspect
from docutils.nodes import Element
from sphinx.application import Sphinx
from sphinx.domains.python import PyXRefRole
@@ -31,7 +34,7 @@ sys.path.insert(0, os.path.abspath('../..'))
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
-needs_sphinx = '4.2.0'
+needs_sphinx = '4.3.2'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
@@ -39,7 +42,9 @@ needs_sphinx = '4.2.0'
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.napoleon',
- 'sphinx.ext.intersphinx'
+ 'sphinx.ext.intersphinx',
+ 'sphinx.ext.linkcode',
+ 'sphinx_paramlinks',
]
# Use intersphinx to reference the python builtin library docs
@@ -55,6 +60,13 @@ autodoc_typehints = 'none'
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
+# Fail on warnings & unresolved references etc
+nitpicky = True
+
+# Paramlink style
+paramlinks_hyperlink_param = 'name'
+
+
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
# source_suffix = ['.rst', '.md']
@@ -129,13 +141,21 @@ todo_include_todos = False
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
-html_theme = 'sphinx_rtd_theme'
+html_theme = 'furo'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
html_theme_options = {
- 'style_external_links': True,
+ 'navigation_with_keys': True,
+ 'dark_css_variables': {'admonition-title-font-size': '0.95rem',
+ 'admonition-font-size': '0.92rem'},
+ 'light_css_variables': {'admonition-title-font-size': '0.95rem',
+ 'admonition-font-size': '0.92rem'},
+ "announcement": 'PTB has undergone significant changes in v14. Please read the documentation '
+ 'carefully and also check out the transition guide in the '
+ ''
+ 'wiki',
}
# Add any paths that contain custom themes here, relative to this directory.
@@ -143,25 +163,27 @@ html_theme_options = {
# The name for this set of Sphinx documents. If None, it defaults to
# " v documentation".
-#html_title = None
+html_title = f"python-telegram-bot v{version}"
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
-html_logo = 'ptb-logo-orange.png'
+html_logo = 'ptb-logo_1024.png'
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
-html_favicon = 'ptb-logo-orange.ico'
+html_favicon = 'ptb-logo_1024.ico'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
+html_css_files = ['style_external_link.css']
+
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
@@ -386,7 +408,141 @@ def autodoc_skip_member(app, what, name, obj, skip, options):
return True # return True to exclude from docs.
+# ------------------------------------------------------------------------------------------------
+# This part is for getting the [source] links on the classes, methods etc link to the correct
+# files & lines on github. Can be simplified once https://github.com/sphinx-doc/sphinx/issues/1556
+# is closed
+
+line_numbers = {}
+file_root = Path(inspect.getsourcefile(telegram)).parent.parent.resolve()
+import telegram.ext # Needed for checking if an object is a BaseFilter
+
+
+def autodoc_process_docstring(app: Sphinx, what, name: str, obj: object, options, lines):
+ """We misuse this autodoc hook to get the file names & line numbers because we have access
+ to the actual object here.
+ """
+ # Ce can't properly handle ordinary attributes.
+ # In linkcode_resolve we'll resolve to the `__init__` or module instead
+ if what == 'attribute':
+ return
+
+ # Special casing for properties
+ if hasattr(obj, 'fget'):
+ obj = obj.fget
+
+ # Special casing for filters
+ if isinstance(obj, telegram.ext.filters.BaseFilter):
+ obj = obj.__class__
+
+ try:
+ source_lines, start_line = inspect.getsourcelines(obj)
+ end_line = start_line + len(source_lines)
+ file = Path(inspect.getsourcefile(obj)).relative_to(file_root)
+ line_numbers[name] = (file, start_line, end_line)
+ except Exception:
+ pass
+
+ # Since we don't document the `__init__`, we call this manually to have it available for
+ # attributes -- see the note above
+ if what == 'class':
+ autodoc_process_docstring(app, 'method', f'{name}.__init__', obj.__init__, options, lines)
+
+
+def _git_branch() -> str:
+ """Get's the current git sha if available or fall back to `master`"""
+ try:
+ output = subprocess.check_output( # skipcq: BAN-B607
+ ["git", "describe", "--tags"], stderr=subprocess.STDOUT
+ )
+ return output.decode().strip()
+ except Exception:
+ return 'master'
+
+
+git_branch = _git_branch()
+base_url = "https://github.com/python-telegram-bot/python-telegram-bot/blob/"
+
+
+def linkcode_resolve(_, info):
+ """See www.sphinx-doc.org/en/master/usage/extensions/linkcode.html"""
+ combined = '.'.join((info['module'], info['fullname']))
+ # special casing for ExtBot which is due to the special structure of extbot.rst
+ combined = combined.replace('ExtBot.ExtBot', 'ExtBot')
+
+ line_info = line_numbers.get(combined)
+
+ if not line_info:
+ # Try the __init__
+ line_info = line_numbers.get(f"{combined.rsplit('.', 1)[0]}.__init__")
+ if not line_info:
+ # Try the class
+ line_info = line_numbers.get(f"{combined.rsplit('.', 1)[0]}")
+ if not line_info:
+ # Try the module
+ line_info = line_numbers.get(info['module'])
+
+ if not line_info:
+ return
+
+ file, start_line, end_line = line_info
+ return f"{base_url}{git_branch}/{file}#L{start_line}-L{end_line}"
+
+# End of logic for the [source] links
+# ------------------------------------------------------------------------------------------------
+
+
+# Some base classes are implementation detail
+# We want to instead show *their* base class
+PRIVATE_BASE_CLASSES = {
+ '_ChatUserBaseFilter': 'MessageFilter',
+ '_Dice': 'MessageFilter',
+ '_BaseThumbedMedium': 'TelegramObject',
+ '_BaseMedium': 'TelegramObject',
+ '_CredentialsBase': 'TelegramObject',
+}
+
+
+def autodoc_process_bases(app, name, obj, option, bases: list):
+ """Here we fine tune how the base class's classes are displayed."""
+ for idx, base in enumerate(bases):
+ # let's use a string representation of the object
+ base = str(base)
+
+ # Special case because base classes are in std lib:
+ if "_StringEnum" in base:
+ bases[idx] = ":class:`enum.Enum`"
+ bases.insert(0, ':class:`str`')
+ continue
+
+ # Drop generics (at least for now)
+ if base.endswith("]"):
+ base = base.split("[", maxsplit=1)[0]
+ bases[idx] = f':class:`{base}`'
+
+ # Now convert `telegram._message.Message` to `telegram.Message` etc
+ match = re.search(pattern=r"(telegram(\.ext|))\.", string=base)
+ if match and '_utils' not in base:
+ base = base.rstrip("'>")
+ parts = base.rsplit(".", maxsplit=2)
+
+ # Replace private base classes with their respective parent
+ parts[-1] = PRIVATE_BASE_CLASSES.get(parts[-1], parts[-1])
+
+ # To make sure that e.g. `telegram.ext.filters.BaseFilter` keeps the `filters` part
+ if not parts[-2].startswith('_') and '_' not in parts[0]:
+ base = '.'.join(parts[-2:])
+ else:
+ base = parts[-1]
+
+ # add `telegram(.ext).` back in front
+ base = f'{match.group(0)}{base}'
+
+ bases[idx] = f':class:`{base}`'
+
+
def setup(app: Sphinx):
- app.add_css_file("dark.css")
app.connect('autodoc-skip-member', autodoc_skip_member)
+ app.connect('autodoc-process-bases', autodoc_process_bases)
+ app.connect('autodoc-process-docstring', autodoc_process_docstring)
app.add_role_to_domain('py', CONSTANTS_ROLE, TGConstXRefRole())
diff --git a/docs/source/ptb-logo_1024.ico b/docs/source/ptb-logo_1024.ico
new file mode 100644
index 000000000..bcda105fb
Binary files /dev/null and b/docs/source/ptb-logo_1024.ico differ
diff --git a/telegram/_bot.py b/telegram/_bot.py
index 406d43949..392dd480f 100644
--- a/telegram/_bot.py
+++ b/telegram/_bot.py
@@ -146,6 +146,8 @@ class Bot(TelegramObject):
private_key (:obj:`bytes`, optional): Private key for decryption of telegram passport data.
private_key_password (:obj:`bytes`, optional): Password for above private key.
+ .. include:: bot_methods.rst
+
"""
__slots__ = (
@@ -429,7 +431,8 @@ class Bot(TelegramObject):
italic, fixed-width text or inline URLs in your bot's message. See the constants in
:class:`telegram.constants.ParseMode` for the available modes.
entities (List[:class:`telegram.MessageEntity`], optional): List of special entities
- that appear in message text, which can be specified instead of :attr:`parse_mode`.
+ that appear in message text, which can be specified instead of
+ :paramref:`parse_mode`.
disable_web_page_preview (:obj:`bool`, optional): Disables link previews for links in
this message.
disable_notification (:obj:`bool`, optional): Sends the message silently. Users will
@@ -498,11 +501,11 @@ class Bot(TelegramObject):
hours ago.
- Bots can delete outgoing messages in private chats, groups, and supergroups.
- Bots can delete incoming messages in private chats.
- - Bots granted :attr:`telegram.ChatMember.can_post_messages` permissions can delete
- outgoing messages in channels.
+ - Bots granted :attr:`~telegram.ChatMemberAdministrator.can_post_messages` permissions
+ can delete outgoing messages in channels.
- If the bot is an administrator of a group, it can delete any message there.
- - If the bot has :attr:`telegram.ChatMember.can_delete_messages` permission in a
- supergroup or a channel, it can delete any message there.
+ - If the bot has :attr:`~telegram.ChatMemberAdministrator.can_delete_messages`
+ permission in a supergroup or a channel, it can delete any message there.
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
@@ -617,7 +620,7 @@ class Bot(TelegramObject):
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
of the target channel (in the format ``@channelusername``).
- photo (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ photo (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.PhotoSize`): Photo to send.
Pass a file_id as String to send a photo that exists on the Telegram servers
(recommended), pass an HTTP URL as a String for Telegram to get a photo from the
@@ -639,7 +642,7 @@ class Bot(TelegramObject):
constants in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in message text, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
disable_notification (:obj:`bool`, optional): Sends the message silently. Users will
receive a notification with no sound.
protect_content (:obj:`bool`, optional): Protects the contents of the sent message from
@@ -728,7 +731,7 @@ class Bot(TelegramObject):
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
of the target channel (in the format ``@channelusername``).
- audio (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ audio (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Audio`): Audio file to send.
Pass a file_id as String to send an audio file that exists on the Telegram servers
(recommended), pass an HTTP URL as a String for Telegram to get an audio file from
@@ -750,7 +753,7 @@ class Bot(TelegramObject):
constants in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in message text, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
duration (:obj:`int`, optional): Duration of sent audio in seconds.
performer (:obj:`str`, optional): Performer.
title (:obj:`str`, optional): Track name.
@@ -769,7 +772,7 @@ class Bot(TelegramObject):
:class:`ReplyKeyboardRemove` | :class:`ForceReply`, optional):
Additional interface options. An object for an inline keyboard, custom reply
keyboard, instructions to remove reply keyboard or to force a reply from the user.
- thumb (`filelike object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail
+ thumb (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail
of the file sent; can be ignored if
thumbnail generation for the file is supported server-side. The thumbnail should be
in JPEG format and less than 200 kB in size. A thumbnail's width and height should
@@ -854,7 +857,7 @@ class Bot(TelegramObject):
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
of the target channel (in the format ``@channelusername``).
- document (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ document (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Document`): File to send.
Pass a file_id as String to send a file that exists on the Telegram servers
(recommended), pass an HTTP URL as a String for Telegram to get a file from the
@@ -876,7 +879,7 @@ class Bot(TelegramObject):
constants in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in message text, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
disable_notification (:obj:`bool`, optional): Sends the message silently. Users will
receive a notification with no sound.
protect_content (:obj:`bool`, optional): Protects the contents of the sent message from
@@ -892,7 +895,7 @@ class Bot(TelegramObject):
:class:`ReplyKeyboardRemove` | :class:`ForceReply`, optional):
Additional interface options. An object for an inline keyboard, custom reply
keyboard, instructions to remove reply keyboard or to force a reply from the user.
- thumb (`filelike object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail
+ thumb (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail
of the file sent; can be ignored if
thumbnail generation for the file is supported server-side. The thumbnail should be
in JPEG format and less than 200 kB in size. A thumbnail's width and height should
@@ -963,7 +966,7 @@ class Bot(TelegramObject):
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
of the target channel (in the format ``@channelusername``).
- sticker (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ sticker (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Sticker`): Sticker to send.
Pass a file_id as String to send a file that exists on the Telegram servers
(recommended), pass an HTTP URL as a String for Telegram to get a .webp file from
@@ -1052,7 +1055,7 @@ class Bot(TelegramObject):
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
of the target channel (in the format ``@channelusername``).
- video (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ video (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Video`): Video file to send.
Pass a file_id as String to send an video file that exists on the Telegram servers
(recommended), pass an HTTP URL as a String for Telegram to get an video file from
@@ -1077,7 +1080,7 @@ class Bot(TelegramObject):
constants in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in message text, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
supports_streaming (:obj:`bool`, optional): Pass :obj:`True`, if the uploaded video is
suitable for streaming.
disable_notification (:obj:`bool`, optional): Sends the message silently. Users will
@@ -1095,7 +1098,7 @@ class Bot(TelegramObject):
:class:`ReplyKeyboardRemove` | :class:`ForceReply`, optional):
Additional interface options. An object for an inline keyboard, custom reply
keyboard, instructions to remove reply keyboard or to force a reply from the user.
- thumb (`filelike object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail
+ thumb (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail
of the file sent; can be ignored if
thumbnail generation for the file is supported server-side. The thumbnail should be
in JPEG format and less than 200 kB in size. A thumbnail's width and height should
@@ -1179,7 +1182,7 @@ class Bot(TelegramObject):
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
of the target channel (in the format ``@channelusername``).
- video_note (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ video_note (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.VideoNote`): Video note
to send. Pass a file_id as String to send a video note that exists on the Telegram
servers (recommended) or upload a new video using multipart/form-data. Or you can
@@ -1211,7 +1214,7 @@ class Bot(TelegramObject):
:class:`ReplyKeyboardRemove` | :class:`ForceReply`, optional):
Additional interface options. An object for an inline keyboard, custom reply
keyboard, instructions to remove reply keyboard or to force a reply from the user.
- thumb (`filelike object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail
+ thumb (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail
of the file sent; can be ignored if
thumbnail generation for the file is supported server-side. The thumbnail should be
in JPEG format and less than 200 kB in size. A thumbnail's width and height should
@@ -1290,7 +1293,7 @@ class Bot(TelegramObject):
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
of the target channel (in the format ``@channelusername``).
- animation (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ animation (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Animation`): Animation to
send. Pass a file_id as String to send an animation that exists on the Telegram
servers (recommended), pass an HTTP URL as a String for Telegram to get an
@@ -1307,7 +1310,7 @@ class Bot(TelegramObject):
duration (:obj:`int`, optional): Duration of sent animation in seconds.
width (:obj:`int`, optional): Animation width.
height (:obj:`int`, optional): Animation height.
- thumb (`filelike object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail
+ thumb (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail
of the file sent; can be ignored if
thumbnail generation for the file is supported server-side. The thumbnail should be
in JPEG format and less than 200 kB in size. A thumbnail's width and height should
@@ -1325,7 +1328,7 @@ class Bot(TelegramObject):
constants in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in message text, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
disable_notification (:obj:`bool`, optional): Sends the message silently. Users will
receive a notification with no sound.
protect_content (:obj:`bool`, optional): Protects the contents of the sent message from
@@ -1415,7 +1418,7 @@ class Bot(TelegramObject):
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
of the target channel (in the format ``@channelusername``).
- voice (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ voice (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Voice`): Voice file to send.
Pass a file_id as String to send an voice file that exists on the Telegram servers
(recommended), pass an HTTP URL as a String for Telegram to get an voice file from
@@ -1437,7 +1440,7 @@ class Bot(TelegramObject):
constants in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in message text, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
duration (:obj:`int`, optional): Duration of the voice message in seconds.
disable_notification (:obj:`bool`, optional): Sends the message silently. Users will
receive a notification with no sound.
@@ -1571,7 +1574,8 @@ class Bot(TelegramObject):
"""Use this method to send point on the map.
Note:
- You can either supply a :obj:`latitude` and :obj:`longitude` or a :obj:`location`.
+ You can either supply a :paramref:`latitude` and :paramref:`longitude` or a
+ :paramref:`location`.
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
@@ -1676,7 +1680,8 @@ class Bot(TelegramObject):
expires or editing is explicitly disabled by a call to :meth:`stop_message_live_location`.
Note:
- You can either supply a :obj:`latitude` and :obj:`longitude` or a :obj:`location`.
+ You can either supply a :paramref:`latitude` and :paramref:`longitude` or a
+ :paramref:`location`.
Args:
chat_id (:obj:`int` | :obj:`str`, optional): Required if inline_message_id is not
@@ -1819,10 +1824,11 @@ class Bot(TelegramObject):
"""Use this method to send information about a venue.
Note:
- * You can either supply :obj:`venue`, or :obj:`latitude`, :obj:`longitude`,
- :obj:`title` and :obj:`address` and optionally :obj:`foursquare_id` and
- :obj:`foursquare_type` or optionally :obj:`google_place_id` and
- :obj:`google_place_type`.
+ * You can either supply :paramref:`venue`, or :paramref:`latitude`,
+ :paramref:`longitude`,
+ :paramref:title` and :paramref:address` and optionally :paramref:`foursquare_id` and
+ :paramref:`foursquare_type` or optionally :paramref:`google_place_id` and
+ :paramref:`google_place_type`.
* Foursquare details and Google Place details are mutually exclusive. However, this
behaviour is undocumented and might be changed by Telegram.
@@ -1935,8 +1941,9 @@ class Bot(TelegramObject):
"""Use this method to send phone contacts.
Note:
- You can either supply :obj:`contact` or :obj:`phone_number` and :obj:`first_name`
- with optionally :obj:`last_name` and optionally :obj:`vcard`.
+ You can either supply :paramref:`contact` or :paramref:`phone_number` and
+ :paramref:`first_name` with optionally :paramref:`last_name` and optionally
+ :paramref:`vcard`.
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
@@ -2207,14 +2214,16 @@ class Bot(TelegramObject):
:tg-const:`telegram.InlineQuery.MAX_RESULTS` results per query are allowed.
Warning:
- In most use cases :attr:`current_offset` should not be passed manually. Instead of
+ In most use cases :paramref:`current_offset` should not be passed manually. Instead of
calling this method directly, use the shortcut :meth:`telegram.InlineQuery.answer` with
- ``auto_pagination=True``, which will take care of passing the correct value.
+ :paramref:`telegram.InlineQuery.answer.auto_pagination` set to :obj:`True`, which will
+ take care of passing the correct value.
Args:
inline_query_id (:obj:`str`): Unique identifier for the answered query.
results (List[:class:`telegram.InlineQueryResult`] | Callable): A list of results for
- the inline query. In case :attr:`current_offset` is passed, ``results`` may also be
+ the inline query. In case :paramref:`current_offset` is passed,
+ :paramref:`results` may also be
a callable that accepts the current page index starting from 0. It must return
either a list of :class:`telegram.InlineQueryResult` instances or :obj:`None` if
there are no more results.
@@ -2229,15 +2238,15 @@ class Bot(TelegramObject):
exceed 64 bytes.
switch_pm_text (:obj:`str`, optional): If passed, clients will display a button with
specified text that switches the user to a private chat with the bot and sends the
- bot a start message with the parameter ``switch_pm_parameter``.
- switch_pm_parameter (:obj:`str`, optional): Deep-linking parameter for the /start
- message sent to the bot when user presses the switch button.
+ bot a start message with the parameter :paramref:`switch_pm_parameter`.
+ switch_pm_parameter (:obj:`str`, optional): Deep-linking parameter for the
+ :guilabel:`/start` message sent to the bot when user presses the switch button.
1-:tg-const:`telegram.InlineQuery.MAX_SWITCH_PM_TEXT_LENGTH` characters,
- only A-Z, a-z, 0-9, _ and - are allowed.
+ only ``A-Z``, ``a-z``, ``0-9``, ``_`` and ``-`` are allowed.
current_offset (:obj:`str`, optional): The :attr:`telegram.InlineQuery.offset` of
the inline query to answer. If passed, PTB will automatically take care of
- the pagination for you, i.e. pass the correct ``next_offset`` and truncate the
- results list/get the results from the callable you passed.
+ the pagination for you, i.e. pass the correct :paramref:`next_offset` and truncate
+ the results list/get the results from the callable you passed.
timeout (:obj:`int` | :obj:`float`, optional): If this value is specified, use it as
the read timeout from the server (instead of the one specified during creation of
the connection pool).
@@ -2504,7 +2513,7 @@ class Bot(TelegramObject):
via link, etc. The bot must be an administrator for this to work. By default, this method
guarantees that after the call the user is not a member of the chat, but will be able to
join it. So if the user is a member of the chat they will also be *removed* from the chat.
- If you don't want this, use the parameter :attr:`only_if_banned`.
+ If you don't want this, use the parameter :paramref:`only_if_banned`.
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
@@ -2666,7 +2675,8 @@ class Bot(TelegramObject):
show bold, italic, fixed-width text or inline URLs in your bot's message. See the
constants in :class:`telegram.constants.ParseMode` for the available modes.
entities (List[:class:`telegram.MessageEntity`], optional): List of special entities
- that appear in message text, which can be specified instead of :attr:`parse_mode`.
+ that appear in message text, which can be specified instead of
+ :paramref:`parse_mode`.
disable_web_page_preview (:obj:`bool`, optional): Disables link previews for links in
this message.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): An object for an
@@ -2740,7 +2750,7 @@ class Bot(TelegramObject):
constants in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in message text, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): An object for an
inline keyboard.
timeout (:obj:`int` | :obj:`float`, optional): If this value is specified, use it as
@@ -3023,7 +3033,7 @@ class Bot(TelegramObject):
Args:
url (:obj:`str`): HTTPS url to send updates to. Use an empty string to remove webhook
integration.
- certificate (:obj:`filelike`): Upload your public key certificate so that the root
+ certificate (:term:`file object`): Upload your public key certificate so that the root
certificate in use can be checked. See our self-signed guide for details.
(https://goo.gl/rw7w6Y)
ip_address (:obj:`str`, optional): The fixed IP address which will be used to send
@@ -3056,7 +3066,7 @@ class Bot(TelegramObject):
using certificate parameter. Please upload as InputFile, sending a String will not
work.
3. Ports currently supported for Webhooks:
- :attr:`telegram.constants.SUPPORTED_WEBHOOK_PORTS`.
+ :attr:`telegram.constants.SUPPORTED_WEBHOOK_PORTS`.
If you're having any trouble setting up webhooks, please check out this `guide to
Webhooks`_.
@@ -3527,12 +3537,12 @@ class Bot(TelegramObject):
"""Use this method to send invoices.
Warning:
- As of API 5.2 :attr:`start_parameter` is an optional argument and therefore the order
- of the arguments had to be changed. Use keyword arguments to make sure that the
+ As of API 5.2 :paramref:`start_parameter` is an optional argument and therefore the
+ order of the arguments had to be changed. Use keyword arguments to make sure that the
arguments are passed correctly.
.. versionchanged:: 13.5
- As of Bot API 5.2, the parameter :attr:`start_parameter` is optional.
+ As of Bot API 5.2, the parameter :paramref:`start_parameter` is optional.
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
@@ -3690,8 +3700,8 @@ class Bot(TelegramObject):
"""
If you sent an invoice requesting a shipping address and the parameter ``is_flexible`` was
specified, the Bot API will send an :class:`telegram.Update` with a
- :attr:`Update.shipping_query` field to the bot. Use this method to reply to shipping
- queries.
+ :attr:`telegram.Update.shipping_query` field to the bot. Use this method to reply to
+ shipping queries.
Args:
shipping_query_id (:obj:`str`): Unique identifier for the query to be answered.
@@ -3758,7 +3768,8 @@ class Bot(TelegramObject):
"""
Once the user has confirmed their payment and shipping details, the Bot API sends the final
confirmation in the form of an :class:`telegram.Update` with the field
- :attr:`Update.pre_checkout_query`. Use this method to respond to such pre-checkout queries.
+ :attr:`telegram.Update.pre_checkout_query`. Use this method to respond to such pre-checkout
+ queries.
Note:
The Bot API must receive an answer within 10 seconds after the pre-checkout
@@ -3975,7 +3986,7 @@ class Bot(TelegramObject):
"""
Use this method to set default chat permissions for all members. The bot must be an
administrator in the group or a supergroup for this to work and must have the
- :attr:`telegram.ChatMember.can_restrict_members` admin rights.
+ :attr:`telegram.ChatMemberAdministrator.can_restrict_members` admin rights.
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username of
@@ -4372,7 +4383,7 @@ class Bot(TelegramObject):
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
of the target channel (in the format ``@channelusername``).
- photo (`filelike object` | :obj:`bytes` | :class:`pathlib.Path`): New chat photo.
+ photo (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path`): New chat photo.
.. versionchanged:: 13.2
Accept :obj:`bytes` as input.
@@ -4516,8 +4527,8 @@ class Bot(TelegramObject):
"""
Use this method to add a message to the list of pinned messages in a chat. If the
chat is not a private chat, the bot must be an administrator in the chat for this to work
- and must have the :attr:`telegram.ChatMember.can_pin_messages` admin right in a supergroup
- or :attr:`telegram.ChatMember.can_edit_messages` admin right in a channel.
+ and must have the ``can_pin_messages`` admin right in a supergroup
+ or :attr:`telegram.ChatMemberAdministrator.can_edit_messages` admin right in a channel.
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
@@ -4560,8 +4571,9 @@ class Bot(TelegramObject):
"""
Use this method to remove a message from the list of pinned messages in a chat. If the
chat is not a private chat, the bot must be an administrator in the chat for this to work
- and must have the :attr:`telegram.ChatMember.can_pin_messages` admin right in a
- supergroup or :attr:`telegram.ChatMember.can_edit_messages` admin right in a channel.
+ and must have the ``can_pin_messages`` admin right in a
+ supergroup or :attr:`telegram.ChatMemberAdministrator.can_edit_messages` admin right in a
+ channel.
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
@@ -4600,8 +4612,9 @@ class Bot(TelegramObject):
"""
Use this method to clear the list of pinned messages in a chat. If the
chat is not a private chat, the bot must be an administrator in the chat for this
- to work and must have the :attr:`telegram.ChatMember.can_pin_messages` admin right in a
- supergroup or :attr:`telegram.ChatMember.can_edit_messages` admin right in a channel.
+ to work and must have the ``can_pin_messages`` admin right in a
+ supergroup or :attr:`telegram.ChatMemberAdministrator.can_edit_messages` admin right in a
+ channel.
Args:
chat_id (:obj:`int` | :obj:`str`): Unique identifier for the target chat or username
@@ -4674,7 +4687,7 @@ class Bot(TelegramObject):
Args:
user_id (:obj:`int`): User identifier of sticker file owner.
- png_sticker (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path`):
+ png_sticker (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path`):
**PNG** image with the sticker, must be up to 512 kilobytes in size,
dimensions must not exceed 512px, and either width or height must be exactly 512px.
@@ -4737,7 +4750,7 @@ class Bot(TelegramObject):
must end in "_by_". is case insensitive.
1-64 characters.
title (:obj:`str`): Sticker set title, 1-64 characters.
- png_sticker (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path`, \
+ png_sticker (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, \
optional): **PNG** image with the sticker,
must be up to 512 kilobytes in size, dimensions must not exceed 512px,
and either width or height must be exactly 512px. Pass a file_id as a String to
@@ -4747,7 +4760,7 @@ class Bot(TelegramObject):
.. versionchanged:: 13.2
Accept :obj:`bytes` as input.
- tgs_sticker (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path`, \
+ tgs_sticker (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, \
optional): **TGS** animation with the sticker, uploaded using multipart/form-data.
See https://core.telegram.org/stickers#animated-sticker-requirements for technical
requirements.
@@ -4831,7 +4844,7 @@ class Bot(TelegramObject):
user_id (:obj:`int`): User identifier of created sticker set owner.
name (:obj:`str`): Sticker set name.
- png_sticker (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path`, \
+ png_sticker (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, \
optional): **PNG** image with the sticker,
must be up to 512 kilobytes in size, dimensions must not exceed 512px,
and either width or height must be exactly 512px. Pass a file_id as a String to
@@ -4841,7 +4854,7 @@ class Bot(TelegramObject):
.. versionchanged:: 13.2
Accept :obj:`bytes` as input.
- tgs_sticker (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path`, \
+ tgs_sticker (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, \
optional): **TGS** animation with the sticker, uploaded using multipart/form-data.
See https://core.telegram.org/stickers#animated-sticker-requirements for technical
requirements.
@@ -4970,7 +4983,7 @@ class Bot(TelegramObject):
Args:
name (:obj:`str`): Sticker set name
user_id (:obj:`int`): User identifier of created sticker set owner.
- thumb (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path`, \
+ thumb (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, \
optional): A **PNG** image with the thumbnail, must
be up to 128 kilobytes in size and have width and height exactly 100px, or a
**TGS** animation with the thumbnail up to 32 kilobytes in size; see
@@ -5099,13 +5112,13 @@ class Bot(TelegramObject):
available modes.
explanation_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in message text, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
open_period (:obj:`int`, optional): Amount of time in seconds the poll will be active
- after creation, 5-600. Can't be used together with :attr:`close_date`.
+ after creation, 5-600. Can't be used together with :paramref:`close_date`.
close_date (:obj:`int` | :obj:`datetime.datetime`, optional): Point in time (Unix
timestamp) when the poll will be automatically closed. Must be at least 5 and no
more than 600 seconds in the future. Can't be used together with
- :attr:`open_period`.
+ :paramref:`open_period`.
For timezone naive :obj:`datetime.datetime` objects, the default timezone of the
bot will be used.
is_closed (:obj:`bool`, optional): Pass :obj:`True`, if the poll needs to be
diff --git a/telegram/_callbackquery.py b/telegram/_callbackquery.py
index 60abd5b7a..6f65589cb 100644
--- a/telegram/_callbackquery.py
+++ b/telegram/_callbackquery.py
@@ -47,13 +47,14 @@ class CallbackQuery(TelegramObject):
considered equal, if their :attr:`id` is equal.
Note:
- * In Python :keyword:`from` is a reserved word, use ``from_user`` instead.
+ * In Python :keyword:`from` is a reserved word, :paramref:`from_user`
* Exactly one of the fields :attr:`data` or :attr:`game_short_name` will be present.
* After the user presses an inline button, Telegram clients will display a progress bar
until you call :attr:`answer`. It is, therefore, necessary to react
by calling :attr:`telegram.Bot.answer_callback_query` even if no notification to the user
is needed (e.g., without specifying any of the optional parameters).
- * If you're using :attr:`Bot.arbitrary_callback_data`, :attr:`data` may be an instance
+ * If you're using :attr:`telegram.ext.ExtBot.arbitrary_callback_data`, :attr:`data` may be
+ an instance
of :class:`telegram.ext.InvalidCallbackData`. This will be the case, if the data
associated with the button triggering the :class:`telegram.CallbackQuery` was already
deleted or if :attr:`data` was manipulated by a malicious client.
@@ -520,7 +521,8 @@ class CallbackQuery(TelegramObject):
*args, **kwargs)
For the documentation of the arguments, please see
- :meth:`telegram.Bot.get_game_high_scores` and :meth:`telegram.Message.get_game_high_score`.
+ :meth:`telegram.Bot.get_game_high_scores` and
+ :meth:`telegram.Message.get_game_high_scores`.
Returns:
List[:class:`telegram.GameHighScore`]
diff --git a/telegram/_chat.py b/telegram/_chat.py
index 8eda5ec35..aa2b44418 100644
--- a/telegram/_chat.py
+++ b/telegram/_chat.py
@@ -1110,12 +1110,12 @@ class Chat(TelegramObject):
For the documentation of the arguments, please see :meth:`telegram.Bot.send_invoice`.
Warning:
- As of API 5.2 :attr:`start_parameter` is an optional argument and therefore the order
- of the arguments had to be changed. Use keyword arguments to make sure that the
+ As of API 5.2 :paramref:`start_parameter` is an optional argument and therefore the
+ order of the arguments had to be changed. Use keyword arguments to make sure that the
arguments are passed correctly.
.. versionchanged:: 13.5
- As of Bot API 5.2, the parameter :attr:`start_parameter` is optional.
+ As of Bot API 5.2, the parameter :paramref:`start_parameter` is optional.
Returns:
:class:`telegram.Message`: On success, instance representing the message posted.
diff --git a/telegram/_chatmemberupdated.py b/telegram/_chatmemberupdated.py
index 32f5fe112..1944f4527 100644
--- a/telegram/_chatmemberupdated.py
+++ b/telegram/_chatmemberupdated.py
@@ -38,7 +38,7 @@ class ChatMemberUpdated(TelegramObject):
.. versionadded:: 13.4
Note:
- In Python :keyword:`from` is a reserved word, use ``from_user`` instead.
+ In Python :keyword:`from` is a reserved word, :paramref:`from_user`
Args:
chat (:class:`telegram.Chat`): Chat the user belongs to.
@@ -148,8 +148,8 @@ class ChatMemberUpdated(TelegramObject):
.. versionadded:: 13.5
Returns:
- Dict[:obj:`str`, Tuple[:obj:`obj`, :obj:`obj`]]: A dictionary mapping attribute names
- to tuples of the form ``(old_value, new_value)``
+ Dict[:obj:`str`, Tuple[:class:`object`, :class:`object`]]: A dictionary mapping
+ attribute names to tuples of the form ``(old_value, new_value)``
"""
# we first get the names of the attributes that have changed
# user.to_dict() is unhashable, so that needs some special casing further down
diff --git a/telegram/_choseninlineresult.py b/telegram/_choseninlineresult.py
index 9aef361a1..bc3bdf8a0 100644
--- a/telegram/_choseninlineresult.py
+++ b/telegram/_choseninlineresult.py
@@ -37,7 +37,7 @@ class ChosenInlineResult(TelegramObject):
considered equal, if their :attr:`result_id` is equal.
Note:
- * In Python :keyword:`from` is a reserved word, use ``from_user`` instead.
+ * In Python :keyword:`from` is a reserved word, :paramref:`from_user`
* It is necessary to enable inline feedback via `@Botfather `_ in
order to receive these objects in updates.
diff --git a/telegram/_files/file.py b/telegram/_files/file.py
index c1fe7ce02..ebf553044 100644
--- a/telegram/_files/file.py
+++ b/telegram/_files/file.py
@@ -102,24 +102,24 @@ class File(TelegramObject):
"""
Download this file. By default, the file is saved in the current working directory with its
original filename as reported by Telegram. If the file has no filename, it the file ID will
- be used as filename. If a :attr:`custom_path` is supplied, it will be saved to that path
- instead. If :attr:`out` is defined, the file contents will be saved to that object using
- the ``out.write`` method.
+ be used as filename. If a :paramref:`custom_path` is supplied, it will be saved to that
+ path instead. If :paramref:`out` is defined, the file contents will be saved to that object
+ using the ``out.write`` method.
Note:
- * :attr:`custom_path` and :attr:`out` are mutually exclusive.
- * If neither :attr:`custom_path` nor :attr:`out` is provided and :attr:`file_path` is
- the path of a local file (which is the case when a Bot API Server is running in
- local mode), this method will just return the path.
+ * :paramref:`custom_path` and :paramref:`out` are mutually exclusive.
+ * If neither :paramref:`custom_path` nor :paramref:`out` is provided and
+ :attr:`file_path` is the path of a local file (which is the case when a Bot API
+ Server is running in local mode), this method will just return the path.
.. versionchanged:: 14.0
- * ``custom_path`` parameter now also accepts :obj:`pathlib.Path` as argument.
- * Returns :obj:`pathlib.Path` object in cases where previously a :obj:`str` was
+ * :paramref:`custom_path` parameter now also accepts :class:`pathlib.Path` as argument.
+ * Returns :class:`pathlib.Path` object in cases where previously a :obj:`str` was
returned.
Args:
- custom_path (:obj:`pathlib.Path` | :obj:`str`, optional): Custom path.
+ custom_path (:class:`pathlib.Path` | :obj:`str`, optional): Custom path.
out (:obj:`io.BufferedWriter`, optional): A file-like object. Must be opened for
writing in binary mode, if applicable.
timeout (:obj:`int` | :obj:`float`, optional): If this value is specified, use it as
@@ -127,12 +127,12 @@ class File(TelegramObject):
the connection pool).
Returns:
- :obj:`pathlib.Path` | :obj:`io.BufferedWriter`: The same object as :attr:`out` if
+ :class:`pathlib.Path` | :obj:`io.BufferedWriter`: The same object as :paramref:`out` if
specified. Otherwise, returns the filename downloaded to or the file path of the
local file.
Raises:
- ValueError: If both :attr:`custom_path` and :attr:`out` are passed.
+ ValueError: If both :paramref:`custom_path` and :paramref:`out` are passed.
"""
if custom_path is not None and out is not None:
@@ -184,15 +184,15 @@ class File(TelegramObject):
)
)
- def download_as_bytearray(self, buf: bytearray = None) -> bytes:
+ def download_as_bytearray(self, buf: bytearray = None) -> bytearray:
"""Download this file and return it as a bytearray.
Args:
buf (:obj:`bytearray`, optional): Extend the given bytearray with the downloaded data.
Returns:
- :obj:`bytearray`: The same object as :attr:`buf` if it was specified. Otherwise a newly
- allocated :obj:`bytearray`.
+ :obj:`bytearray`: The same object as :paramref:`buf` if it was specified. Otherwise a
+ newly allocated :obj:`bytearray`.
"""
if buf is None:
diff --git a/telegram/_files/inputfile.py b/telegram/_files/inputfile.py
index cffae12c4..5ecdee048 100644
--- a/telegram/_files/inputfile.py
+++ b/telegram/_files/inputfile.py
@@ -34,7 +34,7 @@ class InputFile:
"""This object represents a Telegram InputFile.
Args:
- obj (:obj:`File handler` | :obj:`bytes`): An open file descriptor or the files content as
+ obj (:term:`file object` | :obj:`bytes`): An open file descriptor or the files content as
bytes.
filename (:obj:`str`, optional): Filename for this InputFile.
attach (:obj:`bool`, optional): Whether this should be send as one file or is part of a
diff --git a/telegram/_files/inputmedia.py b/telegram/_files/inputmedia.py
index c20909b7a..de64239af 100644
--- a/telegram/_files/inputmedia.py
+++ b/telegram/_files/inputmedia.py
@@ -43,12 +43,12 @@ class InputMedia(TelegramObject):
Base class for Telegram InputMedia Objects.
.. versionchanged:: 14.0:
- Added arguments and attributes :attr:`media_type`, :attr:`media`, :attr:`caption`,
- :attr:`caption_entities`, :attr:`parse_mode`.
+ Added arguments and attributes :attr:`type`, :attr:`media`, :attr:`caption`,
+ :attr:`caption_entities`, :paramref:`parse_mode`.
Args:
media_type (:obj:`str`) Type of media that the instance represents.
- media (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ media (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Animation` | :class:`telegram.Audio` | \
:class:`telegram.Document` | :class:`telegram.PhotoSize` | \
:class:`telegram.Video`):
@@ -114,7 +114,7 @@ class InputMediaAnimation(InputMedia):
arguments.
Args:
- media (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ media (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Animation`): File to send. Pass a
file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP
URL for Telegram to get a file from the Internet. Lastly you can pass an existing
@@ -127,7 +127,7 @@ class InputMediaAnimation(InputMedia):
:obj:`tempfile` module.
.. versionadded:: 13.1
- thumb (`filelike object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail of
+ thumb (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail of
the file sent; can be ignored if
thumbnail generation for the file is supported server-side. The thumbnail should be
in JPEG format and less than 200 kB in size. A thumbnail's width and height should
@@ -195,7 +195,7 @@ class InputMediaPhoto(InputMedia):
"""Represents a photo to be sent.
Args:
- media (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ media (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.PhotoSize`): File to send. Pass a
file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP
URL for Telegram to get a file from the Internet. Lastly you can pass an existing
@@ -253,7 +253,7 @@ class InputMediaVideo(InputMedia):
by Telegram.
Args:
- media (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ media (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Video`): File to send. Pass a
file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP
URL for Telegram to get a file from the Internet. Lastly you can pass an existing
@@ -279,7 +279,7 @@ class InputMediaVideo(InputMedia):
duration (:obj:`int`, optional): Video duration in seconds.
supports_streaming (:obj:`bool`, optional): Pass :obj:`True`, if the uploaded video is
suitable for streaming.
- thumb (`filelike object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail of
+ thumb (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail of
the file sent; can be ignored if
thumbnail generation for the file is supported server-side. The thumbnail should be
in JPEG format and less than 200 kB in size. A thumbnail's width and height should
@@ -346,7 +346,7 @@ class InputMediaAudio(InputMedia):
optional arguments.
Args:
- media (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ media (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Audio`):
File to send. Pass a
file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP
@@ -372,7 +372,7 @@ class InputMediaAudio(InputMedia):
performer (:obj:`str`, optional): Performer of the audio as defined by sender or by audio
tags.
title (:obj:`str`, optional): Title of the audio as defined by sender or by audio tags.
- thumb (`filelike object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail of
+ thumb (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail of
the file sent; can be ignored if
thumbnail generation for the file is supported server-side. The thumbnail should be
in JPEG format and less than 200 kB in size. A thumbnail's width and height should
@@ -430,7 +430,7 @@ class InputMediaDocument(InputMedia):
"""Represents a general file to be sent.
Args:
- media (:obj:`str` | `filelike object` | :obj:`bytes` | :class:`pathlib.Path` | \
+ media (:obj:`str` | :term:`file object` | :obj:`bytes` | :class:`pathlib.Path` | \
:class:`telegram.Document`): File to send. Pass a
file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP
URL for Telegram to get a file from the Internet. Lastly you can pass an existing
@@ -451,7 +451,7 @@ class InputMediaDocument(InputMedia):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of parse_mode.
- thumb (`filelike object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail of
+ thumb (:term:`file object` | :obj:`bytes` | :class:`pathlib.Path`, optional): Thumbnail of
the file sent; can be ignored if
thumbnail generation for the file is supported server-side. The thumbnail should be
in JPEG format and less than 200 kB in size. A thumbnail's width and height should
diff --git a/telegram/_files/sticker.py b/telegram/_files/sticker.py
index 60772694f..6397b0027 100644
--- a/telegram/_files/sticker.py
+++ b/telegram/_files/sticker.py
@@ -60,7 +60,7 @@ class Sticker(_BaseThumbedMedium):
position where the mask should be placed.
file_size (:obj:`int`, optional): File size in bytes.
bot (:class:`telegram.Bot`, optional): The Bot to use for instance methods.
- **kwargs (obj:`dict`): Arbitrary keyword arguments.
+ _kwargs (:obj:`dict`): Arbitrary keyword arguments.
Attributes:
file_id (:obj:`str`): Identifier for this file.
diff --git a/telegram/_inline/inlinekeyboardbutton.py b/telegram/_inline/inlinekeyboardbutton.py
index 0d7be562f..6b0886dbd 100644
--- a/telegram/_inline/inlinekeyboardbutton.py
+++ b/telegram/_inline/inlinekeyboardbutton.py
@@ -66,9 +66,9 @@ class InlineKeyboardButton(TelegramObject):
You can now mention a user using ``tg://user?id=``.
login_url (:class:`telegram.LoginUrl`, optional): An HTTP URL used to automatically
authorize the user. Can be used as a replacement for the Telegram Login Widget.
- callback_data (:obj:`str` | :obj:`Any`, optional): Data to be sent in a callback query to
- the bot when button is pressed, UTF-8 1-64 bytes. If the bot instance allows arbitrary
- callback data, anything can be passed.
+ callback_data (:obj:`str` | :obj:`object`, optional): Data to be sent in a callback query
+ to the bot when button is pressed, UTF-8 1-64 bytes. If the bot instance allows
+ arbitrary callback data, anything can be passed.
switch_inline_query (:obj:`str`, optional): If set, pressing the button will prompt the
user to select one of their chats, open that chat and insert the bot's username and the
specified inline query in the input field. Can be empty, in which case just the bot's
@@ -170,7 +170,7 @@ class InlineKeyboardButton(TelegramObject):
.. versionadded:: 13.6
Args:
- callback_data (:obj:`obj`): The new callback data.
+ callback_data (:class:`object`): The new callback data.
"""
self.callback_data = callback_data
self._set_id_attrs()
diff --git a/telegram/_inline/inlinequery.py b/telegram/_inline/inlinequery.py
index 970893037..c84f1a15d 100644
--- a/telegram/_inline/inlinequery.py
+++ b/telegram/_inline/inlinequery.py
@@ -38,7 +38,7 @@ class InlineQuery(TelegramObject):
considered equal, if their :attr:`id` is equal.
Note:
- In Python :keyword:`from` is a reserved word, use ``from_user`` instead.
+ In Python :keyword:`from` is a reserved word, :paramref:`from_user`
Args:
id (:obj:`str`): Unique identifier for this query.
@@ -142,11 +142,13 @@ class InlineQuery(TelegramObject):
Args:
auto_pagination (:obj:`bool`, optional): If set to :obj:`True`, :attr:`offset` will be
- passed as :attr:`current_offset` to :meth:`telegram.Bot.answer_inline_query`.
+ passed as :paramref:`current_offset` to :meth:`telegram.Bot.answer_inline_query`.
Defaults to :obj:`False`.
Raises:
- ValueError: If both :attr:`current_offset` and :attr:`auto_pagination` are supplied.
+ ValueError: If both
+ :paramref:`~telegram.Bot.answer_inline_query.current_offset` and
+ :paramref:`auto_pagination` are supplied.
"""
if current_offset and auto_pagination:
raise ValueError('current_offset and auto_pagination are mutually exclusive!')
diff --git a/telegram/_inline/inlinequeryresultaudio.py b/telegram/_inline/inlinequeryresultaudio.py
index 3ae57f779..2a102c709 100644
--- a/telegram/_inline/inlinequeryresultaudio.py
+++ b/telegram/_inline/inlinequeryresultaudio.py
@@ -49,7 +49,7 @@ class InlineQueryResultAudio(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -71,7 +71,7 @@ class InlineQueryResultAudio(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultcachedaudio.py b/telegram/_inline/inlinequeryresultcachedaudio.py
index f21c520b5..f87d275d9 100644
--- a/telegram/_inline/inlinequeryresultcachedaudio.py
+++ b/telegram/_inline/inlinequeryresultcachedaudio.py
@@ -46,7 +46,7 @@ class InlineQueryResultCachedAudio(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -65,7 +65,7 @@ class InlineQueryResultCachedAudio(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultcacheddocument.py b/telegram/_inline/inlinequeryresultcacheddocument.py
index e2c2d3d80..ccc920d2f 100644
--- a/telegram/_inline/inlinequeryresultcacheddocument.py
+++ b/telegram/_inline/inlinequeryresultcacheddocument.py
@@ -49,7 +49,7 @@ class InlineQueryResultCachedDocument(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -70,7 +70,7 @@ class InlineQueryResultCachedDocument(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultcachedgif.py b/telegram/_inline/inlinequeryresultcachedgif.py
index 2e6f373ba..f6ff42b97 100644
--- a/telegram/_inline/inlinequeryresultcachedgif.py
+++ b/telegram/_inline/inlinequeryresultcachedgif.py
@@ -48,7 +48,7 @@ class InlineQueryResultCachedGif(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -68,7 +68,7 @@ class InlineQueryResultCachedGif(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultcachedmpeg4gif.py b/telegram/_inline/inlinequeryresultcachedmpeg4gif.py
index 1425e2478..360e54aed 100644
--- a/telegram/_inline/inlinequeryresultcachedmpeg4gif.py
+++ b/telegram/_inline/inlinequeryresultcachedmpeg4gif.py
@@ -48,7 +48,7 @@ class InlineQueryResultCachedMpeg4Gif(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -68,7 +68,7 @@ class InlineQueryResultCachedMpeg4Gif(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultcachedphoto.py b/telegram/_inline/inlinequeryresultcachedphoto.py
index e5dcb0352..852fab799 100644
--- a/telegram/_inline/inlinequeryresultcachedphoto.py
+++ b/telegram/_inline/inlinequeryresultcachedphoto.py
@@ -50,7 +50,7 @@ class InlineQueryResultCachedPhoto(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -71,7 +71,7 @@ class InlineQueryResultCachedPhoto(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultcachedvideo.py b/telegram/_inline/inlinequeryresultcachedvideo.py
index 5f96f5e1c..ca65ff337 100644
--- a/telegram/_inline/inlinequeryresultcachedvideo.py
+++ b/telegram/_inline/inlinequeryresultcachedvideo.py
@@ -49,7 +49,7 @@ class InlineQueryResultCachedVideo(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -70,7 +70,7 @@ class InlineQueryResultCachedVideo(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultcachedvoice.py b/telegram/_inline/inlinequeryresultcachedvoice.py
index 7bfaae65d..2a2f2f8cd 100644
--- a/telegram/_inline/inlinequeryresultcachedvoice.py
+++ b/telegram/_inline/inlinequeryresultcachedvoice.py
@@ -47,7 +47,7 @@ class InlineQueryResultCachedVoice(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -67,7 +67,7 @@ class InlineQueryResultCachedVoice(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultdocument.py b/telegram/_inline/inlinequeryresultdocument.py
index 254da76d6..c1164f997 100644
--- a/telegram/_inline/inlinequeryresultdocument.py
+++ b/telegram/_inline/inlinequeryresultdocument.py
@@ -47,7 +47,7 @@ class InlineQueryResultDocument(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
document_url (:obj:`str`): A valid URL for the file.
mime_type (:obj:`str`): Mime type of the content of the file, either "application/pdf"
or "application/zip".
@@ -73,7 +73,7 @@ class InlineQueryResultDocument(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
document_url (:obj:`str`): A valid URL for the file.
mime_type (:obj:`str`): Mime type of the content of the file, either "application/pdf"
or "application/zip".
diff --git a/telegram/_inline/inlinequeryresultgif.py b/telegram/_inline/inlinequeryresultgif.py
index 0868e4747..7d1849ee5 100644
--- a/telegram/_inline/inlinequeryresultgif.py
+++ b/telegram/_inline/inlinequeryresultgif.py
@@ -55,7 +55,7 @@ class InlineQueryResultGif(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -81,7 +81,7 @@ class InlineQueryResultGif(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultmpeg4gif.py b/telegram/_inline/inlinequeryresultmpeg4gif.py
index 54febebcd..8105e9808 100644
--- a/telegram/_inline/inlinequeryresultmpeg4gif.py
+++ b/telegram/_inline/inlinequeryresultmpeg4gif.py
@@ -54,7 +54,7 @@ class InlineQueryResultMpeg4Gif(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -80,7 +80,7 @@ class InlineQueryResultMpeg4Gif(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultphoto.py b/telegram/_inline/inlinequeryresultphoto.py
index d2b095143..1487122fa 100644
--- a/telegram/_inline/inlinequeryresultphoto.py
+++ b/telegram/_inline/inlinequeryresultphoto.py
@@ -52,7 +52,7 @@ class InlineQueryResultPhoto(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`, optional): Content of the
@@ -77,7 +77,7 @@ class InlineQueryResultPhoto(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
input_message_content (:class:`telegram.InputMessageContent`): Optional. Content of the
diff --git a/telegram/_inline/inlinequeryresultvideo.py b/telegram/_inline/inlinequeryresultvideo.py
index 1d6852cdc..edc71a3b0 100644
--- a/telegram/_inline/inlinequeryresultvideo.py
+++ b/telegram/_inline/inlinequeryresultvideo.py
@@ -54,7 +54,7 @@ class InlineQueryResultVideo(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
video_width (:obj:`int`, optional): Video width.
video_height (:obj:`int`, optional): Video height.
video_duration (:obj:`int`, optional): Video duration in seconds.
@@ -82,7 +82,7 @@ class InlineQueryResultVideo(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
video_width (:obj:`int`): Optional. Video width.
video_height (:obj:`int`): Optional. Video height.
video_duration (:obj:`int`): Optional. Video duration in seconds.
diff --git a/telegram/_inline/inlinequeryresultvoice.py b/telegram/_inline/inlinequeryresultvoice.py
index bf3824551..3caec7385 100644
--- a/telegram/_inline/inlinequeryresultvoice.py
+++ b/telegram/_inline/inlinequeryresultvoice.py
@@ -48,7 +48,7 @@ class InlineQueryResultVoice(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
voice_duration (:obj:`int`, optional): Recording duration in seconds.
reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
to the message.
@@ -69,7 +69,7 @@ class InlineQueryResultVoice(InlineQueryResult):
in :class:`telegram.constants.ParseMode` for the available modes.
caption_entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
voice_duration (:obj:`int`): Optional. Recording duration in seconds.
reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
to the message.
diff --git a/telegram/_inline/inputtextmessagecontent.py b/telegram/_inline/inputtextmessagecontent.py
index f378d8fc2..23a038c9b 100644
--- a/telegram/_inline/inputtextmessagecontent.py
+++ b/telegram/_inline/inputtextmessagecontent.py
@@ -41,7 +41,7 @@ class InputTextMessageContent(InputMessageContent):
in :class:`telegram.constants.ParseMode` for the available modes.
entities (List[:class:`telegram.MessageEntity`], optional): List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
disable_web_page_preview (:obj:`bool`, optional): Disables link previews for links in the
sent message.
**kwargs (:obj:`dict`): Arbitrary keyword arguments.
@@ -55,7 +55,7 @@ class InputTextMessageContent(InputMessageContent):
in :class:`telegram.constants.ParseMode` for the available modes.
entities (List[:class:`telegram.MessageEntity`]): Optional. List of special
entities that appear in the caption, which can be specified instead of
- :attr:`parse_mode`.
+ :paramref:`parse_mode`.
disable_web_page_preview (:obj:`bool`): Optional. Disables link previews for links in the
sent message.
diff --git a/telegram/_message.py b/telegram/_message.py
index 48de2493f..ff90df8d6 100644
--- a/telegram/_message.py
+++ b/telegram/_message.py
@@ -81,7 +81,7 @@ class Message(TelegramObject):
considered equal, if their :attr:`message_id` and :attr:`chat` are equal.
Note:
- In Python :keyword:`from` is a reserved word, use ``from_user`` instead.
+ In Python :keyword:`from` is a reserved word, :paramref:`from_user`
Args:
message_id (:obj:`int`): Unique message identifier inside this chat.
@@ -305,7 +305,7 @@ class Message(TelegramObject):
the specified identifier.
migrate_from_chat_id (:obj:`int`): Optional. The supergroup has been migrated from a group
with the specified identifier.
- pinned_message (:class:`telegram.message`): Optional. Specified message was pinned.
+ pinned_message (:class:`telegram.Message`): Optional. Specified message was pinned.
invoice (:class:`telegram.Invoice`): Optional. Information about the invoice.
successful_payment (:class:`telegram.SuccessfulPayment`): Optional. Information about the
payment.
@@ -1761,14 +1761,14 @@ class Message(TelegramObject):
For the documentation of the arguments, please see :meth:`telegram.Bot.send_invoice`.
Warning:
- As of API 5.2 :attr:`start_parameter` is an optional argument and therefore the order
- of the arguments had to be changed. Use keyword arguments to make sure that the
+ As of API 5.2 :paramref:`start_parameter` is an optional argument and therefore the
+ order of the arguments had to be changed. Use keyword arguments to make sure that the
arguments are passed correctly.
.. versionadded:: 13.2
.. versionchanged:: 13.5
- As of Bot API 5.2, the parameter :attr:`start_parameter` is optional.
+ As of Bot API 5.2, the parameter :paramref:`start_parameter` is optional.
Args:
quote (:obj:`bool`, optional): If set to :obj:`True`, the invoice is sent as an actual
diff --git a/telegram/_passport/credentials.py b/telegram/_passport/credentials.py
index ef2f9e216..478f3f9a5 100644
--- a/telegram/_passport/credentials.py
+++ b/telegram/_passport/credentials.py
@@ -159,7 +159,7 @@ class EncryptedCredentials(TelegramObject):
:obj:`str`: Lazily decrypt and return secret.
Raises:
- telegram.PassportDecryptionError: Decryption failed. Usually due to bad
+ telegram.error.PassportDecryptionError: Decryption failed. Usually due to bad
private/public key but can also suggest malformed/tampered data.
"""
if self._decrypted_secret is None:
@@ -192,7 +192,7 @@ class EncryptedCredentials(TelegramObject):
`decrypted_data.nonce`.
Raises:
- telegram.PassportDecryptionError: Decryption failed. Usually due to bad
+ telegram.error.PassportDecryptionError: Decryption failed. Usually due to bad
private/public key but can also suggest malformed/tampered data.
"""
if self._decrypted_data is None:
diff --git a/telegram/_passport/encryptedpassportelement.py b/telegram/_passport/encryptedpassportelement.py
index b294adb08..e8bab3a86 100644
--- a/telegram/_passport/encryptedpassportelement.py
+++ b/telegram/_passport/encryptedpassportelement.py
@@ -54,7 +54,7 @@ class EncryptedPassportElement(TelegramObject):
"email".
hash (:obj:`str`): Base64-encoded element hash for using in
:class:`telegram.PassportElementErrorUnspecified`.
- data (:class:`telegram.PersonalDetails` | :class:`telegram.IdDocument` | \
+ data (:class:`telegram.PersonalDetails` | :class:`telegram.IdDocumentData` | \
:class:`telegram.ResidentialAddress` | :obj:`str`, optional):
Decrypted or encrypted data, available for "personal_details", "passport",
"driver_license", "identity_card", "identity_passport" and "address" types.
@@ -89,7 +89,7 @@ class EncryptedPassportElement(TelegramObject):
"email".
hash (:obj:`str`): Base64-encoded element hash for using in
:class:`telegram.PassportElementErrorUnspecified`.
- data (:class:`telegram.PersonalDetails` | :class:`telegram.IdDocument` | \
+ data (:class:`telegram.PersonalDetails` | :class:`telegram.IdDocumentData` | \
:class:`telegram.ResidentialAddress` | :obj:`str`):
Optional. Decrypted or encrypted data, available for "personal_details", "passport",
"driver_license", "identity_card", "identity_passport" and "address" types.
diff --git a/telegram/_passport/passportdata.py b/telegram/_passport/passportdata.py
index 7cfa8d911..fcdb24cd0 100644
--- a/telegram/_passport/passportdata.py
+++ b/telegram/_passport/passportdata.py
@@ -32,9 +32,9 @@ class PassportData(TelegramObject):
Note:
To be able to decrypt this object, you must pass your ``private_key`` to either
- :class:`telegram.Updater` or :class:`telegram.Bot`. Decrypted data is then found in
+ :class:`telegram.ext.Updater` or :class:`telegram.Bot`. Decrypted data is then found in
:attr:`decrypted_data` and the payload can be found in :attr:`decrypted_credentials`'s
- attribute :attr:`telegram.Credentials.payload`.
+ attribute :attr:`telegram.Credentials.nonce`.
Args:
data (List[:class:`telegram.EncryptedPassportElement`]): Array with encrypted information
@@ -95,7 +95,7 @@ class PassportData(TelegramObject):
about documents and other Telegram Passport elements which were shared with the bot.
Raises:
- telegram.PassportDecryptionError: Decryption failed. Usually due to bad
+ telegram.error.PassportDecryptionError: Decryption failed. Usually due to bad
private/public key but can also suggest malformed/tampered data.
"""
if self._decrypted_data is None:
@@ -115,7 +115,7 @@ class PassportData(TelegramObject):
`decrypted_data.payload`.
Raises:
- telegram.PassportDecryptionError: Decryption failed. Usually due to bad
+ telegram.error.PassportDecryptionError: Decryption failed. Usually due to bad
private/public key but can also suggest malformed/tampered data.
"""
return self.credentials.decrypted_data
diff --git a/telegram/_passport/passportelementerrors.py b/telegram/_passport/passportelementerrors.py
index bff320fa5..d791ba2cc 100644
--- a/telegram/_passport/passportelementerrors.py
+++ b/telegram/_passport/passportelementerrors.py
@@ -62,8 +62,8 @@ class PassportElementErrorDataField(PassportElementError):
considered resolved when the field's value changes.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`source`, :attr:`type`, :attr:`field_name`, :attr:`data_hash`
- and :attr:`message` are equal.
+ considered equal, if their :attr:`~telegram.PassportElementError.source`, :attr:`type`,
+ :attr:`field_name`, :attr:`data_hash` and :attr:`message` are equal.
Args:
type (:obj:`str`): The section of the user's Telegram Passport which has the error, one of
@@ -101,8 +101,8 @@ class PassportElementErrorFile(PassportElementError):
the document scan changes.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`source`, :attr:`type`, :attr:`file_hash`, and
- :attr:`message` are equal.
+ considered equal, if their :attr:`~telegram.PassportElementError.source`, :attr:`type`,
+ :attr:`file_hash`, and :attr:`message` are equal.
Args:
type (:obj:`str`): The section of the user's Telegram Passport which has the issue, one of
@@ -137,8 +137,8 @@ class PassportElementErrorFiles(PassportElementError):
files with the document scans changes.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`source`, :attr:`type`, :attr:`file_hashes`, and
- :attr:`message` are equal.
+ considered equal, if their :attr:`~telegram.PassportElementError.source`, :attr:`type`,
+ :attr:`file_hashes`, and :attr:`message` are equal.
Args:
type (:obj:`str`): The section of the user's Telegram Passport which has the issue, one of
@@ -173,8 +173,8 @@ class PassportElementErrorFrontSide(PassportElementError):
the file with the front side of the document changes.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`source`, :attr:`type`, :attr:`file_hash`, and
- :attr:`message` are equal.
+ considered equal, if their :attr:`~telegram.PassportElementError.source`, :attr:`type`,
+ :attr:`file_hash`, and :attr:`message` are equal.
Args:
type (:obj:`str`): The section of the user's Telegram Passport which has the issue, one of
@@ -209,8 +209,8 @@ class PassportElementErrorReverseSide(PassportElementError):
the file with the reverse side of the document changes.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`source`, :attr:`type`, :attr:`file_hash`, and
- :attr:`message` are equal.
+ considered equal, if their :attr:`~telegram.PassportElementError.source`, :attr:`type`,
+ :attr:`file_hash`, and :attr:`message` are equal.
Args:
type (:obj:`str`): The section of the user's Telegram Passport which has the issue, one of
@@ -245,8 +245,8 @@ class PassportElementErrorSelfie(PassportElementError):
the file with the selfie changes.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`source`, :attr:`type`, :attr:`file_hash`, and
- :attr:`message` are equal.
+ considered equal, if their :attr:`~telegram.PassportElementError.source`, :attr:`type`,
+ :attr:`file_hash`, and :attr:`message` are equal.
Args:
type (:obj:`str`): The section of the user's Telegram Passport which has the issue, one of
@@ -279,8 +279,8 @@ class PassportElementErrorTranslationFile(PassportElementError):
The error is considered resolved when the file changes.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`source`, :attr:`type`, :attr:`file_hash`, and
- :attr:`message` are equal.
+ considered equal, if their :attr:`~telegram.PassportElementError.source`, :attr:`type`,
+ :attr:`file_hash`, and :attr:`message` are equal.
Args:
type (:obj:`str`): Type of element of the user's Telegram Passport which has the issue,
@@ -317,8 +317,8 @@ class PassportElementErrorTranslationFiles(PassportElementError):
resolved when a file with the document translation changes.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`source`, :attr:`type`, :attr:`file_hashes`, and
- :attr:`message` are equal.
+ considered equal, if their :attr:`~telegram.PassportElementError.source`, :attr:`type`,
+ :attr:`file_hashes`, and :attr:`message` are equal.
Args:
type (:obj:`str`): Type of element of the user's Telegram Passport which has the issue,
@@ -355,8 +355,8 @@ class PassportElementErrorUnspecified(PassportElementError):
data is added.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`source`, :attr:`type`, :attr:`element_hash`,
- and :attr:`message` are equal.
+ considered equal, if their :attr:`~telegram.PassportElementError.source`, :attr:`type`,
+ :attr:`element_hash`, and :attr:`message` are equal.
Args:
type (:obj:`str`): Type of element of the user's Telegram Passport which has the issue.
diff --git a/telegram/_payment/invoice.py b/telegram/_payment/invoice.py
index 3032c2c76..fb55e7c5f 100644
--- a/telegram/_payment/invoice.py
+++ b/telegram/_payment/invoice.py
@@ -27,7 +27,7 @@ class Invoice(TelegramObject):
"""This object contains basic information about an invoice.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`title`, :attr:`description`, :attr:`start_parameter`,
+ considered equal, if their :attr:`title`, :attr:`description`, :paramref:`start_parameter`,
:attr:`currency` and :attr:`total_amount` are equal.
Args:
@@ -38,7 +38,7 @@ class Invoice(TelegramObject):
currency (:obj:`str`): Three-letter ISO 4217 currency code.
total_amount (:obj:`int`): Total price in the smallest units of the currency (integer, not
float/double). For example, for a price of US$ 1.45 pass ``amount = 145``. See the
- :obj:`exp` parameter in
+ ``exp`` parameter in
`currencies.json `_,
it shows the number of digits past the decimal point for each currency
(2 for the majority of currencies).
diff --git a/telegram/_payment/labeledprice.py b/telegram/_payment/labeledprice.py
index cbba92e6c..1b703add1 100644
--- a/telegram/_payment/labeledprice.py
+++ b/telegram/_payment/labeledprice.py
@@ -33,7 +33,7 @@ class LabeledPrice(TelegramObject):
label (:obj:`str`): Portion label.
amount (:obj:`int`): Price of the product in the smallest units of the currency (integer,
not float/double). For example, for a price of US$ 1.45 pass ``amount = 145``.
- See the :obj:`exp` parameter in
+ See the ``exp`` parameter in
`currencies.json `_,
it shows the number of digits past the decimal point for each currency
(2 for the majority of currencies).
diff --git a/telegram/_payment/precheckoutquery.py b/telegram/_payment/precheckoutquery.py
index b7497e73a..164ad7975 100644
--- a/telegram/_payment/precheckoutquery.py
+++ b/telegram/_payment/precheckoutquery.py
@@ -35,7 +35,7 @@ class PreCheckoutQuery(TelegramObject):
considered equal, if their :attr:`id` is equal.
Note:
- In Python :keyword:`from` is a reserved word, use ``from_user`` instead.
+ In Python :keyword:`from` is a reserved word, :paramref:`from_user`
Args:
id (:obj:`str`): Unique query identifier.
@@ -43,7 +43,7 @@ class PreCheckoutQuery(TelegramObject):
currency (:obj:`str`): Three-letter ISO 4217 currency code.
total_amount (:obj:`int`): Total price in the smallest units of the currency (integer, not
float/double). For example, for a price of US$ 1.45 pass ``amount = 145``.
- See the :obj:`exp` parameter in
+ See the ``exp`` parameter in
`currencies.json `_,
it shows the number of digits past the decimal point for each currency
(2 for the majority of currencies).
diff --git a/telegram/_payment/shippingaddress.py b/telegram/_payment/shippingaddress.py
index b1d20615f..61561f83a 100644
--- a/telegram/_payment/shippingaddress.py
+++ b/telegram/_payment/shippingaddress.py
@@ -28,7 +28,7 @@ class ShippingAddress(TelegramObject):
Objects of this class are comparable in terms of equality. Two objects of this class are
considered equal, if their :attr:`country_code`, :attr:`state`, :attr:`city`,
- :attr:`street_line1`, :attr:`street_line2` and :attr:`post_cod` are equal.
+ :attr:`street_line1`, :attr:`street_line2` and :attr:`post_code` are equal.
Args:
country_code (:obj:`str`): ISO 3166-1 alpha-2 country code.
diff --git a/telegram/_payment/shippingquery.py b/telegram/_payment/shippingquery.py
index 8f3718e50..e1f450ee8 100644
--- a/telegram/_payment/shippingquery.py
+++ b/telegram/_payment/shippingquery.py
@@ -35,7 +35,7 @@ class ShippingQuery(TelegramObject):
considered equal, if their :attr:`id` is equal.
Note:
- In Python :keyword:`from` is a reserved word, use ``from_user`` instead.
+ In Python :keyword:`from` is a reserved word, :paramref:`from_user`
Args:
id (:obj:`str`): Unique query identifier.
diff --git a/telegram/_payment/successfulpayment.py b/telegram/_payment/successfulpayment.py
index 2ef5eca19..afe9c2502 100644
--- a/telegram/_payment/successfulpayment.py
+++ b/telegram/_payment/successfulpayment.py
@@ -38,7 +38,7 @@ class SuccessfulPayment(TelegramObject):
currency (:obj:`str`): Three-letter ISO 4217 currency code.
total_amount (:obj:`int`): Total price in the smallest units of the currency (integer, not
float/double). For example, for a price of US$ 1.45 pass ``amount = 145``.
- See the :obj:`exp` parameter in
+ See the ``exp`` parameter in
`currencies.json `_,
it shows the number of digits past the decimal point for each currency
(2 for the majority of currencies).
diff --git a/telegram/_poll.py b/telegram/_poll.py
index dea2b4570..da9e362ea 100644
--- a/telegram/_poll.py
+++ b/telegram/_poll.py
@@ -65,7 +65,7 @@ class PollAnswer(TelegramObject):
This object represents an answer of a user in a non-anonymous poll.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`poll_id`, :attr:`user` and :attr:`options_ids` are equal.
+ considered equal, if their :attr:`poll_id`, :attr:`user` and :attr:`option_ids` are equal.
Args:
poll_id (:obj:`str`): Unique poll identifier.
diff --git a/telegram/_user.py b/telegram/_user.py
index 9a258e572..de2182f4e 100644
--- a/telegram/_user.py
+++ b/telegram/_user.py
@@ -701,12 +701,12 @@ class User(TelegramObject):
For the documentation of the arguments, please see :meth:`telegram.Bot.send_invoice`.
Warning:
- As of API 5.2 :attr:`start_parameter` is an optional argument and therefore the order
- of the arguments had to be changed. Use keyword arguments to make sure that the
+ As of API 5.2 :paramref:`start_parameter` is an optional argument and therefore the
+ order of the arguments had to be changed. Use keyword arguments to make sure that the
arguments are passed correctly.
.. versionchanged:: 13.5
- As of Bot API 5.2, the parameter :attr:`start_parameter` is optional.
+ As of Bot API 5.2, the parameter :paramref:`start_parameter` is optional.
Returns:
:class:`telegram.Message`: On success, instance representing the message posted.
diff --git a/telegram/_utils/defaultvalue.py b/telegram/_utils/defaultvalue.py
index d5870d487..dedfcd92c 100644
--- a/telegram/_utils/defaultvalue.py
+++ b/telegram/_utils/defaultvalue.py
@@ -74,10 +74,10 @@ class DefaultValue(Generic[DVType]):
``f'DefaultValue({value})'``.
Args:
- value (:obj:`obj`): The value of the default argument
+ value (:class:`object`): The value of the default argument
Attributes:
- value (:obj:`obj`): The value of the default argument
+ value (:class:`object`): The value of the default argument
"""
diff --git a/telegram/_utils/files.py b/telegram/_utils/files.py
index 2ba5a94f1..7bdb6f5d1 100644
--- a/telegram/_utils/files.py
+++ b/telegram/_utils/files.py
@@ -72,7 +72,7 @@ def parse_file_input(
attribute.
Args:
- file_input (:obj:`str` | :obj:`bytes` | `filelike object` | Telegram media object): The
+ file_input (:obj:`str` | :obj:`bytes` | :term:`file object` | Telegram media object): The
input to parse.
tg_type (:obj:`type`, optional): The Telegram media type the input can be. E.g.
:class:`telegram.Animation`.
diff --git a/telegram/constants.py b/telegram/constants.py
index c4344f664..5a513d14b 100644
--- a/telegram/constants.py
+++ b/telegram/constants.py
@@ -122,7 +122,7 @@ class CallbackQueryLimit(IntEnum):
ANSWER_CALLBACK_QUERY_TEXT_LENGTH = 200
""":obj:`int`: Maximum number of characters for the ``text`` parameter of
- :meth:`Bot.answer_callback_query`."""
+ :meth:`telegram.Bot.answer_callback_query`."""
class ChatAction(_StringEnum):
@@ -171,23 +171,23 @@ class ChatID(IntEnum):
""":obj:`int`: User ID in groups for messages sent by anonymous admins.
Note:
- :attr:`Message.from_user` will contain this ID for backwards compatibility only. It's
- recommended to use :attr:`Message.sender_chat` instead.
+ :attr:`telegram.Message.from_user` will contain this ID for backwards compatibility only.
+ It's recommended to use :attr:`telegram.Message.sender_chat` instead.
"""
SERVICE_CHAT = 777000
""":obj:`int`: Telegram service chat, that also acts as sender of channel posts forwarded to
discussion groups.
Note:
- :attr:`Message.from_user` will contain this ID for backwards compatibility only. It's
- recommended to use :attr:`Message.sender_chat` instead.
+ :attr:`telegram.Message.from_user` will contain this ID for backwards compatibility only.
+ It's recommended to use :attr:`telegram.Message.sender_chat` instead.
"""
FAKE_CHANNEL = 136817688
""":obj:`int`: User ID in groups when message is sent on behalf of a channel.
Note:
- * :attr:`Message.from_user` will contain this ID for backwards compatibility only. It's
- recommended to use :attr:`Message.sender_chat` instead.
+ * :attr:`telegram.Message.from_user` will contain this ID for backwards compatibility only.
+ It's recommended to use :attr:`telegram.Message.sender_chat` instead.
* This value is undocumented and might be changed by Telegram.
"""
@@ -377,10 +377,10 @@ class InlineQueryLimit(IntEnum):
RESULTS = 50
""":obj:`int`: Maximum number of results that can be passed to
- :meth:`Bot.answer_inline_query`."""
+ :meth:`telegram.Bot.answer_inline_query`."""
SWITCH_PM_TEXT_LENGTH = 64
""":obj:`int`: Maximum number of characters for the ``switch_pm_text`` parameter of
- :meth:`Bot.answer_inline_query`."""
+ :meth:`telegram.Bot.answer_inline_query`."""
class InlineQueryResultType(_StringEnum):
@@ -490,39 +490,39 @@ class MessageAttachmentType(_StringEnum):
# (Enums are not extendable)
ANIMATION = 'animation'
- """:obj:`str`: Messages with :attr:`Message.animation`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.animation`."""
AUDIO = 'audio'
- """:obj:`str`: Messages with :attr:`Message.audio`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.audio`."""
CONTACT = 'contact'
- """:obj:`str`: Messages with :attr:`Message.contact`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.contact`."""
DICE = 'dice'
- """:obj:`str`: Messages with :attr:`Message.dice`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.dice`."""
DOCUMENT = 'document'
- """:obj:`str`: Messages with :attr:`Message.document`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.document`."""
GAME = 'game'
- """:obj:`str`: Messages with :attr:`Message.game`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.game`."""
INVOICE = 'invoice'
- """:obj:`str`: Messages with :attr:`Message.invoice`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.invoice`."""
LOCATION = 'location'
- """:obj:`str`: Messages with :attr:`Message.location`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.location`."""
PASSPORT_DATA = 'passport_data'
- """:obj:`str`: Messages with :attr:`Message.passport_data`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.passport_data`."""
PHOTO = 'photo'
- """:obj:`str`: Messages with :attr:`Message.photo`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.photo`."""
POLL = 'poll'
- """:obj:`str`: Messages with :attr:`Message.poll`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.poll`."""
STICKER = 'sticker'
- """:obj:`str`: Messages with :attr:`Message.sticker`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.sticker`."""
SUCCESSFUL_PAYMENT = 'successful_payment'
- """:obj:`str`: Messages with :attr:`Message.successful_payment`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.successful_payment`."""
VIDEO = 'video'
- """:obj:`str`: Messages with :attr:`Message.video`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.video`."""
VIDEO_NOTE = 'video_note'
- """:obj:`str`: Messages with :attr:`Message.video_note`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.video_note`."""
VOICE = 'voice'
- """:obj:`str`: Messages with :attr:`Message.voice`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.voice`."""
VENUE = 'venue'
- """:obj:`str`: Messages with :attr:`Message.venue`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.venue`."""
class MessageEntityType(_StringEnum):
@@ -607,76 +607,76 @@ class MessageType(_StringEnum):
# -------------------------------------------------- Attachment types
ANIMATION = 'animation'
- """:obj:`str`: Messages with :attr:`Message.animation`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.animation`."""
AUDIO = 'audio'
- """:obj:`str`: Messages with :attr:`Message.audio`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.audio`."""
CONTACT = 'contact'
- """:obj:`str`: Messages with :attr:`Message.contact`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.contact`."""
DICE = 'dice'
- """:obj:`str`: Messages with :attr:`Message.dice`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.dice`."""
DOCUMENT = 'document'
- """:obj:`str`: Messages with :attr:`Message.document`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.document`."""
GAME = 'game'
- """:obj:`str`: Messages with :attr:`Message.game`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.game`."""
INVOICE = 'invoice'
- """:obj:`str`: Messages with :attr:`Message.invoice`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.invoice`."""
LOCATION = 'location'
- """:obj:`str`: Messages with :attr:`Message.location`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.location`."""
PASSPORT_DATA = 'passport_data'
- """:obj:`str`: Messages with :attr:`Message.passport_data`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.passport_data`."""
PHOTO = 'photo'
- """:obj:`str`: Messages with :attr:`Message.photo`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.photo`."""
POLL = 'poll'
- """:obj:`str`: Messages with :attr:`Message.poll`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.poll`."""
STICKER = 'sticker'
- """:obj:`str`: Messages with :attr:`Message.sticker`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.sticker`."""
SUCCESSFUL_PAYMENT = 'successful_payment'
- """:obj:`str`: Messages with :attr:`Message.successful_payment`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.successful_payment`."""
VIDEO = 'video'
- """:obj:`str`: Messages with :attr:`Message.video`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.video`."""
VIDEO_NOTE = 'video_note'
- """:obj:`str`: Messages with :attr:`Message.video_note`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.video_note`."""
VOICE = 'voice'
- """:obj:`str`: Messages with :attr:`Message.voice`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.voice`."""
VENUE = 'venue'
- """:obj:`str`: Messages with :attr:`Message.venue`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.venue`."""
# -------------------------------------------------- Other types
TEXT = 'text'
- """:obj:`str`: Messages with :attr:`Message.text`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.text`."""
NEW_CHAT_MEMBERS = 'new_chat_members'
- """:obj:`str`: Messages with :attr:`Message.new_chat_members`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.new_chat_members`."""
LEFT_CHAT_MEMBER = 'left_chat_member'
- """:obj:`str`: Messages with :attr:`Message.left_chat_member`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.left_chat_member`."""
NEW_CHAT_TITLE = 'new_chat_title'
- """:obj:`str`: Messages with :attr:`Message.new_chat_title`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.new_chat_title`."""
NEW_CHAT_PHOTO = 'new_chat_photo'
- """:obj:`str`: Messages with :attr:`Message.new_chat_photo`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.new_chat_photo`."""
DELETE_CHAT_PHOTO = 'delete_chat_photo'
- """:obj:`str`: Messages with :attr:`Message.delete_chat_photo`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.delete_chat_photo`."""
GROUP_CHAT_CREATED = 'group_chat_created'
- """:obj:`str`: Messages with :attr:`Message.group_chat_created`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.group_chat_created`."""
SUPERGROUP_CHAT_CREATED = 'supergroup_chat_created'
- """:obj:`str`: Messages with :attr:`Message.supergroup_chat_created`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.supergroup_chat_created`."""
CHANNEL_CHAT_CREATED = 'channel_chat_created'
- """:obj:`str`: Messages with :attr:`Message.channel_chat_created`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.channel_chat_created`."""
MESSAGE_AUTO_DELETE_TIMER_CHANGED = 'message_auto_delete_timer_changed'
- """:obj:`str`: Messages with :attr:`Message.message_auto_delete_timer_changed`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.message_auto_delete_timer_changed`."""
MIGRATE_TO_CHAT_ID = 'migrate_to_chat_id'
- """:obj:`str`: Messages with :attr:`Message.migrate_to_chat_id`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.migrate_to_chat_id`."""
MIGRATE_FROM_CHAT_ID = 'migrate_from_chat_id'
- """:obj:`str`: Messages with :attr:`Message.migrate_from_chat_id`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.migrate_from_chat_id`."""
PINNED_MESSAGE = 'pinned_message'
- """:obj:`str`: Messages with :attr:`Message.pinned_message`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.pinned_message`."""
PROXIMITY_ALERT_TRIGGERED = 'proximity_alert_triggered'
- """:obj:`str`: Messages with :attr:`Message.proximity_alert_triggered`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.proximity_alert_triggered`."""
VOICE_CHAT_SCHEDULED = 'voice_chat_scheduled'
- """:obj:`str`: Messages with :attr:`Message.voice_chat_scheduled`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.voice_chat_scheduled`."""
VOICE_CHAT_STARTED = 'voice_chat_started'
- """:obj:`str`: Messages with :attr:`Message.voice_chat_started`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.voice_chat_started`."""
VOICE_CHAT_ENDED = 'voice_chat_ended'
- """:obj:`str`: Messages with :attr:`Message.voice_chat_ended`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.voice_chat_ended`."""
VOICE_CHAT_PARTICIPANTS_INVITED = 'voice_chat_participants_invited'
- """:obj:`str`: Messages with :attr:`Message.voice_chat_participants_invited`."""
+ """:obj:`str`: Messages with :attr:`telegram.Message.voice_chat_participants_invited`."""
class ParseMode(_StringEnum):
diff --git a/telegram/ext/_basepersistence.py b/telegram/ext/_basepersistence.py
index 598d84dd2..22160c322 100644
--- a/telegram/ext/_basepersistence.py
+++ b/telegram/ext/_basepersistence.py
@@ -60,6 +60,11 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
"""Interface class for adding persistence to your bot.
Subclass this object for different implementations of a persistent bot.
+ Attention:
+ The interface provided by this class is intended to be accessed exclusively by
+ :class:`~telegram.ext.Dispatcher`. Calling any of the methods below manually might
+ interfere with the integration of persistence into :class:`~telegram.ext.Dispatcher`.
+
All relevant methods must be overwritten. This includes:
* :meth:`get_bot_data`
@@ -90,7 +95,7 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
Note:
:meth:`replace_bot` and :meth:`insert_bot` are used *independently* of the implementation
- of the :meth:`update/get_*` methods, i.e. you don't need to worry about it while
+ of the ``update/get_*`` methods, i.e. you don't need to worry about it while
implementing a custom persistence subclass.
.. versionchanged:: 14.0
@@ -191,17 +196,18 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
def replace_bot(cls, obj: object) -> object:
"""
Replaces all instances of :class:`telegram.Bot` that occur within the passed object with
- :attr:`REPLACED_BOT`. Currently, this handles objects of type ``list``, ``tuple``, ``set``,
- ``frozenset``, ``dict``, ``defaultdict`` and objects that have a ``__dict__`` or
- ``__slots__`` attribute, excluding classes and objects that can't be copied with
- ``copy.copy``. If the parsing of an object fails, the object will be returned unchanged and
- the error will be logged.
+ :attr:`REPLACED_BOT`. Currently, this handles objects of type :class:`list`,
+ :class:`tuple`, :class:`set`, :class:`frozenset`, :class:`dict`,
+ :class:`collections.defaultdict` and objects that have a :attr:`~object.__dict__` or
+ :data:`~object.__slots__` attribute, excluding classes and objects that can't be copied
+ with :func:`copy.copy`. If the parsing of an object fails, the object will be returned
+ unchanged and the error will be logged.
Args:
obj (:obj:`object`): The object
Returns:
- :obj:`obj`: Copy of the object with Bot instances replaced.
+ :class:`object`: Copy of the object with Bot instances replaced.
"""
return cls._replace_bot(obj, {})
@@ -294,17 +300,18 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
def insert_bot(self, obj: object) -> object:
"""
Replaces all instances of :attr:`REPLACED_BOT` that occur within the passed object with
- :attr:`bot`. Currently, this handles objects of type ``list``, ``tuple``, ``set``,
- ``frozenset``, ``dict``, ``defaultdict`` and objects that have a ``__dict__`` or
- ``__slots__`` attribute, excluding classes and objects that can't be copied with
- ``copy.copy``. If the parsing of an object fails, the object will be returned unchanged and
- the error will be logged.
+ :paramref:`bot`. Currently, this handles objects of type :class:`list`,
+ :class:`tuple`, :class:`set`, :class:`frozenset`, :class:`dict`,
+ :class:`collections.defaultdict` and objects that have a :attr:`~object.__dict__` or
+ :data:`~object.__slots__` attribute, excluding classes and objects that can't be copied
+ with :func:`copy.copy`. If the parsing of an object fails, the object will be returned
+ unchanged and the error will be logged.
Args:
obj (:obj:`object`): The object
Returns:
- :obj:`obj`: Copy of the object with Bot instances inserted.
+ :class:`object`: Copy of the object with Bot instances inserted.
"""
return self._insert_bot(obj, {})
@@ -460,7 +467,7 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
Returns:
Optional[Tuple[List[Tuple[:obj:`str`, :obj:`float`, \
- Dict[:obj:`str`, :obj:`Any`]]], Dict[:obj:`str`, :obj:`str`]]]:
+ Dict[:obj:`str`, :class:`object`]]], Dict[:obj:`str`, :obj:`str`]]]:
The restored meta data or :obj:`None`, if no data was stored.
"""
@@ -488,7 +495,7 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
Args:
name (:obj:`str`): The handler's name.
key (:obj:`tuple`): The key the state is changed for.
- new_state (:obj:`tuple` | :obj:`Any`): The new state for the given key.
+ new_state (:obj:`tuple` | :class:`object`): The new state for the given key.
"""
@abstractmethod
@@ -564,8 +571,8 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
@abstractmethod
def refresh_user_data(self, user_id: int, user_data: UD) -> None:
"""Will be called by the :class:`telegram.ext.Dispatcher` before passing the
- :attr:`user_data` to a callback. Can be used to update data stored in :attr:`user_data`
- from an external source.
+ :attr:`~telegram.ext.Dispatcher.user_data` to a callback. Can be used to update data stored
+ in :attr:`~telegram.ext.Dispatcher.user_data` from an external source.
.. versionadded:: 13.6
@@ -573,7 +580,8 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
Changed this method into an ``@abstractmethod``.
Args:
- user_id (:obj:`int`): The user ID this :attr:`user_data` is associated with.
+ user_id (:obj:`int`): The user ID this :attr:`~telegram.ext.Dispatcher.user_data` is
+ associated with.
user_data (:obj:`dict` | :attr:`telegram.ext.ContextTypes.user_data`):
The ``user_data`` of a single user.
"""
@@ -581,8 +589,8 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
@abstractmethod
def refresh_chat_data(self, chat_id: int, chat_data: CD) -> None:
"""Will be called by the :class:`telegram.ext.Dispatcher` before passing the
- :attr:`chat_data` to a callback. Can be used to update data stored in :attr:`chat_data`
- from an external source.
+ :attr:`~telegram.ext.Dispatcher.chat_data` to a callback. Can be used to update data stored
+ in :attr:`~telegram.ext.Dispatcher.chat_data` from an external source.
.. versionadded:: 13.6
@@ -590,7 +598,8 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
Changed this method into an ``@abstractmethod``.
Args:
- chat_id (:obj:`int`): The chat ID this :attr:`chat_data` is associated with.
+ chat_id (:obj:`int`): The chat ID this :attr:`~telegram.ext.Dispatcher.chat_data` is
+ associated with.
chat_data (:obj:`dict` | :attr:`telegram.ext.ContextTypes.chat_data`):
The ``chat_data`` of a single chat.
"""
@@ -598,8 +607,8 @@ class BasePersistence(Generic[UD, CD, BD], ABC):
@abstractmethod
def refresh_bot_data(self, bot_data: BD) -> None:
"""Will be called by the :class:`telegram.ext.Dispatcher` before passing the
- :attr:`bot_data` to a callback. Can be used to update data stored in :attr:`bot_data`
- from an external source.
+ :attr:`~telegram.ext.Dispatcher.bot_data` to a callback. Can be used to update data stored
+ in :attr:`~telegram.ext.Dispatcher.bot_data` from an external source.
.. versionadded:: 13.6
diff --git a/telegram/ext/_builders.py b/telegram/ext/_builders.py
index dadb96c03..4e9ebbb86 100644
--- a/telegram/ext/_builders.py
+++ b/telegram/ext/_builders.py
@@ -560,7 +560,7 @@ class DispatcherBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
"""Sets the base URL to be used for :attr:`telegram.ext.Dispatcher.bot`. If not called,
will default to ``'https://api.telegram.org/bot'``.
- .. seealso:: :attr:`telegram.Bot.base_url`, `Local Bot API Server `_,
:meth:`base_url`
@@ -576,8 +576,8 @@ class DispatcherBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
"""Sets the base file URL to be used for :attr:`telegram.ext.Dispatcher.bot`. If not
called, will default to ``'https://api.telegram.org/file/bot'``.
- .. seealso:: :attr:`telegram.Bot.base_file_url`, `Local Bot API Server `_,
+ .. seealso:: :paramref:`telegram.Bot.base_file_url`, `Local Bot API Server `_,
:meth:`base_file_url`
Args:
@@ -589,7 +589,8 @@ class DispatcherBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
return self._set_base_file_url(base_file_url)
def request_kwargs(self: BuilderType, request_kwargs: Dict[str, Any]) -> BuilderType:
- """Sets keyword arguments that will be passed to the :class:`telegram.utils.Request` object
+ """Sets keyword arguments that will be passed to the
+ :class:`telegram.request.Request` object
that is created when :attr:`telegram.ext.Dispatcher.bot` is created. If not called, no
keyword arguments will be passed.
@@ -604,13 +605,13 @@ class DispatcherBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
return self._set_request_kwargs(request_kwargs)
def request(self: BuilderType, request: Request) -> BuilderType:
- """Sets a :class:`telegram.utils.Request` object to be used for
+ """Sets a :class:`telegram.request.Request` object to be used for
:attr:`telegram.ext.Dispatcher.bot`.
.. seealso:: :meth:`request_kwargs`
Args:
- request (:class:`telegram.utils.Request`): The request object.
+ request (:class:`telegram.request.Request`): The request object.
Returns:
:class:`DispatcherBuilder`: The same builder with the updated argument.
@@ -718,7 +719,7 @@ class DispatcherBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
:meth:`telegram.ext.Dispatcher.run_async`, i.e. the number of callbacks that can be run
asynchronously at the same time.
- .. seealso:: :attr:`telegram.ext.Handler.run_sync`,
+ .. seealso:: :paramref:`telegram.ext.Handler.run_async`,
:attr:`telegram.ext.Defaults.run_async`
Args:
@@ -927,7 +928,7 @@ class UpdaterBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
"""Sets the base URL to be used for :attr:`telegram.ext.Updater.bot`. If not called,
will default to ``'https://api.telegram.org/bot'``.
- .. seealso:: :attr:`telegram.Bot.base_url`, `Local Bot API Server `_,
:meth:`base_url`
@@ -943,8 +944,8 @@ class UpdaterBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
"""Sets the base file URL to be used for :attr:`telegram.ext.Updater.bot`. If not
called, will default to ``'https://api.telegram.org/file/bot'``.
- .. seealso:: :attr:`telegram.Bot.base_file_url`, `Local Bot API Server `_,
+ .. seealso:: :paramref:`telegram.Bot.base_file_url`, `Local Bot API Server `_,
:meth:`base_file_url`
Args:
@@ -956,8 +957,8 @@ class UpdaterBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
return self._set_base_file_url(base_file_url)
def request_kwargs(self: BuilderType, request_kwargs: Dict[str, Any]) -> BuilderType:
- """Sets keyword arguments that will be passed to the :class:`telegram.utils.Request` object
- that is created when :attr:`telegram.ext.Updater.bot` is created. If not called, no
+ """Sets keyword arguments that will be passed to the :class:`telegram.request.Request`
+ object that is created when :attr:`telegram.ext.Updater.bot` is created. If not called, no
keyword arguments will be passed.
.. seealso:: :meth:`request`
@@ -971,13 +972,13 @@ class UpdaterBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
return self._set_request_kwargs(request_kwargs)
def request(self: BuilderType, request: Request) -> BuilderType:
- """Sets a :class:`telegram.utils.Request` object to be used for
+ """Sets a :class:`telegram.request.Request` object to be used for
:attr:`telegram.ext.Updater.bot`.
.. seealso:: :meth:`request_kwargs`
Args:
- request (:class:`telegram.utils.Request`): The request object.
+ request (:class:`telegram.request.Request`): The request object.
Returns:
:class:`UpdaterBuilder`: The same builder with the updated argument.
@@ -1087,7 +1088,7 @@ class UpdaterBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
:meth:`telegram.ext.Dispatcher.run_async`, i.e. the number of callbacks that can be run
asynchronously at the same time.
- .. seealso:: :attr:`telegram.ext.Handler.run_sync`,
+ .. seealso:: :paramref:`telegram.ext.Handler.run_async`,
:attr:`telegram.ext.Defaults.run_async`
Args:
@@ -1229,9 +1230,9 @@ class UpdaterBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
self: BuilderType, user_signal_handler: Callable[[int, object], Any]
) -> BuilderType:
"""Sets a callback to be used for :attr:`telegram.ext.Updater.user_signal_handler`.
- The callback will be called when :meth:`telegram.ext.Updater.idle()` receives a signal.
+ The callback will be called when :meth:`telegram.ext.Updater.idle` receives a signal.
It will be called with the two arguments ``signum, frame`` as for the
- :meth:`signal.signal` of the standard library.
+ :func:`signal.signal` of the standard library.
Note:
Signal handlers are an advanced feature that come with some culprits and are not thread
@@ -1241,7 +1242,7 @@ class UpdaterBuilder(_BaseBuilder[ODT, BT, CCT, UD, CD, BD, JQ, PT]):
be executed after the updater has shut down.
Args:
- user_signal_handler (Callable[signum, frame]): The signal handler.
+ user_signal_handler (Callable[`signum, frame`]): The signal handler.
Returns:
:class:`UpdaterBuilder`: The same builder with the updated argument.
diff --git a/telegram/ext/_callbackcontext.py b/telegram/ext/_callbackcontext.py
index 4663243a7..104919564 100644
--- a/telegram/ext/_callbackcontext.py
+++ b/telegram/ext/_callbackcontext.py
@@ -64,7 +64,7 @@ class CallbackContext(Generic[BT, UD, CD, BD]):
Warning:
Do not combine custom attributes and ``@run_async``/
- :meth:`telegram.ext.Disptacher.run_async`. Due to how ``run_async`` works, it will
+ :func:`telegram.ext.Dispatcher.run_async`. Due to how ``run_async`` works, it will
almost certainly execute the callbacks for an update out of order, and the attributes
that you think you added will not be present.
@@ -72,7 +72,8 @@ class CallbackContext(Generic[BT, UD, CD, BD]):
dispatcher (:class:`telegram.ext.Dispatcher`): The dispatcher associated with this context.
Attributes:
- matches (List[:obj:`re match object`]): Optional. If the associated update originated from
+ matches (List[:meth:`re.Match `]): Optional. If the associated update
+ originated from
a :class:`filters.Regex`, this will contain a list of match objects for every pattern
where ``re.search(pattern, string)`` returned a match. Note that filters short circuit,
so combined regex filters will not always be evaluated.
diff --git a/telegram/ext/_callbackdatacache.py b/telegram/ext/_callbackdatacache.py
index fdab20521..8c8c4c020 100644
--- a/telegram/ext/_callbackdatacache.py
+++ b/telegram/ext/_callbackdatacache.py
@@ -109,7 +109,7 @@ class CallbackDataCache:
Defaults to 1024.
persistent_data (Tuple[List[Tuple[:obj:`str`, :obj:`float`, \
- Dict[:obj:`str`, :obj:`Any`]]], Dict[:obj:`str`, :obj:`str`]], optional): \
+ Dict[:obj:`str`, :class:`object`]]], Dict[:obj:`str`, :obj:`str`]], optional): \
Data to initialize the cache with, as returned by \
:meth:`telegram.ext.BasePersistence.get_callback_data`.
@@ -146,7 +146,7 @@ class CallbackDataCache:
@property
def persistence_data(self) -> CDCData:
- """Tuple[List[Tuple[:obj:`str`, :obj:`float`, Dict[:obj:`str`, :obj:`Any`]]],
+ """Tuple[List[Tuple[:obj:`str`, :obj:`float`, Dict[:obj:`str`, :class:`object`]]],
Dict[:obj:`str`, :obj:`str`]]: The data that needs to be persisted to allow
caching callback data across bot reboots.
"""
@@ -160,7 +160,8 @@ class CallbackDataCache:
def process_keyboard(self, reply_markup: InlineKeyboardMarkup) -> InlineKeyboardMarkup:
"""Registers the reply markup to the cache. If any of the buttons have
- :attr:`callback_data`, stores that data and builds a new keyboard with the correspondingly
+ :attr:`~telegram.InlineKeyboardButton.callback_data`, stores that data and builds a new
+ keyboard with the correspondingly
replaced buttons. Otherwise does nothing and returns the original reply markup.
Args:
@@ -307,8 +308,9 @@ class CallbackDataCache:
"""Replaces the data in the callback query and the attached messages keyboard with the
cached objects, if necessary. If the data could not be found,
:class:`telegram.ext.InvalidCallbackData` will be inserted.
- If :attr:`callback_query.data` or :attr:`callback_query.message` is present, this also
- saves the callback queries ID in order to be able to resolve it to the stored data.
+ If :attr:`telegram.CallbackQuery.data` or :attr:`telegram.CallbackQuery.message` is
+ present, this also saves the callback queries ID in order to be able to resolve it to the
+ stored data.
Note:
Also considers inserts data into the buttons of
diff --git a/telegram/ext/_callbackqueryhandler.py b/telegram/ext/_callbackqueryhandler.py
index 9b135e1ac..450a8350c 100644
--- a/telegram/ext/_callbackqueryhandler.py
+++ b/telegram/ext/_callbackqueryhandler.py
@@ -44,20 +44,22 @@ RT = TypeVar('RT')
class CallbackQueryHandler(Handler[Update, CCT]):
"""Handler class to handle Telegram callback queries. Optionally based on a regex.
- Read the documentation of the ``re`` module for more information.
+ Read the documentation of the :mod:`re` module for more information.
Note:
- * If your bot allows arbitrary objects as ``callback_data``, it may happen that the
- original ``callback_data`` for the incoming :class:`telegram.CallbackQuery`` can not be
- found. This is the case when either a malicious client tempered with the
- ``callback_data`` or the data was simply dropped from cache or not persisted. In these
+ * If your bot allows arbitrary objects as
+ :paramref:`~telegram.InlineKeyboardButton.callback_data`, it may happen that the
+ original :attr:`~telegram.InlineKeyboardButton.callback_data` for the incoming
+ :class:`telegram.CallbackQuery` can not be found. This is the case when either a
+ malicious client tempered with the :attr:`telegram.CallbackQuery.data` or the data was
+ simply dropped from cache or not persisted. In these
cases, an instance of :class:`telegram.ext.InvalidCallbackData` will be set as
- ``callback_data``.
+ :attr:`telegram.CallbackQuery.data`.
.. versionadded:: 13.6
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
@@ -69,7 +71,7 @@ class CallbackQueryHandler(Handler[Update, CCT]):
:class:`telegram.ext.ConversationHandler`.
pattern (:obj:`str` | `Pattern` | :obj:`callable` | :obj:`type`, optional):
Pattern to test :attr:`telegram.CallbackQuery.data` against. If a string or a regex
- pattern is passed, :meth:`re.match` is used on :attr:`telegram.CallbackQuery.data` to
+ pattern is passed, :func:`re.match` is used on :attr:`telegram.CallbackQuery.data` to
determine if an update should be handled by this handler. If your bot allows arbitrary
objects as ``callback_data``, non-strings will be accepted. To filter arbitrary
objects you may pass
diff --git a/telegram/ext/_chatjoinrequesthandler.py b/telegram/ext/_chatjoinrequesthandler.py
index 47b830579..7505e35c3 100644
--- a/telegram/ext/_chatjoinrequesthandler.py
+++ b/telegram/ext/_chatjoinrequesthandler.py
@@ -29,7 +29,7 @@ class ChatJoinRequestHandler(Handler[Update, CCT]):
"""Handler class to handle Telegram updates that contain a chat join request.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
.. versionadded:: 13.8
diff --git a/telegram/ext/_chatmemberhandler.py b/telegram/ext/_chatmemberhandler.py
index eecb3ef28..3e0978cf9 100644
--- a/telegram/ext/_chatmemberhandler.py
+++ b/telegram/ext/_chatmemberhandler.py
@@ -33,7 +33,7 @@ class ChatMemberHandler(Handler[Update, CCT]):
.. versionadded:: 13.4
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
diff --git a/telegram/ext/_choseninlineresulthandler.py b/telegram/ext/_choseninlineresulthandler.py
index 4831550c9..b8a667cdb 100644
--- a/telegram/ext/_choseninlineresulthandler.py
+++ b/telegram/ext/_choseninlineresulthandler.py
@@ -35,7 +35,7 @@ class ChosenInlineResultHandler(Handler[Update, CCT]):
"""Handler class to handle Telegram updates that contain a chosen inline result.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
@@ -47,7 +47,8 @@ class ChosenInlineResultHandler(Handler[Update, CCT]):
:class:`telegram.ext.ConversationHandler`.
run_async (:obj:`bool`): Determines whether the callback will run asynchronously.
Defaults to :obj:`False`.
- pattern (:obj:`str` | `Pattern`, optional): Regex pattern. If not :obj:`None`, ``re.match``
+ pattern (:obj:`str` | :func:`re.Pattern `, optional): Regex pattern. If not
+ :obj:`None`, :func:`re.match`
is used on :attr:`telegram.ChosenInlineResult.result_id` to determine if an update
should be handled by this handler. This is accessible in the callback as
:attr:`telegram.ext.CallbackContext.matches`.
diff --git a/telegram/ext/_commandhandler.py b/telegram/ext/_commandhandler.py
index 5a762ba80..a4f0b86af 100644
--- a/telegram/ext/_commandhandler.py
+++ b/telegram/ext/_commandhandler.py
@@ -47,7 +47,7 @@ class CommandHandler(Handler[Update, CCT]):
* :class:`CommandHandler` does *not* handle (edited) channel posts.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
@@ -60,7 +60,7 @@ class CommandHandler(Handler[Update, CCT]):
The return value of the callback is usually ignored except for the special case of
:class:`telegram.ext.ConversationHandler`.
- filters (:class:`telegram.ext.BaseFilter`, optional): A filter inheriting from
+ filters (:class:`telegram.ext.filters.BaseFilter`, optional): A filter inheriting from
:class:`telegram.ext.filters.BaseFilter`. Standard filters can be found in
:mod:`telegram.ext.filters`. Filters can be combined using bitwise
operators (& for and, | for or, ~ for not).
@@ -75,7 +75,7 @@ class CommandHandler(Handler[Update, CCT]):
The command or list of commands this handler should listen for.
Limitations are the same as described here https://core.telegram.org/bots#commands
callback (:obj:`callable`): The callback function for this handler.
- filters (:class:`telegram.ext.BaseFilter`): Optional. Only allow updates with these
+ filters (:class:`telegram.ext.filters.BaseFilter`): Optional. Only allow updates with these
Filters.
run_async (:obj:`bool`): Determines whether the callback will run asynchronously.
"""
@@ -194,7 +194,7 @@ class PrefixHandler(CommandHandler):
* :class:`PrefixHandler` does *not* handle (edited) channel posts.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
@@ -208,7 +208,7 @@ class PrefixHandler(CommandHandler):
The return value of the callback is usually ignored except for the special case of
:class:`telegram.ext.ConversationHandler`.
- filters (:class:`telegram.ext.BaseFilter`, optional): A filter inheriting from
+ filters (:class:`telegram.ext.filters.BaseFilter`, optional): A filter inheriting from
:class:`telegram.ext.filters.BaseFilter`. Standard filters can be found in
:mod:`telegram.ext.filters`. Filters can be combined using bitwise
operators (& for and, | for or, ~ for not).
@@ -217,7 +217,7 @@ class PrefixHandler(CommandHandler):
Attributes:
callback (:obj:`callable`): The callback function for this handler.
- filters (:class:`telegram.ext.BaseFilter`): Optional. Only allow updates with these
+ filters (:class:`telegram.ext.filters.BaseFilter`): Optional. Only allow updates with these
Filters.
run_async (:obj:`bool`): Determines whether the callback will run asynchronously.
diff --git a/telegram/ext/_contexttypes.py b/telegram/ext/_contexttypes.py
index 5f613be24..4e8fc2117 100644
--- a/telegram/ext/_contexttypes.py
+++ b/telegram/ext/_contexttypes.py
@@ -194,16 +194,22 @@ class ContextTypes(Generic[CCT, UD, CD, BD]):
@property
def context(self) -> Type[CCT]:
+ """The type of the ``context`` argument of all (error-)handler callbacks and job
+ callbacks.
+ """
return self._context
@property
def bot_data(self) -> Type[BD]:
+ """The type of ``context.bot_data`` of all (error-)handler callbacks and job callbacks."""
return self._bot_data
@property
def chat_data(self) -> Type[CD]:
+ """The type of ``context.chat_data`` of all (error-)handler callbacks and job callbacks."""
return self._chat_data
@property
def user_data(self) -> Type[UD]:
+ """The type of ``context.user_data`` of all (error-)handler callbacks and job callbacks."""
return self._user_data
diff --git a/telegram/ext/_defaults.py b/telegram/ext/_defaults.py
index d9e9cd9af..987e8c0c5 100644
--- a/telegram/ext/_defaults.py
+++ b/telegram/ext/_defaults.py
@@ -131,7 +131,7 @@ class Defaults:
@property
def explanation_parse_mode(self) -> Optional[str]:
- """:obj:`str`: Optional. Alias for :attr:`parse_mode`, used for
+ """:obj:`str`: Optional. Alias for :paramref:`parse_mode`, used for
the corresponding parameter of :meth:`telegram.Bot.send_poll`.
"""
return self._parse_mode
diff --git a/telegram/ext/_dictpersistence.py b/telegram/ext/_dictpersistence.py
index 6ea7bb17c..bf5e60495 100644
--- a/telegram/ext/_dictpersistence.py
+++ b/telegram/ext/_dictpersistence.py
@@ -33,6 +33,11 @@ except ImportError:
class DictPersistence(BasePersistence):
"""Using Python's :obj:`dict` and ``json`` for making your bot persistent.
+ Attention:
+ The interface provided by this class is intended to be accessed exclusively by
+ :class:`~telegram.ext.Dispatcher`. Calling any of the methods below manually might
+ interfere with the integration of persistence into :class:`~telegram.ext.Dispatcher`.
+
Note:
This class does *not* implement a :meth:`flush` method, meaning that data managed by
``DictPersistence`` is in-memory only and will be lost when the bot shuts down. This is,
@@ -41,7 +46,7 @@ class DictPersistence(BasePersistence):
Warning:
:class:`DictPersistence` will try to replace :class:`telegram.Bot` instances by
- :attr:`REPLACED_BOT` and insert the bot set with
+ :attr:`~telegram.ext.BasePersistence.REPLACED_BOT` and insert the bot set with
:meth:`telegram.ext.BasePersistence.set_bot` upon loading of the data. This is to ensure
that changes to the bot apply to the saved objects, too. If you change the bots token, this
may lead to e.g. ``Chat not found`` errors. For the limitations on replacing bots see
@@ -202,7 +207,7 @@ class DictPersistence(BasePersistence):
@property
def callback_data(self) -> Optional[CDCData]:
- """Tuple[List[Tuple[:obj:`str`, :obj:`float`, Dict[:obj:`str`, :obj:`Any`]]], \
+ """Tuple[List[Tuple[:obj:`str`, :obj:`float`, Dict[:obj:`str`, :class:`object`]]], \
Dict[:obj:`str`, :obj:`str`]]: The metadata on the stored callback data.
.. versionadded:: 13.6
@@ -267,7 +272,7 @@ class DictPersistence(BasePersistence):
.. versionadded:: 13.6
Returns:
- Tuple[List[Tuple[:obj:`str`, :obj:`float`, Dict[:obj:`str`, :obj:`Any`]]], \
+ Tuple[List[Tuple[:obj:`str`, :obj:`float`, Dict[:obj:`str`, :class:`object`]]], \
Dict[:obj:`str`, :obj:`str`]]: The restored metadata or :obj:`None`, \
if no data was stored.
"""
@@ -295,7 +300,7 @@ class DictPersistence(BasePersistence):
Args:
name (:obj:`str`): The handler's name.
key (:obj:`tuple`): The key the state is changed for.
- new_state (:obj:`tuple` | :obj:`Any`): The new state for the given key.
+ new_state (:obj:`tuple` | :class:`object`): The new state for the given key.
"""
if not self._conversations:
self._conversations = {}
@@ -349,7 +354,7 @@ class DictPersistence(BasePersistence):
.. versionadded:: 13.6
Args:
- data (Tuple[List[Tuple[:obj:`str`, :obj:`float`, Dict[:obj:`str`, :obj:`Any`]]], \
+ data (Tuple[List[Tuple[:obj:`str`, :obj:`float`, Dict[:obj:`str`, :class:`object`]]], \
Dict[:obj:`str`, :obj:`str`]]): The relevant data to restore
:class:`telegram.ext.CallbackDataCache`.
"""
diff --git a/telegram/ext/_dispatcher.py b/telegram/ext/_dispatcher.py
index 9d9d2e9a5..46ab4171a 100644
--- a/telegram/ext/_dispatcher.py
+++ b/telegram/ext/_dispatcher.py
@@ -109,7 +109,7 @@ class Dispatcher(Generic[BT, CCT, UD, CD, BD, JQ, PT]):
Attributes:
bot (:class:`telegram.Bot`): The bot object that should be passed to the handlers.
- update_queue (:obj:`Queue`): The synchronized queue that will contain the updates.
+ update_queue (:class:`queue.Queue`): The synchronized queue that will contain the updates.
job_queue (:class:`telegram.ext.JobQueue`): Optional. The :class:`telegram.ext.JobQueue`
instance to pass onto handler callbacks.
workers (:obj:`int`, optional): Number of maximum concurrent worker threads for the
@@ -120,7 +120,7 @@ class Dispatcher(Generic[BT, CCT, UD, CD, BD, JQ, PT]):
.. versionchanged:: 14.0
:attr:`chat_data` is now read-only
- .. tip::
+ Tip:
Manually modifying :attr:`chat_data` is almost never needed and unadvisable.
user_data (:obj:`types.MappingProxyType`): A dictionary handlers can use to store data for
@@ -129,7 +129,7 @@ class Dispatcher(Generic[BT, CCT, UD, CD, BD, JQ, PT]):
.. versionchanged:: 14.0
:attr:`user_data` is now read-only
- .. tip::
+ Tip:
Manually modifying :attr:`user_data` is almost never needed and unadvisable.
bot_data (:obj:`dict`): A dictionary handlers can use to store data for the bot.
@@ -154,6 +154,8 @@ class Dispatcher(Generic[BT, CCT, UD, CD, BD, JQ, PT]):
.. seealso::
:meth:`start`, :meth:`stop`
+ context_types (:class:`telegram.ext.ContextTypes`): Specifies the types used by this
+ dispatcher for the ``context`` argument of handler and job callbacks.
"""
@@ -373,11 +375,11 @@ class Dispatcher(Generic[BT, CCT, UD, CD, BD, JQ, PT]):
Args:
func (:obj:`callable`): The function to run in the thread.
- *args (:obj:`tuple`, optional): Arguments to ``func``.
+ *args (:obj:`tuple`, optional): Arguments to :paramref:`func`.
update (:class:`telegram.Update` | :obj:`object`, optional): The update associated with
the functions call. If passed, it will be available in the error handlers, in case
- an exception is raised by :attr:`func`.
- **kwargs (:obj:`dict`, optional): Keyword arguments to ``func``.
+ an exception is raised by :paramref:`func`.
+ **kwargs (:obj:`dict`, optional): Keyword arguments to :paramref:`func`.
Returns:
Promise
@@ -693,7 +695,7 @@ class Dispatcher(Generic[BT, CCT, UD, CD, BD, JQ, PT]):
* The key `old_chat_id` of :attr:`chat_data` will be deleted
Args:
- message (:class:`Message`, optional): A message with either
+ message (:class:`telegram.Message`, optional): A message with either
:attr:`telegram.Message.migrate_from_chat_id` or
:attr:`telegram.Message.migrate_to_chat_id`.
Mutually exclusive with passing ``old_chat_id`` and ``new_chat_id``
@@ -846,8 +848,6 @@ class Dispatcher(Generic[BT, CCT, UD, CD, BD, JQ, PT]):
Args:
update (:obj:`object` | :class:`telegram.Update`): The update that caused the error.
error (:obj:`Exception`): The error that was raised.
- promise (:class:`telegram._utils.Promise`, optional): The promise whose pooled function
- raised the error.
job (:class:`telegram.ext.Job`, optional): The job that caused the error.
.. versionadded:: 14.0
diff --git a/telegram/ext/_extbot.py b/telegram/ext/_extbot.py
index 5aed2380b..ba0493957 100644
--- a/telegram/ext/_extbot.py
+++ b/telegram/ext/_extbot.py
@@ -202,7 +202,7 @@ class ExtBot(Bot):
*In place*, i.e. the passed :class:`telegram.Message` will be changed!
Args:
- update (:class`telegram.Update`): The update.
+ update (:class:`telegram.Update`): The update.
"""
# The only incoming updates that can directly contain a message sent by the bot itself are:
diff --git a/telegram/ext/_handler.py b/telegram/ext/_handler.py
index 49ec8976c..83fb42714 100644
--- a/telegram/ext/_handler.py
+++ b/telegram/ext/_handler.py
@@ -36,7 +36,7 @@ class Handler(Generic[UT, CCT], ABC):
"""The base class for all update handlers. Create custom handlers by inheriting from it.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
@@ -76,10 +76,10 @@ class Handler(Generic[UT, CCT], ABC):
Note:
Custom updates types can be handled by the dispatcher. Therefore, an implementation of
- this method should always check the type of :attr:`update`.
+ this method should always check the type of :paramref:`update`.
Args:
- update (:obj:`str` | :class:`telegram.Update`): The update to be tested.
+ update (:obj:`object` | :class:`telegram.Update`): The update to be tested.
Returns:
Either :obj:`None` or :obj:`False` if the update should not be handled. Otherwise an
@@ -105,7 +105,7 @@ class Handler(Generic[UT, CCT], ABC):
Args:
update (:obj:`str` | :class:`telegram.Update`): The update to be handled.
dispatcher (:class:`telegram.ext.Dispatcher`): The calling dispatcher.
- check_result (:obj:`obj`): The result from :attr:`check_update`.
+ check_result (:class:`object`): The result from :attr:`check_update`.
context (:class:`telegram.ext.CallbackContext`): The context as provided by
the dispatcher.
diff --git a/telegram/ext/_inlinequeryhandler.py b/telegram/ext/_inlinequeryhandler.py
index 60883d026..95a249074 100644
--- a/telegram/ext/_inlinequeryhandler.py
+++ b/telegram/ext/_inlinequeryhandler.py
@@ -44,10 +44,10 @@ RT = TypeVar('RT')
class InlineQueryHandler(Handler[Update, CCT]):
"""
Handler class to handle Telegram inline queries. Optionally based on a regex. Read the
- documentation of the ``re`` module for more information.
+ documentation of the :mod:`re` module for more information.
Warning:
- * When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ * When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
* :attr:`telegram.InlineQuery.chat_type` will not be set for inline queries from secret
chats and may not be set for inline queries coming from third-party clients. These
@@ -60,9 +60,9 @@ class InlineQueryHandler(Handler[Update, CCT]):
The return value of the callback is usually ignored except for the special case of
:class:`telegram.ext.ConversationHandler`.
- pattern (:obj:`str` | :obj:`Pattern`, optional): Regex pattern. If not :obj:`None`,
- ``re.match`` is used on :attr:`telegram.InlineQuery.query` to determine if an update
- should be handled by this handler.
+ pattern (:obj:`str` | :func:`re.Pattern `, optional): Regex pattern.
+ If not :obj:`None`, :func:`re.match` is used on :attr:`telegram.InlineQuery.query`
+ to determine if an update should be handled by this handler.
chat_types (List[:obj:`str`], optional): List of allowed chat types. If passed, will only
handle inline queries with the appropriate :attr:`telegram.InlineQuery.chat_type`.
@@ -72,7 +72,7 @@ class InlineQueryHandler(Handler[Update, CCT]):
Attributes:
callback (:obj:`callable`): The callback function for this handler.
- pattern (:obj:`str` | :obj:`Pattern`): Optional. Regex pattern to test
+ pattern (:obj:`str` | :func:`re.Pattern `): Optional. Regex pattern to test
:attr:`telegram.InlineQuery.query` against.
chat_types (List[:obj:`str`], optional): List of allowed chat types.
diff --git a/telegram/ext/_jobqueue.py b/telegram/ext/_jobqueue.py
index 0498325e3..45216569f 100644
--- a/telegram/ext/_jobqueue.py
+++ b/telegram/ext/_jobqueue.py
@@ -182,7 +182,7 @@ class JobQueue:
job_kwargs: JSONDict = None,
) -> 'Job':
"""Creates a new :class:`Job` instance that runs at specified intervals and adds it to the
- queue.
+ queue.
Note:
For a note about DST, please see the documentation of `APScheduler`_.
@@ -277,10 +277,6 @@ class JobQueue:
) -> 'Job':
"""Creates a new :class:`Job` that runs on a monthly basis and adds it to the queue.
- .. versionchanged:: 14.0
- The ``day_is_strict`` argument was removed. Instead one can now pass -1 to the ``day``
- parameter to have the job run on the last day of the month.
-
.. versionchanged:: 14.0
The ``day_is_strict`` argument was removed. Instead one can now pass -1 to the ``day``
parameter to have the job run on the last day of the month.
@@ -349,7 +345,8 @@ class JobQueue:
callback (:obj:`callable`): The callback function that should be executed by the new
job. Callback signature: ``def callback(context: CallbackContext)``
time (:obj:`datetime.time`): Time of day at which the job should run. If the timezone
- (:obj:`time.tzinfo`) is :obj:`None`, the default timezone of the bot will be used.
+ (:obj:`datetime.time.tzinfo`) is :obj:`None`, the default timezone of the bot will
+ be used.
days (Tuple[:obj:`int`], optional): Defines on which days of the week the job should
run (where ``0-6`` correspond to monday - sunday). Defaults to ``EVERY_DAY``
context (:obj:`object`, optional): Additional data needed for the callback function.
@@ -450,7 +447,7 @@ class Job:
instance.
Objects of this class are comparable in terms of equality. Two objects of this class are
- considered equal, if their :attr:`id` is equal.
+ considered equal, if their :class:`id ` is equal.
Note:
* All attributes and instance methods of :attr:`job` are also directly available as
@@ -461,7 +458,7 @@ class Job:
this :class:`telegram.ext.Job` to be useful.
.. versionchanged:: 14.0
- Removed argument and attribute :attr:`job_queue`.
+ Removed argument and attribute ``job_queue``.
Args:
callback (:obj:`callable`): The callback function that should be executed by the new job.
diff --git a/telegram/ext/_messagehandler.py b/telegram/ext/_messagehandler.py
index 8d20fbb15..df78956b6 100644
--- a/telegram/ext/_messagehandler.py
+++ b/telegram/ext/_messagehandler.py
@@ -35,16 +35,16 @@ class MessageHandler(Handler[Update, CCT]):
"""Handler class to handle telegram messages. They might contain text, media or status updates.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
- filters (:class:`telegram.ext.BaseFilter`): A filter inheriting from
+ filters (:class:`telegram.ext.filters.BaseFilter`): A filter inheriting from
:class:`telegram.ext.filters.BaseFilter`. Standard filters can be found in
:mod:`telegram.ext.filters`. Filters can be combined using bitwise
operators (& for and, | for or, ~ for not). This defaults to all message updates
- being: :attr:`Update.message`, :attr:`Update.edited_message`,
- :attr:`Update.channel_post` and :attr:`Update.edited_channel_post`.
+ being: :attr:`telegram.Update.message`, :attr:`telegram.Update.edited_message`,
+ :attr:`telegram.Update.channel_post` and :attr:`telegram.Update.edited_channel_post`.
If you don't want or need any of those pass ``~filters.UpdateType.*`` in the filter
argument.
callback (:obj:`callable`): The callback function for this handler. Will be called when
diff --git a/telegram/ext/_picklepersistence.py b/telegram/ext/_picklepersistence.py
index bf2d6b70d..487c3ae31 100644
--- a/telegram/ext/_picklepersistence.py
+++ b/telegram/ext/_picklepersistence.py
@@ -37,9 +37,14 @@ from telegram.ext._utils.types import UD, CD, BD, ConversationDict, CDCData
class PicklePersistence(BasePersistence[UD, CD, BD]):
"""Using python's builtin pickle for making your bot persistent.
+ Attention:
+ The interface provided by this class is intended to be accessed exclusively by
+ :class:`~telegram.ext.Dispatcher`. Calling any of the methods below manually might
+ interfere with the integration of persistence into :class:`~telegram.ext.Dispatcher`.
+
Warning:
:class:`PicklePersistence` will try to replace :class:`telegram.Bot` instances by
- :attr:`REPLACED_BOT` and insert the bot set with
+ :attr:`~telegram.ext.BasePersistence.REPLACED_BOT` and insert the bot set with
:meth:`telegram.ext.BasePersistence.set_bot` upon loading of the data. This is to ensure
that changes to the bot apply to the saved objects, too. If you change the bots token, this
may lead to e.g. ``Chat not found`` errors. For the limitations on replacing bots see
@@ -252,7 +257,7 @@ class PicklePersistence(BasePersistence[UD, CD, BD]):
Returns:
Optional[Tuple[List[Tuple[:obj:`str`, :obj:`float`, \
- Dict[:obj:`str`, :obj:`Any`]]], Dict[:obj:`str`, :obj:`str`]]]:
+ Dict[:obj:`str`, :class:`object`]]], Dict[:obj:`str`, :obj:`str`]]]:
The restored metadata or :obj:`None`, if no data was stored.
"""
if self.callback_data:
@@ -297,7 +302,7 @@ class PicklePersistence(BasePersistence[UD, CD, BD]):
Args:
name (:obj:`str`): The handler's name.
key (:obj:`tuple`): The key the state is changed for.
- new_state (:obj:`tuple` | :obj:`Any`): The new state for the given key.
+ new_state (:obj:`tuple` | :class:`object`): The new state for the given key.
"""
if not self.conversations:
self.conversations = {}
@@ -370,7 +375,7 @@ class PicklePersistence(BasePersistence[UD, CD, BD]):
Args:
data (Tuple[List[Tuple[:obj:`str`, :obj:`float`, \
- Dict[:obj:`str`, :obj:`Any`]]], Dict[:obj:`str`, :obj:`str`]]):
+ Dict[:obj:`str`, :class:`object`]]], Dict[:obj:`str`, :obj:`str`]]):
The relevant data to restore :class:`telegram.ext.CallbackDataCache`.
"""
if self.callback_data == data:
@@ -383,7 +388,7 @@ class PicklePersistence(BasePersistence[UD, CD, BD]):
self._dump_singlefile()
def drop_chat_data(self, chat_id: int) -> None:
- """Will delete the specified key from the :attr:`chat_data` and depending on
+ """Will delete the specified key from the ``chat_data`` and depending on
:attr:`on_flush` save the pickle file.
.. versionadded:: 14.0
@@ -402,7 +407,7 @@ class PicklePersistence(BasePersistence[UD, CD, BD]):
self._dump_singlefile()
def drop_user_data(self, user_id: int) -> None:
- """Will delete the specified key from the :attr:`user_data` and depending on
+ """Will delete the specified key from the ``user_data`` and depending on
:attr:`on_flush` save the pickle file.
.. versionadded:: 14.0
diff --git a/telegram/ext/_pollanswerhandler.py b/telegram/ext/_pollanswerhandler.py
index aa4630fee..c546de2ef 100644
--- a/telegram/ext/_pollanswerhandler.py
+++ b/telegram/ext/_pollanswerhandler.py
@@ -29,7 +29,7 @@ class PollAnswerHandler(Handler[Update, CCT]):
"""Handler class to handle Telegram updates that contain a poll answer.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
diff --git a/telegram/ext/_pollhandler.py b/telegram/ext/_pollhandler.py
index 45bcfe5c1..35107d07a 100644
--- a/telegram/ext/_pollhandler.py
+++ b/telegram/ext/_pollhandler.py
@@ -29,7 +29,7 @@ class PollHandler(Handler[Update, CCT]):
"""Handler class to handle Telegram updates that contain a poll.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
diff --git a/telegram/ext/_precheckoutqueryhandler.py b/telegram/ext/_precheckoutqueryhandler.py
index 37c7aae43..90e85482e 100644
--- a/telegram/ext/_precheckoutqueryhandler.py
+++ b/telegram/ext/_precheckoutqueryhandler.py
@@ -28,7 +28,7 @@ class PreCheckoutQueryHandler(Handler[Update, CCT]):
"""Handler class to handle Telegram PreCheckout callback queries.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
diff --git a/telegram/ext/_shippingqueryhandler.py b/telegram/ext/_shippingqueryhandler.py
index 078f3614d..cf9b7eb1b 100644
--- a/telegram/ext/_shippingqueryhandler.py
+++ b/telegram/ext/_shippingqueryhandler.py
@@ -28,7 +28,7 @@ class ShippingQueryHandler(Handler[Update, CCT]):
"""Handler class to handle Telegram shipping callback queries.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
diff --git a/telegram/ext/_stringcommandhandler.py b/telegram/ext/_stringcommandhandler.py
index 556e217e1..10d08d8ee 100644
--- a/telegram/ext/_stringcommandhandler.py
+++ b/telegram/ext/_stringcommandhandler.py
@@ -41,7 +41,7 @@ class StringCommandHandler(Handler[str, CCT]):
put in the queue. For example to send messages with the bot using command line or API.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
diff --git a/telegram/ext/_stringregexhandler.py b/telegram/ext/_stringregexhandler.py
index 919e56f94..a90606d4e 100644
--- a/telegram/ext/_stringregexhandler.py
+++ b/telegram/ext/_stringregexhandler.py
@@ -34,19 +34,19 @@ RT = TypeVar('RT')
class StringRegexHandler(Handler[str, CCT]):
"""Handler class to handle string updates based on a regex which checks the update content.
- Read the documentation of the ``re`` module for more information. The ``re.match`` function is
- used to determine if an update should be handled by this handler.
+ Read the documentation of the :mod:`re` module for more information. The :func:`re.match`
+ function is used to determine if an update should be handled by this handler.
Note:
This handler is not used to handle Telegram :attr:`telegram.Update`, but strings manually
put in the queue. For example to send messages with the bot using command line or API.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
- pattern (:obj:`str` | :obj:`Pattern`): The regex pattern.
+ pattern (:obj:`str` | :func:`re.Pattern `): The regex pattern.
callback (:obj:`callable`): The callback function for this handler. Will be called when
:attr:`check_update` has determined that an update should be processed by this handler.
Callback signature: ``def callback(update: Update, context: CallbackContext)``
@@ -57,7 +57,7 @@ class StringRegexHandler(Handler[str, CCT]):
Defaults to :obj:`False`.
Attributes:
- pattern (:obj:`str` | :obj:`Pattern`): The regex pattern.
+ pattern (:obj:`str` | :func:`re.Pattern `): The regex pattern.
callback (:obj:`callable`): The callback function for this handler.
run_async (:obj:`bool`): Determines whether the callback will run asynchronously.
diff --git a/telegram/ext/_typehandler.py b/telegram/ext/_typehandler.py
index eb4dc2720..2696d2325 100644
--- a/telegram/ext/_typehandler.py
+++ b/telegram/ext/_typehandler.py
@@ -32,7 +32,7 @@ class TypeHandler(Handler[UT, CCT]):
"""Handler class to handle updates of custom types.
Warning:
- When setting ``run_async`` to :obj:`True`, you cannot rely on adding custom
+ When setting :paramref:`run_async` to :obj:`True`, you cannot rely on adding custom
attributes to :class:`telegram.ext.CallbackContext`. See its docs for more info.
Args:
diff --git a/telegram/ext/_updater.py b/telegram/ext/_updater.py
index 689a59e7b..f6b2b3431 100644
--- a/telegram/ext/_updater.py
+++ b/telegram/ext/_updater.py
@@ -76,12 +76,12 @@ class Updater(Generic[BT, DT]):
Attributes:
bot (:class:`telegram.Bot`): The bot used with this Updater.
- user_signal_handler (:obj:`function`): Optional. Function to be called when a signal is
+ user_signal_handler (Callable): Optional. Function to be called when a signal is
received.
.. versionchanged:: 14.0
Renamed ``user_sig_handler`` to ``user_signal_handler``.
- update_queue (:obj:`Queue`): Queue for the updates.
+ update_queue (:class:`queue.Queue`): Queue for the updates.
dispatcher (:class:`telegram.ext.Dispatcher`): Optional. Dispatcher that handles the
updates and dispatches them to the handlers.
running (:obj:`bool`): Indicates if the updater is running.
@@ -188,7 +188,7 @@ class Updater(Generic[BT, DT]):
"""Starts polling updates from Telegram.
.. versionchanged:: 14.0
- Removed the ``clean`` argument in favor of ``drop_pending_updates``.
+ Removed the ``clean`` argument in favor of :paramref:`drop_pending_updates`.
Args:
poll_interval (:obj:`float`, optional): Time to wait between polling updates from
@@ -212,7 +212,7 @@ class Updater(Generic[BT, DT]):
timeout from server (Default: ``2``).
Returns:
- :obj:`Queue`: The update queue that can be filled from the main thread.
+ :class:`queue.Queue`: The update queue that can be filled from the main thread.
"""
with self.__lock:
@@ -262,8 +262,8 @@ class Updater(Generic[BT, DT]):
max_connections: int = 40,
) -> Optional[Queue]:
"""
- Starts a small http server to listen for updates via webhook. If :attr:`cert`
- and :attr:`key` are not provided, the webhook will be started directly on
+ Starts a small http server to listen for updates via webhook. If :paramref:`cert`
+ and :paramref:`key` are not provided, the webhook will be started directly on
http://listen:port/url_path, so SSL can be handled by another
application. Else, the webhook will be started on
https://listen:port/url_path. Also calls :meth:`telegram.Bot.set_webhook` as required.
@@ -273,8 +273,8 @@ class Updater(Generic[BT, DT]):
``webhook_url`` instead of calling ``updater.bot.set_webhook(webhook_url)`` manually.
.. versionchanged:: 14.0
- Removed the ``clean`` argument in favor of ``drop_pending_updates`` and removed the
- deprecated argument ``force_event_loop``.
+ Removed the ``clean`` argument in favor of :paramref:`drop_pending_updates` and removed
+ the deprecated argument ``force_event_loop``.
Args:
listen (:obj:`str`, optional): IP-Address to listen on. Default ``127.0.0.1``.
@@ -308,7 +308,7 @@ class Updater(Generic[BT, DT]):
.. versionadded:: 13.6
Returns:
- :obj:`Queue`: The update queue that can be filled from the main thread.
+ :class:`queue.Queue`: The update queue that can be filled from the main thread.
"""
with self.__lock:
diff --git a/telegram/ext/_utils/types.py b/telegram/ext/_utils/types.py
index 105091d76..51037e5b0 100644
--- a/telegram/ext/_utils/types.py
+++ b/telegram/ext/_utils/types.py
@@ -40,7 +40,7 @@ ConversationDict = Dict[Tuple[int, ...], Optional[object]]
"""
CDCData = Tuple[List[Tuple[str, float, Dict[str, Any]]], Dict[str, str]]
-"""Tuple[List[Tuple[:obj:`str`, :obj:`float`, Dict[:obj:`str`, :obj:`Any`]]], \
+"""Tuple[List[Tuple[:obj:`str`, :obj:`float`, Dict[:obj:`str`, :class:`object`]]], \
Dict[:obj:`str`, :obj:`str`]]: Data returned by
:attr:`telegram.ext.CallbackDataCache.persistence_data`.
diff --git a/telegram/ext/filters.py b/telegram/ext/filters.py
index 0d0344794..842b412e6 100644
--- a/telegram/ext/filters.py
+++ b/telegram/ext/filters.py
@@ -25,7 +25,7 @@ This module contains filters for use with :class:`telegram.ext.MessageHandler`,
#. Filters are no longer callable, if you're using a custom filter and are calling an existing
filter, then switch to the new syntax: ``filters.{filter}.check_update(update)``.
#. Removed the ``Filters`` class. The filters are now directly attributes/classes of the
- :mod:`filters` module.
+ :mod:`~telegram.ext.filters` module.
#. The names of all filters has been updated:
* Filter classes which are ready for use, e.g ``Filters.all`` are now capitalized, e.g
@@ -561,7 +561,7 @@ class CaptionRegex(MessageFilter):
This filter will not work on simple text messages, but only on media with caption.
Args:
- pattern (:obj:`str` | :obj:`re.Pattern`): The regex pattern.
+ pattern (:obj:`str` | :func:`re.Pattern `): The regex pattern.
"""
__slots__ = ('pattern',)
@@ -1320,8 +1320,8 @@ class ForwardedFrom(_ChatUserBaseFilter):
Note:
When a user has disallowed adding a link to their account while forwarding their
messages, this filter will *not* work since both
- :attr:`telegram.Message.forwarded_from` and
- :attr:`telegram.Message.forwarded_from_chat` are :obj:`None`. However, this behaviour
+ :attr:`telegram.Message.forward_from` and
+ :attr:`telegram.Message.forward_from_chat` are :obj:`None`. However, this behaviour
is undocumented and might be changed by Telegram.
Warning:
@@ -1393,7 +1393,7 @@ class _HasProtectedContent(MessageFilter):
return bool(message.has_protected_content)
-HAS_PROTECTED_CONTENT = _HasProtectedContent(name='Filters.has_protected_content')
+HAS_PROTECTED_CONTENT = _HasProtectedContent(name='filters.HAS_PROTECTED_CONTENT')
"""Messages that contain :attr:`telegram.Message.has_protected_content`.
.. versionadded:: 13.9
@@ -1418,7 +1418,7 @@ class _IsAutomaticForward(MessageFilter):
return bool(message.is_automatic_forward)
-IS_AUTOMATIC_FORWARD = _IsAutomaticForward(name='Filters.is_automatic_forward')
+IS_AUTOMATIC_FORWARD = _IsAutomaticForward(name='filters.IS_AUTOMATIC_FORWARD')
"""Messages that contain :attr:`telegram.Message.is_automatic_forward`.
.. versionadded:: 13.9
@@ -1509,7 +1509,7 @@ POLL = _Poll(name="filters.POLL")
class Regex(MessageFilter):
"""
Filters updates by searching for an occurrence of ``pattern`` in the message text.
- The :obj:`re.search()` function is used to determine whether an update should be filtered.
+ The :func:`re.search` function is used to determine whether an update should be filtered.
Refer to the documentation of the :obj:`re` module for more information.
@@ -1532,7 +1532,7 @@ class Regex(MessageFilter):
first filter, since the second one is never evaluated.
Args:
- pattern (:obj:`str` | :obj:`re.Pattern`): The regex pattern.
+ pattern (:obj:`str` | :func:`re.Pattern `): The regex pattern.
"""
__slots__ = ('pattern',)
@@ -1593,7 +1593,7 @@ class SenderChat(_ChatUserBaseFilter):
group). Since v13.9, the field :attr:`telegram.Message.is_automatic_forward` will be
:obj:`True` for the discussion group message.
- .. seealso:: :attr:`telegram.ext.filters.IS_AUTOMATIC_FORWARD`
+ .. seealso:: :attr:`telegram.ext.filters.IS_AUTOMATIC_FORWARD`
Warning:
:attr:`chat_ids` will return a *copy* of the saved chat ids as :obj:`frozenset`. This
diff --git a/telegram/request.py b/telegram/request.py
index 20cc485d5..1c9e406bd 100644
--- a/telegram/request.py
+++ b/telegram/request.py
@@ -107,7 +107,7 @@ class Request:
con_pool_size (:obj:`int`): Number of connections to keep in the connection pool.
proxy_url (:obj:`str`): The URL to the proxy server. For example: `http://127.0.0.1:3128`.
urllib3_proxy_kwargs (:obj:`dict`): Arbitrary arguments passed as-is to
- :obj:`urllib3.ProxyManager`. This value will be ignored if :attr:`proxy_url` is not
+ ``urllib3.ProxyManager``. This value will be ignored if :paramref:`proxy_url` is not
set.
connect_timeout (:obj:`int` | :obj:`float`): The maximum amount of time (in seconds) to
wait for a connection attempt to a server to succeed. :obj:`None` will set an