mirror of
https://github.com/python-telegram-bot/python-telegram-bot.git
synced 2025-03-27 08:50:38 +01:00
Improve Type Hinting for Class Variables (#2136)
This commit is contained in:
parent
b554f1a85d
commit
9be4c7563b
12 changed files with 67 additions and 65 deletions
|
@ -23,7 +23,7 @@ from telegram import TelegramObject, ChatPhoto, constants
|
|||
from .chatpermissions import ChatPermissions
|
||||
|
||||
from telegram.utils.types import JSONDict
|
||||
from typing import Any, Optional, List, TYPE_CHECKING
|
||||
from typing import Any, Optional, List, TYPE_CHECKING, ClassVar
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from telegram import Bot, Message, ChatMember
|
||||
|
@ -92,13 +92,13 @@ class Chat(TelegramObject):
|
|||
|
||||
"""
|
||||
|
||||
PRIVATE: str = constants.CHAT_PRIVATE
|
||||
PRIVATE: ClassVar[str] = constants.CHAT_PRIVATE
|
||||
""":const:`telegram.constants.CHAT_PRIVATE`"""
|
||||
GROUP: str = constants.CHAT_GROUP
|
||||
GROUP: ClassVar[str] = constants.CHAT_GROUP
|
||||
""":const:`telegram.constants.CHAT_GROUP`"""
|
||||
SUPERGROUP: str = constants.CHAT_SUPERGROUP
|
||||
SUPERGROUP: ClassVar[str] = constants.CHAT_SUPERGROUP
|
||||
""":const:`telegram.constants.CHAT_SUPERGROUP`"""
|
||||
CHANNEL: str = constants.CHAT_CHANNEL
|
||||
CHANNEL: ClassVar[str] = constants.CHAT_CHANNEL
|
||||
""":const:`telegram.constants.CHAT_CHANNEL`"""
|
||||
|
||||
def __init__(
|
||||
|
|
|
@ -18,29 +18,30 @@
|
|||
# You should have received a copy of the GNU Lesser Public License
|
||||
# along with this program. If not, see [http://www.gnu.org/licenses/].
|
||||
"""This module contains an object that represents a Telegram ChatAction."""
|
||||
from typing import ClassVar
|
||||
from telegram import constants
|
||||
|
||||
|
||||
class ChatAction:
|
||||
"""Helper class to provide constants for different chat actions."""
|
||||
|
||||
FIND_LOCATION: str = constants.CHATACTION_FIND_LOCATION
|
||||
FIND_LOCATION: ClassVar[str] = constants.CHATACTION_FIND_LOCATION
|
||||
""":const:`telegram.constants.CHATACTION_FIND_LOCATION`"""
|
||||
RECORD_AUDIO: str = constants.CHATACTION_RECORD_AUDIO
|
||||
RECORD_AUDIO: ClassVar[str] = constants.CHATACTION_RECORD_AUDIO
|
||||
""":const:`telegram.constants.CHATACTION_RECORD_AUDIO`"""
|
||||
RECORD_VIDEO: str = constants.CHATACTION_RECORD_VIDEO
|
||||
RECORD_VIDEO: ClassVar[str] = constants.CHATACTION_RECORD_VIDEO
|
||||
""":const:`telegram.constants.CHATACTION_RECORD_VIDEO`"""
|
||||
RECORD_VIDEO_NOTE: str = constants.CHATACTION_RECORD_VIDEO_NOTE
|
||||
RECORD_VIDEO_NOTE: ClassVar[str] = constants.CHATACTION_RECORD_VIDEO_NOTE
|
||||
""":const:`telegram.constants.CHATACTION_RECORD_VIDEO_NOTE`"""
|
||||
TYPING: str = constants.CHATACTION_TYPING
|
||||
TYPING: ClassVar[str] = constants.CHATACTION_TYPING
|
||||
""":const:`telegram.constants.CHATACTION_TYPING`"""
|
||||
UPLOAD_AUDIO: str = constants.CHATACTION_UPLOAD_AUDIO
|
||||
UPLOAD_AUDIO: ClassVar[str] = constants.CHATACTION_UPLOAD_AUDIO
|
||||
""":const:`telegram.constants.CHATACTION_UPLOAD_AUDIO`"""
|
||||
UPLOAD_DOCUMENT: str = constants.CHATACTION_UPLOAD_DOCUMENT
|
||||
UPLOAD_DOCUMENT: ClassVar[str] = constants.CHATACTION_UPLOAD_DOCUMENT
|
||||
""":const:`telegram.constants.CHATACTION_UPLOAD_DOCUMENT`"""
|
||||
UPLOAD_PHOTO: str = constants.CHATACTION_UPLOAD_PHOTO
|
||||
UPLOAD_PHOTO: ClassVar[str] = constants.CHATACTION_UPLOAD_PHOTO
|
||||
""":const:`telegram.constants.CHATACTION_UPLOAD_PHOTO`"""
|
||||
UPLOAD_VIDEO: str = constants.CHATACTION_UPLOAD_VIDEO
|
||||
UPLOAD_VIDEO: ClassVar[str] = constants.CHATACTION_UPLOAD_VIDEO
|
||||
""":const:`telegram.constants.CHATACTION_UPLOAD_VIDEO`"""
|
||||
UPLOAD_VIDEO_NOTE: str = constants.CHATACTION_UPLOAD_VIDEO_NOTE
|
||||
UPLOAD_VIDEO_NOTE: ClassVar[str] = constants.CHATACTION_UPLOAD_VIDEO_NOTE
|
||||
""":const:`telegram.constants.CHATACTION_UPLOAD_VIDEO_NOTE`"""
|
||||
|
|
|
@ -23,7 +23,7 @@ from telegram import User, TelegramObject, constants
|
|||
from telegram.utils.helpers import to_timestamp, from_timestamp
|
||||
|
||||
from telegram.utils.types import JSONDict
|
||||
from typing import Any, Optional, TYPE_CHECKING
|
||||
from typing import Any, Optional, TYPE_CHECKING, ClassVar
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from telegram import Bot
|
||||
|
@ -111,17 +111,17 @@ class ChatMember(TelegramObject):
|
|||
may add web page previews to his messages.
|
||||
|
||||
"""
|
||||
ADMINISTRATOR: str = constants.CHATMEMBER_ADMINISTRATOR
|
||||
ADMINISTRATOR: ClassVar[str] = constants.CHATMEMBER_ADMINISTRATOR
|
||||
""":const:`telegram.constants.CHATMEMBER_ADMINISTRATOR`"""
|
||||
CREATOR: str = constants.CHATMEMBER_CREATOR
|
||||
CREATOR: ClassVar[str] = constants.CHATMEMBER_CREATOR
|
||||
""":const:`telegram.constants.CHATMEMBER_CREATOR`"""
|
||||
KICKED: str = constants.CHATMEMBER_KICKED
|
||||
KICKED: ClassVar[str] = constants.CHATMEMBER_KICKED
|
||||
""":const:`telegram.constants.CHATMEMBER_KICKED`"""
|
||||
LEFT: str = constants.CHATMEMBER_LEFT
|
||||
LEFT: ClassVar[str] = constants.CHATMEMBER_LEFT
|
||||
""":const:`telegram.constants.CHATMEMBER_LEFT`"""
|
||||
MEMBER: str = constants.CHATMEMBER_MEMBER
|
||||
MEMBER: ClassVar[str] = constants.CHATMEMBER_MEMBER
|
||||
""":const:`telegram.constants.CHATMEMBER_MEMBER`"""
|
||||
RESTRICTED: str = constants.CHATMEMBER_RESTRICTED
|
||||
RESTRICTED: ClassVar[str] = constants.CHATMEMBER_RESTRICTED
|
||||
""":const:`telegram.constants.CHATMEMBER_RESTRICTED`"""
|
||||
|
||||
def __init__(
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
# along with this program. If not, see [http://www.gnu.org/licenses/].
|
||||
"""This module contains an object that represents a Telegram Dice."""
|
||||
from telegram import TelegramObject, constants
|
||||
from typing import Any, List
|
||||
from typing import Any, List, ClassVar
|
||||
|
||||
|
||||
class Dice(TelegramObject):
|
||||
|
@ -55,11 +55,11 @@ class Dice(TelegramObject):
|
|||
|
||||
self._id_attrs = (self.value, self.emoji)
|
||||
|
||||
DICE: str = constants.DICE_DICE
|
||||
DICE: ClassVar[str] = constants.DICE_DICE
|
||||
""":const:`telegram.constants.DICE_DICE`"""
|
||||
DARTS: str = constants.DICE_DARTS
|
||||
DARTS: ClassVar[str] = constants.DICE_DARTS
|
||||
""":const:`telegram.constants.DICE_DARTS`"""
|
||||
BASKETBALL: str = constants.DICE_BASKETBALL
|
||||
BASKETBALL: ClassVar[str] = constants.DICE_BASKETBALL
|
||||
""":const:`telegram.constants.DICE_BASKETBALL`"""
|
||||
ALL_EMOJI: List[str] = constants.DICE_ALL_EMOJI
|
||||
ALL_EMOJI: ClassVar[List[str]] = constants.DICE_ALL_EMOJI
|
||||
""":const:`telegram.constants.DICE_ALL_EMOJI`"""
|
||||
|
|
|
@ -24,7 +24,7 @@ from copy import copy
|
|||
|
||||
from telegram import Bot
|
||||
|
||||
from typing import DefaultDict, Dict, Any, Tuple, Optional, cast
|
||||
from typing import DefaultDict, Dict, Any, Tuple, Optional, cast, ClassVar
|
||||
from telegram.utils.types import ConversationDict
|
||||
|
||||
|
||||
|
@ -302,5 +302,5 @@ class BasePersistence(ABC):
|
|||
"""
|
||||
pass
|
||||
|
||||
REPLACED_BOT = 'bot_instance_replaced_by_ptb_persistence'
|
||||
REPLACED_BOT: ClassVar[str] = 'bot_instance_replaced_by_ptb_persistence'
|
||||
""":obj:`str`: Placeholder for :class:`telegram.Bot` instances replaced in saved data."""
|
||||
|
|
|
@ -35,7 +35,7 @@ from telegram.ext import (
|
|||
from telegram.utils.promise import Promise
|
||||
|
||||
from telegram.utils.types import ConversationDict, HandlerArg
|
||||
from typing import Dict, Any, List, Optional, Tuple, TYPE_CHECKING, cast, NoReturn
|
||||
from typing import Dict, Any, List, Optional, Tuple, TYPE_CHECKING, cast, NoReturn, ClassVar
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from telegram.ext import Dispatcher, Job
|
||||
|
@ -169,11 +169,11 @@ class ConversationHandler(Handler):
|
|||
|
||||
"""
|
||||
|
||||
END = -1
|
||||
END: ClassVar[int] = -1
|
||||
""":obj:`int`: Used as a constant to return when a conversation is ended."""
|
||||
TIMEOUT = -2
|
||||
TIMEOUT: ClassVar[int] = -2
|
||||
""":obj:`int`: Used as a constant to handle state when a conversation is timed out."""
|
||||
WAITING = -3
|
||||
WAITING: ClassVar[int] = -3
|
||||
""":obj:`int`: Used as a constant to handle state when a conversation is still waiting on the
|
||||
previous ``@run_sync`` decorated running handler to finish."""
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ if TYPE_CHECKING:
|
|||
from telegram import Bot
|
||||
from telegram.ext import JobQueue
|
||||
|
||||
DEFAULT_GROUP = 0
|
||||
DEFAULT_GROUP: int = 0
|
||||
|
||||
|
||||
def run_async(
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
from telegram import PhotoSize, TelegramObject, constants
|
||||
from telegram.utils.types import JSONDict
|
||||
from typing import Any, Optional, List, TYPE_CHECKING
|
||||
from typing import Any, Optional, List, TYPE_CHECKING, ClassVar
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from telegram import Bot, File
|
||||
|
@ -233,13 +233,13 @@ class MaskPosition(TelegramObject):
|
|||
|
||||
"""
|
||||
|
||||
FOREHEAD: str = constants.STICKER_FOREHEAD
|
||||
FOREHEAD: ClassVar[str] = constants.STICKER_FOREHEAD
|
||||
""":const:`telegram.constants.STICKER_FOREHEAD`"""
|
||||
EYES: str = constants.STICKER_EYES
|
||||
EYES: ClassVar[str] = constants.STICKER_EYES
|
||||
""":const:`telegram.constants.STICKER_EYES`"""
|
||||
MOUTH: str = constants.STICKER_MOUTH
|
||||
MOUTH: ClassVar[str] = constants.STICKER_MOUTH
|
||||
""":const:`telegram.constants.STICKER_MOUTH`"""
|
||||
CHIN: str = constants.STICKER_CHIN
|
||||
CHIN: ClassVar[str] = constants.STICKER_CHIN
|
||||
""":const:`telegram.constants.STICKER_CHIN`"""
|
||||
|
||||
def __init__(self, point: str, x_shift: float, y_shift: float, scale: float, **kwargs: Any):
|
||||
|
|
|
@ -50,7 +50,7 @@ from telegram import ParseMode
|
|||
from telegram.utils.helpers import escape_markdown, to_timestamp, from_timestamp
|
||||
|
||||
from telegram.utils.types import JSONDict
|
||||
from typing import Any, List, Dict, Optional, Union, TYPE_CHECKING
|
||||
from typing import Any, List, Dict, Optional, Union, TYPE_CHECKING, ClassVar
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from telegram import Bot, InputMedia, GameHighScore
|
||||
|
@ -259,7 +259,7 @@ class Message(TelegramObject):
|
|||
|
||||
_effective_attachment = _UNDEFINED
|
||||
|
||||
ATTACHMENT_TYPES = [
|
||||
ATTACHMENT_TYPES: ClassVar[List[str]] = [
|
||||
'audio',
|
||||
'game',
|
||||
'animation',
|
||||
|
@ -275,7 +275,7 @@ class Message(TelegramObject):
|
|||
'invoice',
|
||||
'successful_payment',
|
||||
]
|
||||
MESSAGE_TYPES = [
|
||||
MESSAGE_TYPES: ClassVar[List[str]] = [
|
||||
'text',
|
||||
'new_chat_members',
|
||||
'left_chat_member',
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
from telegram import User, TelegramObject, constants
|
||||
from telegram.utils.types import JSONDict
|
||||
from typing import Any, Optional, List, TYPE_CHECKING
|
||||
from typing import Any, Optional, List, TYPE_CHECKING, ClassVar
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from telegram import Bot
|
||||
|
@ -90,36 +90,36 @@ class MessageEntity(TelegramObject):
|
|||
|
||||
return cls(**data)
|
||||
|
||||
MENTION: str = constants.MESSAGEENTITY_MENTION
|
||||
MENTION: ClassVar[str] = constants.MESSAGEENTITY_MENTION
|
||||
""":const:`telegram.constants.MESSAGEENTITY_MENTION`"""
|
||||
HASHTAG: str = constants.MESSAGEENTITY_HASHTAG
|
||||
HASHTAG: ClassVar[str] = constants.MESSAGEENTITY_HASHTAG
|
||||
""":const:`telegram.constants.MESSAGEENTITY_HASHTAG`"""
|
||||
CASHTAG: str = constants.MESSAGEENTITY_CASHTAG
|
||||
CASHTAG: ClassVar[str] = constants.MESSAGEENTITY_CASHTAG
|
||||
""":const:`telegram.constants.MESSAGEENTITY_CASHTAG`"""
|
||||
PHONE_NUMBER: str = constants.MESSAGEENTITY_PHONE_NUMBER
|
||||
PHONE_NUMBER: ClassVar[str] = constants.MESSAGEENTITY_PHONE_NUMBER
|
||||
""":const:`telegram.constants.MESSAGEENTITY_PHONE_NUMBER`"""
|
||||
BOT_COMMAND: str = constants.MESSAGEENTITY_BOT_COMMAND
|
||||
BOT_COMMAND: ClassVar[str] = constants.MESSAGEENTITY_BOT_COMMAND
|
||||
""":const:`telegram.constants.MESSAGEENTITY_BOT_COMMAND`"""
|
||||
URL: str = constants.MESSAGEENTITY_URL
|
||||
URL: ClassVar[str] = constants.MESSAGEENTITY_URL
|
||||
""":const:`telegram.constants.MESSAGEENTITY_URL`"""
|
||||
EMAIL: str = constants.MESSAGEENTITY_EMAIL
|
||||
EMAIL: ClassVar[str] = constants.MESSAGEENTITY_EMAIL
|
||||
""":const:`telegram.constants.MESSAGEENTITY_EMAIL`"""
|
||||
BOLD: str = constants.MESSAGEENTITY_BOLD
|
||||
BOLD: ClassVar[str] = constants.MESSAGEENTITY_BOLD
|
||||
""":const:`telegram.constants.MESSAGEENTITY_BOLD`"""
|
||||
ITALIC: str = constants.MESSAGEENTITY_ITALIC
|
||||
ITALIC: ClassVar[str] = constants.MESSAGEENTITY_ITALIC
|
||||
""":const:`telegram.constants.MESSAGEENTITY_ITALIC`"""
|
||||
CODE: str = constants.MESSAGEENTITY_CODE
|
||||
CODE: ClassVar[str] = constants.MESSAGEENTITY_CODE
|
||||
""":const:`telegram.constants.MESSAGEENTITY_CODE`"""
|
||||
PRE: str = constants.MESSAGEENTITY_PRE
|
||||
PRE: ClassVar[str] = constants.MESSAGEENTITY_PRE
|
||||
""":const:`telegram.constants.MESSAGEENTITY_PRE`"""
|
||||
TEXT_LINK: str = constants.MESSAGEENTITY_TEXT_LINK
|
||||
TEXT_LINK: ClassVar[str] = constants.MESSAGEENTITY_TEXT_LINK
|
||||
""":const:`telegram.constants.MESSAGEENTITY_TEXT_LINK`"""
|
||||
TEXT_MENTION: str = constants.MESSAGEENTITY_TEXT_MENTION
|
||||
TEXT_MENTION: ClassVar[str] = constants.MESSAGEENTITY_TEXT_MENTION
|
||||
""":const:`telegram.constants.MESSAGEENTITY_TEXT_MENTION`"""
|
||||
UNDERLINE: str = constants.MESSAGEENTITY_UNDERLINE
|
||||
UNDERLINE: ClassVar[str] = constants.MESSAGEENTITY_UNDERLINE
|
||||
""":const:`telegram.constants.MESSAGEENTITY_UNDERLINE`"""
|
||||
STRIKETHROUGH: str = constants.MESSAGEENTITY_STRIKETHROUGH
|
||||
STRIKETHROUGH: ClassVar[str] = constants.MESSAGEENTITY_STRIKETHROUGH
|
||||
""":const:`telegram.constants.MESSAGEENTITY_STRIKETHROUGH`"""
|
||||
ALL_TYPES: List[str] = constants.MESSAGEENTITY_ALL_TYPES
|
||||
ALL_TYPES: ClassVar[List[str]] = constants.MESSAGEENTITY_ALL_TYPES
|
||||
""":const:`telegram.constants.MESSAGEENTITY_ALL_TYPES`\n
|
||||
List of all the types"""
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
# You should have received a copy of the GNU Lesser Public License
|
||||
# along with this program. If not, see [http://www.gnu.org/licenses/].
|
||||
"""This module contains an object that represents a Telegram Message Parse Modes."""
|
||||
from typing import ClassVar
|
||||
|
||||
from telegram import constants
|
||||
|
||||
|
@ -25,14 +26,14 @@ from telegram import constants
|
|||
class ParseMode:
|
||||
"""This object represents a Telegram Message Parse Modes."""
|
||||
|
||||
MARKDOWN: str = constants.PARSEMODE_MARKDOWN
|
||||
MARKDOWN: ClassVar[str] = constants.PARSEMODE_MARKDOWN
|
||||
""":const:`telegram.constants.PARSEMODE_MARKDOWN`\n
|
||||
|
||||
Note:
|
||||
:attr:`MARKDOWN` is a legacy mode, retained by Telegram for backward compatibility.
|
||||
You should use :attr:`MARKDOWN_V2` instead.
|
||||
"""
|
||||
MARKDOWN_V2: str = constants.PARSEMODE_MARKDOWN_V2
|
||||
MARKDOWN_V2: ClassVar[str] = constants.PARSEMODE_MARKDOWN_V2
|
||||
""":const:`telegram.constants.PARSEMODE_MARKDOWN_V2`"""
|
||||
HTML: str = constants.PARSEMODE_HTML
|
||||
HTML: ClassVar[str] = constants.PARSEMODE_HTML
|
||||
""":const:`telegram.constants.PARSEMODE_HTML`"""
|
||||
|
|
|
@ -25,7 +25,7 @@ import datetime
|
|||
from telegram import TelegramObject, User, MessageEntity, constants
|
||||
from telegram.utils.helpers import to_timestamp, from_timestamp
|
||||
from telegram.utils.types import JSONDict
|
||||
from typing import Any, Dict, Optional, List, TYPE_CHECKING
|
||||
from typing import Any, Dict, Optional, List, TYPE_CHECKING, ClassVar
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from telegram import Bot
|
||||
|
@ -259,7 +259,7 @@ class Poll(TelegramObject):
|
|||
if entity.type in types
|
||||
}
|
||||
|
||||
REGULAR: str = constants.POLL_REGULAR
|
||||
REGULAR: ClassVar[str] = constants.POLL_REGULAR
|
||||
""":const:`telegram.constants.POLL_REGULAR`"""
|
||||
QUIZ: str = constants.POLL_QUIZ
|
||||
QUIZ: ClassVar[str] = constants.POLL_QUIZ
|
||||
""":const:`telegram.constants.POLL_QUIZ`"""
|
||||
|
|
Loading…
Add table
Reference in a new issue