diff --git a/telegram/base.py b/telegram/base.py index c0c034405..a3f9b0b46 100644 --- a/telegram/base.py +++ b/telegram/base.py @@ -23,7 +23,7 @@ except ImportError: import json # type: ignore[no-redef] import warnings -from typing import TYPE_CHECKING, Any, List, Optional, Tuple, Type, TypeVar +from typing import TYPE_CHECKING, List, Optional, Tuple, Type, TypeVar from telegram.utils.types import JSONDict @@ -36,15 +36,12 @@ TO = TypeVar('TO', bound='TelegramObject', covariant=True) class TelegramObject: """Base class for most telegram objects.""" - # def __init__(self, *args: Any, **_kwargs: Any): - # pass - - _id_attrs: Tuple[Any, ...] = () + _id_attrs: Tuple[object, ...] = () def __str__(self) -> str: return str(self.to_dict()) - def __getitem__(self, item: str) -> Any: + def __getitem__(self, item: str) -> object: return self.__dict__[item] @staticmethod diff --git a/telegram/bot.py b/telegram/bot.py index 0fe60c1c6..caab95274 100644 --- a/telegram/bot.py +++ b/telegram/bot.py @@ -27,7 +27,6 @@ from datetime import datetime from typing import ( TYPE_CHECKING, - Any, Callable, List, Optional, @@ -110,11 +109,11 @@ RT = TypeVar('RT') def log( - func: Callable[..., RT], *args: Any, **kwargs: Any # pylint: disable=W0613 + func: Callable[..., RT], *args: object, **kwargs: object # pylint: disable=W0613 ) -> Callable[..., RT]: logger = logging.getLogger(func.__module__) - def decorator(self: 'Bot', *args: Any, **kwargs: Any) -> RT: # pylint: disable=W0613 + def decorator(self: 'Bot', *args: object, **kwargs: object) -> RT: # pylint: disable=W0613 logger.debug('Entering: %s', func.__name__) result = func(*args, **kwargs) logger.debug(result) @@ -150,7 +149,7 @@ class Bot(TelegramObject): """ - def __new__(cls, *args: Any, **kwargs: Any) -> 'Bot': # pylint: disable=W0613 + def __new__(cls, *args: object, **kwargs: object) -> 'Bot': # pylint: disable=W0613 # Get default values from kwargs defaults = kwargs.get('defaults') diff --git a/telegram/chat.py b/telegram/chat.py index 82155532b..dc55ffbe0 100644 --- a/telegram/chat.py +++ b/telegram/chat.py @@ -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 Chat.""" from datetime import datetime -from typing import TYPE_CHECKING, Any, List, Optional, ClassVar, Union, Tuple +from typing import TYPE_CHECKING, List, Optional, ClassVar, Union, Tuple, Any from telegram import ChatPhoto, TelegramObject, constants from telegram.utils.types import JSONDict, FileInput diff --git a/telegram/ext/basepersistence.py b/telegram/ext/basepersistence.py index 3244da61a..834bfa7f2 100644 --- a/telegram/ext/basepersistence.py +++ b/telegram/ext/basepersistence.py @@ -20,7 +20,7 @@ import warnings from abc import ABC, abstractmethod from copy import copy -from typing import Any, DefaultDict, Dict, Optional, Tuple, cast, ClassVar +from typing import DefaultDict, Dict, Optional, Tuple, cast, ClassVar from telegram import Bot @@ -75,7 +75,9 @@ class BasePersistence(ABC): persistence class. """ - def __new__(cls, *args: Any, **kwargs: Any) -> 'BasePersistence': # pylint: disable=W0613 + def __new__( + cls, *args: object, **kwargs: object # pylint: disable=W0613 + ) -> 'BasePersistence': instance = super().__new__(cls) get_user_data = instance.get_user_data get_chat_data = instance.get_chat_data @@ -84,13 +86,13 @@ class BasePersistence(ABC): update_chat_data = instance.update_chat_data update_bot_data = instance.update_bot_data - def get_user_data_insert_bot() -> DefaultDict[int, Dict[Any, Any]]: + def get_user_data_insert_bot() -> DefaultDict[int, Dict[object, object]]: return instance.insert_bot(get_user_data()) - def get_chat_data_insert_bot() -> DefaultDict[int, Dict[Any, Any]]: + def get_chat_data_insert_bot() -> DefaultDict[int, Dict[object, object]]: return instance.insert_bot(get_chat_data()) - def get_bot_data_insert_bot() -> Dict[Any, Any]: + def get_bot_data_insert_bot() -> Dict[object, object]: return instance.insert_bot(get_bot_data()) def update_user_data_replace_bot(user_id: int, data: Dict) -> None: @@ -146,7 +148,7 @@ class BasePersistence(ABC): return cls._replace_bot(obj, {}) @classmethod - def _replace_bot(cls, obj: object, memo: Dict[int, Any]) -> object: # pylint: disable=R0911 + def _replace_bot(cls, obj: object, memo: Dict[int, object]) -> object: # pylint: disable=R0911 obj_id = id(obj) if obj_id in memo: return memo[obj_id] @@ -223,7 +225,7 @@ class BasePersistence(ABC): """ return self._insert_bot(obj, {}) - def _insert_bot(self, obj: object, memo: Dict[int, Any]) -> object: # pylint: disable=R0911 + def _insert_bot(self, obj: object, memo: Dict[int, object]) -> object: # pylint: disable=R0911 obj_id = id(obj) if obj_id in memo: return memo[obj_id] @@ -288,7 +290,7 @@ class BasePersistence(ABC): return obj @abstractmethod - def get_user_data(self) -> DefaultDict[int, Dict[Any, Any]]: + def get_user_data(self) -> DefaultDict[int, Dict[object, object]]: """ "Will be called by :class:`telegram.ext.Dispatcher` upon creation with a persistence object. It should return the ``user_data`` if stored, or an empty ``defaultdict(dict)``. @@ -298,7 +300,7 @@ class BasePersistence(ABC): """ @abstractmethod - def get_chat_data(self) -> DefaultDict[int, Dict[Any, Any]]: + def get_chat_data(self) -> DefaultDict[int, Dict[object, object]]: """ "Will be called by :class:`telegram.ext.Dispatcher` upon creation with a persistence object. It should return the ``chat_data`` if stored, or an empty ``defaultdict(dict)``. @@ -308,7 +310,7 @@ class BasePersistence(ABC): """ @abstractmethod - def get_bot_data(self) -> Dict[Any, Any]: + def get_bot_data(self) -> Dict[object, object]: """ "Will be called by :class:`telegram.ext.Dispatcher` upon creation with a persistence object. It should return the ``bot_data`` if stored, or an empty :obj:`dict`. diff --git a/telegram/ext/callbackcontext.py b/telegram/ext/callbackcontext.py index 9af2d8f0f..bb09fe628 100644 --- a/telegram/ext/callbackcontext.py +++ b/telegram/ext/callbackcontext.py @@ -19,7 +19,7 @@ # pylint: disable=R0201 """This module contains the CallbackContext class.""" from queue import Queue -from typing import TYPE_CHECKING, Any, Dict, List, Match, NoReturn, Optional, Tuple, Union +from typing import TYPE_CHECKING, Dict, List, Match, NoReturn, Optional, Tuple, Union from telegram import Update @@ -98,14 +98,14 @@ class CallbackContext: ) self._dispatcher = dispatcher self._bot_data = dispatcher.bot_data - self._chat_data: Optional[Dict[Any, Any]] = None - self._user_data: Optional[Dict[Any, Any]] = None + self._chat_data: Optional[Dict[object, object]] = None + self._user_data: Optional[Dict[object, object]] = None self.args: Optional[List[str]] = None self.matches: Optional[List[Match]] = None self.error: Optional[Exception] = None self.job: Optional['Job'] = None self.async_args: Optional[Union[List, Tuple]] = None - self.async_kwargs: Optional[Dict[str, Any]] = None + self.async_kwargs: Optional[Dict[str, object]] = None @property def dispatcher(self) -> 'Dispatcher': @@ -117,7 +117,7 @@ class CallbackContext: return self._bot_data @bot_data.setter - def bot_data(self, value: Any) -> NoReturn: + def bot_data(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to bot_data, see " "https://git.io/fjxKe" ) @@ -127,7 +127,7 @@ class CallbackContext: return self._chat_data @chat_data.setter - def chat_data(self, value: Any) -> NoReturn: + def chat_data(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to chat_data, see " "https://git.io/fjxKe" ) @@ -137,7 +137,7 @@ class CallbackContext: return self._user_data @user_data.setter - def user_data(self, value: Any) -> NoReturn: + def user_data(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to user_data, see " "https://git.io/fjxKe" ) @@ -149,7 +149,7 @@ class CallbackContext: error: Exception, dispatcher: 'Dispatcher', async_args: Union[List, Tuple] = None, - async_kwargs: Dict[str, Any] = None, + async_kwargs: Dict[str, object] = None, ) -> 'CallbackContext': self = cls.from_update(update, dispatcher) self.error = error @@ -177,7 +177,7 @@ class CallbackContext: self.job = job return self - def update(self, data: Dict[str, Any]) -> None: + def update(self, data: Dict[str, object]) -> None: self.__dict__.update(data) @property diff --git a/telegram/ext/callbackqueryhandler.py b/telegram/ext/callbackqueryhandler.py index ee13e8964..285f11bb5 100644 --- a/telegram/ext/callbackqueryhandler.py +++ b/telegram/ext/callbackqueryhandler.py @@ -21,7 +21,6 @@ import re from typing import ( TYPE_CHECKING, - Any, Callable, Dict, Match, @@ -148,7 +147,7 @@ class CallbackQueryHandler(Handler[Update]): self.pass_groups = pass_groups self.pass_groupdict = pass_groupdict - def check_update(self, update: Any) -> Optional[Union[bool, object]]: + def check_update(self, update: object) -> Optional[Union[bool, object]]: """Determines whether an update should be passed to this handlers :attr:`callback`. Args: @@ -173,7 +172,7 @@ class CallbackQueryHandler(Handler[Update]): dispatcher: 'Dispatcher', update: Update = None, check_result: Union[bool, Match] = None, - ) -> Dict[str, Any]: + ) -> Dict[str, object]: optional_args = super().collect_optional_args(dispatcher, update, check_result) if self.pattern: check_result = cast(Match, check_result) diff --git a/telegram/ext/choseninlineresulthandler.py b/telegram/ext/choseninlineresulthandler.py index 2b89636f9..07ce5283a 100644 --- a/telegram/ext/choseninlineresulthandler.py +++ b/telegram/ext/choseninlineresulthandler.py @@ -18,7 +18,7 @@ # along with this program. If not, see [http://www.gnu.org/licenses/]. """This module contains the ChosenInlineResultHandler class.""" -from typing import Optional, TypeVar, Union, Any +from typing import Optional, TypeVar, Union from telegram import Update @@ -85,7 +85,7 @@ class ChosenInlineResultHandler(Handler[Update]): """ - def check_update(self, update: Any) -> Optional[Union[bool, object]]: + def check_update(self, update: object) -> Optional[Union[bool, object]]: """Determines whether an update should be passed to this handlers :attr:`callback`. Args: diff --git a/telegram/ext/commandhandler.py b/telegram/ext/commandhandler.py index df7a82906..4b38b4994 100644 --- a/telegram/ext/commandhandler.py +++ b/telegram/ext/commandhandler.py @@ -19,7 +19,7 @@ """This module contains the CommandHandler and PrefixHandler classes.""" import re import warnings -from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Tuple, TypeVar, Union +from typing import TYPE_CHECKING, Callable, Dict, List, Optional, Tuple, TypeVar, Union from telegram import MessageEntity, Update from telegram.ext import BaseFilter, Filters @@ -177,7 +177,7 @@ class CommandHandler(Handler[Update]): self.pass_args = pass_args def check_update( - self, update: Any + self, update: object ) -> Optional[Union[bool, Tuple[List[str], Optional[Union[bool, Dict]]]]]: """Determines whether an update should be passed to this handlers :attr:`callback`. @@ -220,7 +220,7 @@ class CommandHandler(Handler[Update]): dispatcher: 'Dispatcher', update: Update = None, check_result: Optional[Union[bool, Tuple[List[str], Optional[bool]]]] = None, - ) -> Dict[str, Any]: + ) -> Dict[str, object]: optional_args = super().collect_optional_args(dispatcher, update) if self.pass_args and isinstance(check_result, tuple): optional_args['args'] = check_result[0] @@ -415,7 +415,7 @@ class PrefixHandler(CommandHandler): self._commands = [x.lower() + y.lower() for x in self.prefix for y in self.command] def check_update( - self, update: Update + self, update: object ) -> Optional[Union[bool, Tuple[List[str], Optional[Union[bool, Dict]]]]]: """Determines whether an update should be passed to this handlers :attr:`callback`. diff --git a/telegram/ext/conversationhandler.py b/telegram/ext/conversationhandler.py index 2bee77406..50e6668e0 100644 --- a/telegram/ext/conversationhandler.py +++ b/telegram/ext/conversationhandler.py @@ -22,7 +22,7 @@ import logging import warnings from threading import Lock -from typing import TYPE_CHECKING, Any, Dict, List, NoReturn, Optional, Tuple, cast, ClassVar +from typing import TYPE_CHECKING, Dict, List, NoReturn, Optional, Tuple, cast, ClassVar from telegram import Update from telegram.ext import ( @@ -286,7 +286,7 @@ class ConversationHandler(Handler[Update]): return self._entry_points @entry_points.setter - def entry_points(self, value: Any) -> NoReturn: + def entry_points(self, value: object) -> NoReturn: raise ValueError('You can not assign a new value to entry_points after initialization.') @property @@ -294,7 +294,7 @@ class ConversationHandler(Handler[Update]): return self._states @states.setter - def states(self, value: Any) -> NoReturn: + def states(self, value: object) -> NoReturn: raise ValueError('You can not assign a new value to states after initialization.') @property @@ -302,7 +302,7 @@ class ConversationHandler(Handler[Update]): return self._fallbacks @fallbacks.setter - def fallbacks(self, value: Any) -> NoReturn: + def fallbacks(self, value: object) -> NoReturn: raise ValueError('You can not assign a new value to fallbacks after initialization.') @property @@ -310,7 +310,7 @@ class ConversationHandler(Handler[Update]): return self._allow_reentry @allow_reentry.setter - def allow_reentry(self, value: Any) -> NoReturn: + def allow_reentry(self, value: object) -> NoReturn: raise ValueError('You can not assign a new value to allow_reentry after initialization.') @property @@ -318,7 +318,7 @@ class ConversationHandler(Handler[Update]): return self._per_user @per_user.setter - def per_user(self, value: Any) -> NoReturn: + def per_user(self, value: object) -> NoReturn: raise ValueError('You can not assign a new value to per_user after initialization.') @property @@ -326,7 +326,7 @@ class ConversationHandler(Handler[Update]): return self._per_chat @per_chat.setter - def per_chat(self, value: Any) -> NoReturn: + def per_chat(self, value: object) -> NoReturn: raise ValueError('You can not assign a new value to per_chat after initialization.') @property @@ -334,7 +334,7 @@ class ConversationHandler(Handler[Update]): return self._per_message @per_message.setter - def per_message(self, value: Any) -> NoReturn: + def per_message(self, value: object) -> NoReturn: raise ValueError('You can not assign a new value to per_message after initialization.') @property @@ -342,7 +342,7 @@ class ConversationHandler(Handler[Update]): return self._conversation_timeout @conversation_timeout.setter - def conversation_timeout(self, value: Any) -> NoReturn: + def conversation_timeout(self, value: object) -> NoReturn: raise ValueError( 'You can not assign a new value to conversation_timeout after ' 'initialization.' ) @@ -352,7 +352,7 @@ class ConversationHandler(Handler[Update]): return self._name @name.setter - def name(self, value: Any) -> NoReturn: + def name(self, value: object) -> NoReturn: raise ValueError('You can not assign a new value to name after initialization.') @property @@ -360,7 +360,7 @@ class ConversationHandler(Handler[Update]): return self._map_to_parent @map_to_parent.setter - def map_to_parent(self, value: Any) -> NoReturn: + def map_to_parent(self, value: object) -> NoReturn: raise ValueError('You can not assign a new value to map_to_parent after initialization.') @property @@ -409,7 +409,7 @@ class ConversationHandler(Handler[Update]): return tuple(key) - def check_update(self, update: Any) -> CheckUpdateType: # pylint: disable=R0911 + def check_update(self, update: object) -> CheckUpdateType: # pylint: disable=R0911 """ Determines whether an update should be handled by this conversationhandler, and if so in which state the conversation currently is. diff --git a/telegram/ext/defaults.py b/telegram/ext/defaults.py index e99d4c8ec..417d9158a 100644 --- a/telegram/ext/defaults.py +++ b/telegram/ext/defaults.py @@ -18,7 +18,7 @@ # along with this program. If not, see [http://www.gnu.org/licenses/]. # pylint: disable=R0201, E0401 """This module contains the class Defaults, which allows to pass default values to Updater.""" -from typing import Any, NoReturn, Optional, Union +from typing import NoReturn, Optional, Union import pytz @@ -100,7 +100,7 @@ class Defaults: return self._parse_mode @parse_mode.setter - def parse_mode(self, value: Any) -> NoReturn: + def parse_mode(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to defaults after because it would " "not have any effect." @@ -111,7 +111,7 @@ class Defaults: return self._disable_notification @disable_notification.setter - def disable_notification(self, value: Any) -> NoReturn: + def disable_notification(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to defaults after because it would " "not have any effect." @@ -122,7 +122,7 @@ class Defaults: return self._disable_web_page_preview @disable_web_page_preview.setter - def disable_web_page_preview(self, value: Any) -> NoReturn: + def disable_web_page_preview(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to defaults after because it would " "not have any effect." @@ -133,7 +133,7 @@ class Defaults: return self._allow_sending_without_reply @allow_sending_without_reply.setter - def allow_sending_without_reply(self, value: Any) -> NoReturn: + def allow_sending_without_reply(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to defaults after because it would " "not have any effect." @@ -144,7 +144,7 @@ class Defaults: return self._timeout @timeout.setter - def timeout(self, value: Any) -> NoReturn: + def timeout(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to defaults after because it would " "not have any effect." @@ -155,7 +155,7 @@ class Defaults: return self._quote @quote.setter - def quote(self, value: Any) -> NoReturn: + def quote(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to defaults after because it would " "not have any effect." @@ -166,7 +166,7 @@ class Defaults: return self._tzinfo @tzinfo.setter - def tzinfo(self, value: Any) -> NoReturn: + def tzinfo(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to defaults after because it would " "not have any effect." @@ -177,7 +177,7 @@ class Defaults: return self._run_async @run_async.setter - def run_async(self, value: Any) -> NoReturn: + def run_async(self, value: object) -> NoReturn: raise AttributeError( "You can not assign a new value to defaults after because it would " "not have any effect." diff --git a/telegram/ext/dictpersistence.py b/telegram/ext/dictpersistence.py index 26165b7ef..572a27e85 100644 --- a/telegram/ext/dictpersistence.py +++ b/telegram/ext/dictpersistence.py @@ -19,7 +19,7 @@ """This module contains the DictPersistence class.""" from copy import deepcopy -from typing import Any, DefaultDict, Dict, Optional, Tuple +from typing import DefaultDict, Dict, Optional, Tuple from collections import defaultdict from telegram.utils.helpers import ( @@ -169,7 +169,7 @@ class DictPersistence(BasePersistence): return json.dumps(self.bot_data) @property - def conversations(self) -> Optional[Dict[str, Dict[Tuple, Any]]]: + def conversations(self) -> Optional[Dict[str, Dict[Tuple, object]]]: """:obj:`dict`: The conversations as a dict.""" return self._conversations @@ -180,7 +180,7 @@ class DictPersistence(BasePersistence): return self._conversations_json return encode_conversations_to_json(self.conversations) # type: ignore[arg-type] - def get_user_data(self) -> DefaultDict[int, Dict[Any, Any]]: + def get_user_data(self) -> DefaultDict[int, Dict[object, object]]: """Returns the user_data created from the ``user_data_json`` or an empty :obj:`defaultdict`. @@ -193,7 +193,7 @@ class DictPersistence(BasePersistence): self._user_data = defaultdict(dict) return deepcopy(self.user_data) # type: ignore[arg-type] - def get_chat_data(self) -> DefaultDict[int, Dict[Any, Any]]: + def get_chat_data(self) -> DefaultDict[int, Dict[object, object]]: """Returns the chat_data created from the ``chat_data_json`` or an empty :obj:`defaultdict`. @@ -206,7 +206,7 @@ class DictPersistence(BasePersistence): self._chat_data = defaultdict(dict) return deepcopy(self.chat_data) # type: ignore[arg-type] - def get_bot_data(self) -> Dict[Any, Any]: + def get_bot_data(self) -> Dict[object, object]: """Returns the bot_data created from the ``bot_data_json`` or an empty :obj:`dict`. Returns: diff --git a/telegram/ext/dispatcher.py b/telegram/ext/dispatcher.py index abde3ffa3..eeb67ceaf 100644 --- a/telegram/ext/dispatcher.py +++ b/telegram/ext/dispatcher.py @@ -26,7 +26,7 @@ from functools import wraps from queue import Empty, Queue from threading import BoundedSemaphore, Event, Lock, Thread, current_thread from time import sleep -from typing import TYPE_CHECKING, Any, Callable, DefaultDict, Dict, List, Optional, Set, Union +from typing import TYPE_CHECKING, Callable, DefaultDict, Dict, List, Optional, Set, Union from uuid import uuid4 from telegram import TelegramError, Update @@ -45,8 +45,8 @@ DEFAULT_GROUP: int = 0 def run_async( - func: Callable[[Update, CallbackContext], Any] -) -> Callable[[Update, CallbackContext], Any]: + func: Callable[[Update, CallbackContext], object] +) -> Callable[[Update, CallbackContext], object]: """ Function decorator that will run the function in a new thread. @@ -64,7 +64,7 @@ def run_async( """ @wraps(func) - def async_func(*args: Any, **kwargs: Any) -> Any: + def async_func(*args: object, **kwargs: object) -> object: warnings.warn( 'The @run_async decorator is deprecated. Use the `run_async` parameter of ' 'your Handler or `Dispatcher.run_async` instead.', @@ -162,8 +162,8 @@ class Dispatcher: stacklevel=3, ) - self.user_data: DefaultDict[int, Dict[Any, Any]] = defaultdict(dict) - self.chat_data: DefaultDict[int, Dict[Any, Any]] = defaultdict(dict) + self.user_data: DefaultDict[int, Dict[object, object]] = defaultdict(dict) + self.chat_data: DefaultDict[int, Dict[object, object]] = defaultdict(dict) self.bot_data = {} self.persistence: Optional[BasePersistence] = None self._update_persistence_lock = Lock() @@ -287,7 +287,7 @@ class Dispatcher: self.logger.exception('An uncaught error was raised while handling the error.') def run_async( - self, func: Callable[..., Any], *args: Any, update: Any = None, **kwargs: Any + self, func: Callable[..., object], *args: object, update: object = None, **kwargs: object ) -> Promise: """ Queue a function (with given args/kwargs) to be run asynchronously. Exceptions raised @@ -316,11 +316,11 @@ class Dispatcher: def _run_async( self, - func: Callable[..., Any], - *args: Any, - update: Any = None, + func: Callable[..., object], + *args: object, + update: object = None, error_handling: bool = True, - **kwargs: Any, + **kwargs: object, ) -> Promise: # TODO: Remove error_handling parameter once we drop the @run_async decorator promise = Promise(func, args, kwargs, update=update, error_handling=error_handling) @@ -402,7 +402,7 @@ class Dispatcher: def has_running_threads(self) -> bool: return self.running or bool(self.__async_threads) - def process_update(self, update: Any) -> None: + def process_update(self, update: object) -> None: """Processes a single update and updates the persistence. Note: @@ -530,7 +530,7 @@ class Dispatcher: del self.handlers[group] self.groups.remove(group) - def update_persistence(self, update: Any = None) -> None: + def update_persistence(self, update: object = None) -> None: """Update :attr:`user_data`, :attr:`chat_data` and :attr:`bot_data` in :attr:`persistence`. Args: @@ -540,7 +540,7 @@ class Dispatcher: with self._update_persistence_lock: self.__update_persistence(update) - def __update_persistence(self, update: Any = None) -> None: + def __update_persistence(self, update: object = None) -> None: if self.persistence: # We use list() here in order to decouple chat_ids from self.chat_data, as dict view # objects will change, when the dict does and we want to loop over chat_ids @@ -601,7 +601,7 @@ class Dispatcher: def add_error_handler( self, - callback: Callable[[Any, CallbackContext], None], + callback: Callable[[object, CallbackContext], None], run_async: Union[bool, DefaultValue] = DEFAULT_FALSE, # pylint: disable=W0621 ) -> None: """Registers an error handler in the Dispatcher. This handler will receive every error @@ -637,7 +637,7 @@ class Dispatcher: self.error_handlers[callback] = run_async - def remove_error_handler(self, callback: Callable[[Any, CallbackContext], None]) -> None: + def remove_error_handler(self, callback: Callable[[object, CallbackContext], None]) -> None: """Removes an error handler. Args: @@ -647,12 +647,12 @@ class Dispatcher: self.error_handlers.pop(callback, None) def dispatch_error( - self, update: Optional[Any], error: Exception, promise: Promise = None + self, update: Optional[object], error: Exception, promise: Promise = None ) -> None: """Dispatches an error. Args: - update (:obj:`Any` | :class:`telegram.Update`): The update that caused the error. + 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. diff --git a/telegram/ext/handler.py b/telegram/ext/handler.py index f381bad52..eb2d46dd1 100644 --- a/telegram/ext/handler.py +++ b/telegram/ext/handler.py @@ -107,7 +107,7 @@ class Handler(Generic[UT], ABC): self.run_async = run_async @abstractmethod - def check_update(self, update: Any) -> Optional[Union[bool, object]]: + def check_update(self, update: object) -> Optional[Union[bool, object]]: """ This method is called to determine if an update should be handled by this handler instance. It should always be overridden. @@ -188,7 +188,7 @@ class Handler(Generic[UT], ABC): dispatcher: 'Dispatcher', update: UT = None, check_result: Any = None, # pylint: disable=W0613 - ) -> Dict[str, Any]: + ) -> Dict[str, object]: """ Prepares the optional arguments. If the handler has additional optional args, it should subclass this method, but remember to call this super method. @@ -202,7 +202,7 @@ class Handler(Generic[UT], ABC): check_result: The result from check_update """ - optional_args: Dict[str, Any] = dict() + optional_args: Dict[str, object] = dict() if self.pass_update_queue: optional_args['update_queue'] = dispatcher.update_queue diff --git a/telegram/ext/inlinequeryhandler.py b/telegram/ext/inlinequeryhandler.py index 79f3d7b18..9342cc39a 100644 --- a/telegram/ext/inlinequeryhandler.py +++ b/telegram/ext/inlinequeryhandler.py @@ -20,7 +20,6 @@ import re from typing import ( TYPE_CHECKING, - Any, Callable, Dict, Match, @@ -147,7 +146,7 @@ class InlineQueryHandler(Handler[Update]): self.pass_groups = pass_groups self.pass_groupdict = pass_groupdict - def check_update(self, update: Any) -> Optional[Union[bool, Match]]: + def check_update(self, update: object) -> Optional[Union[bool, Match]]: """ Determines whether an update should be passed to this handlers :attr:`callback`. @@ -174,7 +173,7 @@ class InlineQueryHandler(Handler[Update]): dispatcher: 'Dispatcher', update: Update = None, check_result: Optional[Union[bool, Match]] = None, - ) -> Dict[str, Any]: + ) -> Dict[str, object]: optional_args = super().collect_optional_args(dispatcher, update, check_result) if self.pattern: check_result = cast(Match, check_result) diff --git a/telegram/ext/jobqueue.py b/telegram/ext/jobqueue.py index f58cf1fd9..b637a76ea 100644 --- a/telegram/ext/jobqueue.py +++ b/telegram/ext/jobqueue.py @@ -21,13 +21,14 @@ import datetime import logging -from typing import TYPE_CHECKING, Any, Callable, List, Optional, Tuple, Union, cast, overload +from typing import TYPE_CHECKING, Callable, List, Optional, Tuple, Union, cast, overload import pytz from apscheduler.events import EVENT_JOB_ERROR, EVENT_JOB_EXECUTED, JobEvent from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.triggers.combining import OrTrigger from apscheduler.triggers.cron import CronTrigger +from apscheduler.job import Job as APSJob from telegram.ext.callbackcontext import CallbackContext from telegram.utils.types import JSONDict @@ -35,6 +36,7 @@ from telegram.utils.types import JSONDict if TYPE_CHECKING: from telegram import Bot from telegram.ext import Dispatcher + import apscheduler.job # noqa: F401 class Days: @@ -551,7 +553,7 @@ class Job: context: object = None, name: str = None, job_queue: JobQueue = None, - job: 'Job' = None, + job: APSJob = None, ): self.callback = callback @@ -562,7 +564,7 @@ class Job: self._removed = False self._enabled = False - self.job = cast('Job', job) + self.job = cast(APSJob, job) def run(self, dispatcher: 'Dispatcher') -> None: """Executes the callback function independently of the jobs schedule.""" @@ -618,7 +620,7 @@ class Job: return self.job.next_run_time @classmethod - def from_aps_job(cls, job: 'Job', job_queue: JobQueue) -> 'Job': + def from_aps_job(cls, job: APSJob, job_queue: JobQueue) -> 'Job': # context based callbacks if len(job.args) == 1: context = job.args[0].job.context @@ -626,7 +628,7 @@ class Job: context = job.args[1].context return cls(job.func, context=context, name=job.name, job_queue=job_queue, job=job) - def __getattr__(self, item: str) -> Any: + def __getattr__(self, item: str) -> object: return getattr(self.job, item) def __lt__(self, other: object) -> bool: diff --git a/telegram/ext/messagehandler.py b/telegram/ext/messagehandler.py index 333131240..79940c0d7 100644 --- a/telegram/ext/messagehandler.py +++ b/telegram/ext/messagehandler.py @@ -19,7 +19,7 @@ # TODO: Remove allow_edited """This module contains the MessageHandler class.""" import warnings -from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, TypeVar, Union +from typing import TYPE_CHECKING, Callable, Dict, Optional, TypeVar, Union from telegram import Update from telegram.ext import BaseFilter, Filters @@ -179,7 +179,7 @@ class MessageHandler(Handler[Update]): Filters.update.edited_message | Filters.update.edited_channel_post ) - def check_update(self, update: Any) -> Optional[Union[bool, Dict[str, Any]]]: + def check_update(self, update: object) -> Optional[Union[bool, Dict[str, object]]]: """Determines whether an update should be passed to this handlers :attr:`callback`. Args: @@ -198,7 +198,7 @@ class MessageHandler(Handler[Update]): context: 'CallbackContext', update: Update, dispatcher: 'Dispatcher', - check_result: Optional[Union[bool, Dict[str, Any]]], + check_result: Optional[Union[bool, Dict[str, object]]], ) -> None: if isinstance(check_result, dict): context.update(check_result) diff --git a/telegram/ext/messagequeue.py b/telegram/ext/messagequeue.py index 9bd65a0cf..2e85a5ab6 100644 --- a/telegram/ext/messagequeue.py +++ b/telegram/ext/messagequeue.py @@ -24,7 +24,7 @@ import functools import queue as q import threading import time -from typing import TYPE_CHECKING, Any, Callable, List, NoReturn +from typing import TYPE_CHECKING, Callable, List, NoReturn from telegram.utils.promise import Promise @@ -153,7 +153,7 @@ class DelayQueue(threading.Thread): raise exc - def __call__(self, func: Callable, *args: Any, **kwargs: Any) -> None: + def __call__(self, func: Callable, *args: object, **kwargs: object) -> None: """Used to process callbacks in throughput-limiting thread through queue. Args: @@ -300,7 +300,7 @@ def queuedmessage(method: Callable) -> Callable: """ @functools.wraps(method) - def wrapped(self: 'Bot', *args: Any, **kwargs: Any) -> Any: + def wrapped(self: 'Bot', *args: object, **kwargs: object) -> object: # pylint: disable=W0212 queued = kwargs.pop( 'queued', self._is_messages_queued_default # type: ignore[attr-defined] diff --git a/telegram/ext/picklepersistence.py b/telegram/ext/picklepersistence.py index 625de9850..f5d5101b3 100644 --- a/telegram/ext/picklepersistence.py +++ b/telegram/ext/picklepersistence.py @@ -93,7 +93,7 @@ class PicklePersistence(BasePersistence): self.user_data: Optional[DefaultDict[int, Dict]] = None self.chat_data: Optional[DefaultDict[int, Dict]] = None self.bot_data: Optional[Dict] = None - self.conversations: Optional[Dict[str, Dict[Tuple, Any]]] = None + self.conversations: Optional[Dict[str, Dict[Tuple, object]]] = None def load_singlefile(self) -> None: try: @@ -138,11 +138,11 @@ class PicklePersistence(BasePersistence): pickle.dump(data, file) @staticmethod - def dump_file(filename: str, data: Any) -> None: + def dump_file(filename: str, data: object) -> None: with open(filename, "wb") as file: pickle.dump(data, file) - def get_user_data(self) -> DefaultDict[int, Dict[Any, Any]]: + def get_user_data(self) -> DefaultDict[int, Dict[object, object]]: """Returns the user_data from the pickle file if it exists or an empty :obj:`defaultdict`. Returns: @@ -162,7 +162,7 @@ class PicklePersistence(BasePersistence): self.load_singlefile() return deepcopy(self.user_data) # type: ignore[arg-type] - def get_chat_data(self) -> DefaultDict[int, Dict[Any, Any]]: + def get_chat_data(self) -> DefaultDict[int, Dict[object, object]]: """Returns the chat_data from the pickle file if it exists or an empty :obj:`defaultdict`. Returns: @@ -182,7 +182,7 @@ class PicklePersistence(BasePersistence): self.load_singlefile() return deepcopy(self.chat_data) # type: ignore[arg-type] - def get_bot_data(self) -> Dict[Any, Any]: + def get_bot_data(self) -> Dict[object, object]: """Returns the bot_data from the pickle file if it exists or an empty :obj:`dict`. Returns: diff --git a/telegram/ext/pollanswerhandler.py b/telegram/ext/pollanswerhandler.py index c23d5175e..891b64fee 100644 --- a/telegram/ext/pollanswerhandler.py +++ b/telegram/ext/pollanswerhandler.py @@ -17,7 +17,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 the PollAnswerHandler class.""" -from typing import Any + from telegram import Update @@ -82,7 +82,7 @@ class PollAnswerHandler(Handler[Update]): """ - def check_update(self, update: Any) -> bool: + def check_update(self, update: object) -> bool: """Determines whether an update should be passed to this handlers :attr:`callback`. Args: diff --git a/telegram/ext/pollhandler.py b/telegram/ext/pollhandler.py index 86081e45b..bc0d53600 100644 --- a/telegram/ext/pollhandler.py +++ b/telegram/ext/pollhandler.py @@ -17,7 +17,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 the PollHandler classes.""" -from typing import Any + from telegram import Update @@ -82,7 +82,7 @@ class PollHandler(Handler[Update]): """ - def check_update(self, update: Any) -> bool: + def check_update(self, update: object) -> bool: """Determines whether an update should be passed to this handlers :attr:`callback`. Args: diff --git a/telegram/ext/precheckoutqueryhandler.py b/telegram/ext/precheckoutqueryhandler.py index 53b8b31f5..0a954e18a 100644 --- a/telegram/ext/precheckoutqueryhandler.py +++ b/telegram/ext/precheckoutqueryhandler.py @@ -17,7 +17,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 the PreCheckoutQueryHandler class.""" -from typing import Any + from telegram import Update @@ -82,7 +82,7 @@ class PreCheckoutQueryHandler(Handler[Update]): """ - def check_update(self, update: Any) -> bool: + def check_update(self, update: object) -> bool: """Determines whether an update should be passed to this handlers :attr:`callback`. Args: diff --git a/telegram/ext/regexhandler.py b/telegram/ext/regexhandler.py index 8f630b11c..176620d2c 100644 --- a/telegram/ext/regexhandler.py +++ b/telegram/ext/regexhandler.py @@ -20,7 +20,7 @@ """This module contains the RegexHandler class.""" import warnings -from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Pattern, TypeVar, Union +from typing import TYPE_CHECKING, Callable, Dict, Optional, Pattern, TypeVar, Union, Any from telegram import Update from telegram.ext import Filters, MessageHandler @@ -149,7 +149,7 @@ class RegexHandler(MessageHandler): dispatcher: 'Dispatcher', update: Update = None, check_result: Optional[Union[bool, Dict[str, Any]]] = None, - ) -> Dict[str, Any]: + ) -> Dict[str, object]: optional_args = super().collect_optional_args(dispatcher, update, check_result) if isinstance(check_result, dict): if self.pass_groups: diff --git a/telegram/ext/shippingqueryhandler.py b/telegram/ext/shippingqueryhandler.py index b9b79fab9..855163b44 100644 --- a/telegram/ext/shippingqueryhandler.py +++ b/telegram/ext/shippingqueryhandler.py @@ -17,7 +17,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 the ShippingQueryHandler class.""" -from typing import Any + from telegram import Update from .handler import Handler @@ -81,7 +81,7 @@ class ShippingQueryHandler(Handler[Update]): """ - def check_update(self, update: Any) -> bool: + def check_update(self, update: object) -> bool: """Determines whether an update should be passed to this handlers :attr:`callback`. Args: diff --git a/telegram/ext/stringcommandhandler.py b/telegram/ext/stringcommandhandler.py index 1d35a6700..cee6e821e 100644 --- a/telegram/ext/stringcommandhandler.py +++ b/telegram/ext/stringcommandhandler.py @@ -18,7 +18,7 @@ # along with this program. If not, see [http://www.gnu.org/licenses/]. """This module contains the StringCommandHandler class.""" -from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, TypeVar, Union +from typing import TYPE_CHECKING, Callable, Dict, List, Optional, TypeVar, Union from telegram.utils.helpers import DefaultValue, DEFAULT_FALSE @@ -100,7 +100,7 @@ class StringCommandHandler(Handler[str]): self.command = command self.pass_args = pass_args - def check_update(self, update: Any) -> Optional[List[str]]: + def check_update(self, update: object) -> Optional[List[str]]: """Determines whether an update should be passed to this handlers :attr:`callback`. Args: @@ -121,7 +121,7 @@ class StringCommandHandler(Handler[str]): dispatcher: 'Dispatcher', update: str = None, check_result: Optional[List[str]] = None, - ) -> Dict[str, Any]: + ) -> Dict[str, object]: optional_args = super().collect_optional_args(dispatcher, update, check_result) if self.pass_args: optional_args['args'] = check_result diff --git a/telegram/ext/stringregexhandler.py b/telegram/ext/stringregexhandler.py index 6ca6fbce9..1236656a7 100644 --- a/telegram/ext/stringregexhandler.py +++ b/telegram/ext/stringregexhandler.py @@ -19,7 +19,7 @@ """This module contains the StringRegexHandler class.""" import re -from typing import TYPE_CHECKING, Any, Callable, Dict, Match, Optional, Pattern, TypeVar, Union +from typing import TYPE_CHECKING, Callable, Dict, Match, Optional, Pattern, TypeVar, Union from telegram.utils.helpers import DefaultValue, DEFAULT_FALSE @@ -115,7 +115,7 @@ class StringRegexHandler(Handler[str]): self.pass_groups = pass_groups self.pass_groupdict = pass_groupdict - def check_update(self, update: Any) -> Optional[Match]: + def check_update(self, update: object) -> Optional[Match]: """Determines whether an update should be passed to this handlers :attr:`callback`. Args: @@ -136,7 +136,7 @@ class StringRegexHandler(Handler[str]): dispatcher: 'Dispatcher', update: str = None, check_result: Optional[Match] = None, - ) -> Dict[str, Any]: + ) -> Dict[str, object]: optional_args = super().collect_optional_args(dispatcher, update, check_result) if self.pattern: if self.pass_groups and check_result: diff --git a/telegram/ext/typehandler.py b/telegram/ext/typehandler.py index 80811e856..8ff882cca 100644 --- a/telegram/ext/typehandler.py +++ b/telegram/ext/typehandler.py @@ -18,7 +18,7 @@ # along with this program. If not, see [http://www.gnu.org/licenses/]. """This module contains the TypeHandler class.""" -from typing import TYPE_CHECKING, Any, Callable, Type, TypeVar, Union +from typing import TYPE_CHECKING, Callable, Type, TypeVar, Union from telegram.utils.helpers import DefaultValue, DEFAULT_FALSE from .handler import Handler @@ -93,7 +93,7 @@ class TypeHandler(Handler[UT]): self.type = type self.strict = strict - def check_update(self, update: Any) -> bool: + def check_update(self, update: object) -> bool: """Determines whether an update should be passed to this handlers :attr:`callback`. Args: diff --git a/telegram/ext/updater.py b/telegram/ext/updater.py index cbce74959..6ca3a20f5 100644 --- a/telegram/ext/updater.py +++ b/telegram/ext/updater.py @@ -219,7 +219,7 @@ class Updater: self.__lock = Lock() self.__threads: List[Thread] = [] - def _init_thread(self, target: Callable, name: str, *args: Any, **kwargs: Any) -> None: + def _init_thread(self, target: Callable, name: str, *args: object, **kwargs: object) -> None: thr = Thread( target=self._thread_wrapper, name=f"Bot:{self.bot.id}:{name}", @@ -229,7 +229,7 @@ class Updater: thr.start() self.__threads.append(thr) - def _thread_wrapper(self, target: Callable, *args: Any, **kwargs: Any) -> None: + def _thread_wrapper(self, target: Callable, *args: object, **kwargs: object) -> None: thr_name = current_thread().name self.logger.debug('%s - started', thr_name) try: diff --git a/telegram/files/videonote.py b/telegram/files/videonote.py index 819713709..d49dd71df 100644 --- a/telegram/files/videonote.py +++ b/telegram/files/videonote.py @@ -18,7 +18,7 @@ # along with this program. If not, see [http://www.gnu.org/licenses/]. """This module contains an object that represents a Telegram VideoNote.""" -from typing import TYPE_CHECKING, Any, Optional +from typing import TYPE_CHECKING, Optional, Any from telegram import PhotoSize, TelegramObject from telegram.utils.types import JSONDict diff --git a/telegram/inline/inlinekeyboardmarkup.py b/telegram/inline/inlinekeyboardmarkup.py index b7c94adeb..6af41a08f 100644 --- a/telegram/inline/inlinekeyboardmarkup.py +++ b/telegram/inline/inlinekeyboardmarkup.py @@ -77,7 +77,7 @@ class InlineKeyboardMarkup(ReplyMarkup): return cls(keyboard) @classmethod - def from_button(cls, button: InlineKeyboardButton, **kwargs: Any) -> 'InlineKeyboardMarkup': + def from_button(cls, button: InlineKeyboardButton, **kwargs: object) -> 'InlineKeyboardMarkup': """Shortcut for:: InlineKeyboardMarkup([[button]], **kwargs) @@ -93,7 +93,7 @@ class InlineKeyboardMarkup(ReplyMarkup): @classmethod def from_row( - cls, button_row: List[InlineKeyboardButton], **kwargs: Any + cls, button_row: List[InlineKeyboardButton], **kwargs: object ) -> 'InlineKeyboardMarkup': """Shortcut for:: @@ -111,7 +111,7 @@ class InlineKeyboardMarkup(ReplyMarkup): @classmethod def from_column( - cls, button_column: List[InlineKeyboardButton], **kwargs: Any + cls, button_column: List[InlineKeyboardButton], **kwargs: object ) -> 'InlineKeyboardMarkup': """Shortcut for:: diff --git a/telegram/replykeyboardmarkup.py b/telegram/replykeyboardmarkup.py index 4f7a52eaf..1368fed09 100644 --- a/telegram/replykeyboardmarkup.py +++ b/telegram/replykeyboardmarkup.py @@ -110,7 +110,7 @@ class ReplyKeyboardMarkup(ReplyMarkup): resize_keyboard: bool = False, one_time_keyboard: bool = False, selective: bool = False, - **kwargs: Any, + **kwargs: object, ) -> 'ReplyKeyboardMarkup': """Shortcut for:: @@ -155,7 +155,7 @@ class ReplyKeyboardMarkup(ReplyMarkup): resize_keyboard: bool = False, one_time_keyboard: bool = False, selective: bool = False, - **kwargs: Any, + **kwargs: object, ) -> 'ReplyKeyboardMarkup': """Shortcut for:: @@ -201,7 +201,7 @@ class ReplyKeyboardMarkup(ReplyMarkup): resize_keyboard: bool = False, one_time_keyboard: bool = False, selective: bool = False, - **kwargs: Any, + **kwargs: object, ) -> 'ReplyKeyboardMarkup': """Shortcut for:: diff --git a/telegram/utils/deprecate.py b/telegram/utils/deprecate.py index e34a490f6..cf1d55de8 100644 --- a/telegram/utils/deprecate.py +++ b/telegram/utils/deprecate.py @@ -19,7 +19,7 @@ """This module facilitates the deprecation of functions.""" import warnings -from typing import Any, Callable, TypeVar +from typing import Callable, TypeVar RT = TypeVar('RT') @@ -42,7 +42,7 @@ def warn_deprecate_obj(old: str, new: str, stacklevel: int = 3) -> None: def deprecate(func: Callable[..., RT], old: str, new: str) -> Callable[..., RT]: """Warn users invoking old to switch to the new function.""" - def wrapped(*args: Any, **kwargs: Any) -> RT: + def wrapped(*args: object, **kwargs: object) -> RT: warn_deprecate_obj(old, new) return func(*args, **kwargs) diff --git a/telegram/utils/helpers.py b/telegram/utils/helpers.py index 522a99404..fa0dc59ad 100644 --- a/telegram/utils/helpers.py +++ b/telegram/utils/helpers.py @@ -185,7 +185,7 @@ def to_float_timestamp( Converts a given time object to a float POSIX timestamp. Used to convert different time specifications to a common format. The time object can be relative (i.e. indicate a time increment, or a time of day) or absolute. - Any objects from the :class:`datetime` module that are timezone-naive will be assumed + object objects from the :class:`datetime` module that are timezone-naive will be assumed to be in UTC, if ``bot`` is not passed or ``bot.defaults`` is :obj:`None`. Args: @@ -412,7 +412,7 @@ def create_deep_linked_url(bot_username: str, payload: str = None, group: bool = return f'{base_url}?{key}={payload}' -def encode_conversations_to_json(conversations: Dict[str, Dict[Tuple, Any]]) -> str: +def encode_conversations_to_json(conversations: Dict[str, Dict[Tuple, object]]) -> str: """Helper method to encode a conversations dict (that uses tuples as keys) to a JSON-serializable way. Use :attr:`_decode_conversations_from_json` to decode. @@ -430,7 +430,7 @@ def encode_conversations_to_json(conversations: Dict[str, Dict[Tuple, Any]]) -> return json.dumps(tmp) -def decode_conversations_from_json(json_string: str) -> Dict[str, Dict[Tuple, Any]]: +def decode_conversations_from_json(json_string: str) -> Dict[str, Dict[Tuple, object]]: """Helper method to decode a conversations dict (that uses tuples as keys) from a JSON-string created with :attr:`_encode_conversations_to_json`. @@ -441,7 +441,7 @@ def decode_conversations_from_json(json_string: str) -> Dict[str, Dict[Tuple, An :obj:`dict`: The conversations dict after decoding """ tmp = json.loads(json_string) - conversations: Dict[str, Dict[Tuple, Any]] = {} + conversations: Dict[str, Dict[Tuple, object]] = {} for handler, states in tmp.items(): conversations[handler] = {} for key, state in states.items(): @@ -449,7 +449,7 @@ def decode_conversations_from_json(json_string: str) -> Dict[str, Dict[Tuple, An return conversations -def decode_user_chat_data_from_json(data: str) -> DefaultDict[int, Dict[Any, Any]]: +def decode_user_chat_data_from_json(data: str) -> DefaultDict[int, Dict[object, object]]: """Helper method to decode chat or user data (that uses ints as keys) from a JSON-string. @@ -460,7 +460,7 @@ def decode_user_chat_data_from_json(data: str) -> DefaultDict[int, Dict[Any, Any :obj:`dict`: The user/chat_data defaultdict after decoding """ - tmp: DefaultDict[int, Dict[Any, Any]] = defaultdict(dict) + tmp: DefaultDict[int, Dict[object, object]] = defaultdict(dict) decoded_data = json.loads(data) for user, user_data in decoded_data.items(): user = int(user) @@ -519,7 +519,7 @@ class DefaultValue: """ - def __init__(self, value: Any = None): + def __init__(self, value: object = None): self.value = value def __bool__(self) -> bool: diff --git a/telegram/utils/promise.py b/telegram/utils/promise.py index 57167b2c8..60442686a 100644 --- a/telegram/utils/promise.py +++ b/telegram/utils/promise.py @@ -20,7 +20,7 @@ import logging from threading import Event -from typing import Callable, List, Optional, Tuple, TypeVar, Union, Any +from typing import Callable, List, Optional, Tuple, TypeVar, Union from telegram.utils.types import JSONDict @@ -60,7 +60,7 @@ class Promise: pooled_function: Callable[..., RT], args: Union[List, Tuple], kwargs: JSONDict, - update: Any = None, + update: object = None, error_handling: bool = True, ): self.pooled_function = pooled_function @@ -99,7 +99,7 @@ class Promise: expires. Raises: - Any exception raised by :attr:`pooled_function`. + object exception raised by :attr:`pooled_function`. """ self.done.wait(timeout=timeout) if self._exception is not None: diff --git a/telegram/utils/request.py b/telegram/utils/request.py index 16622bccf..10f4c95db 100644 --- a/telegram/utils/request.py +++ b/telegram/utils/request.py @@ -226,7 +226,7 @@ class Request: return data['result'] - def _request_wrapper(self, *args: Any, **kwargs: Any) -> bytes: + def _request_wrapper(self, *args: object, **kwargs: Any) -> bytes: """Wraps urllib3 request for handling known exceptions. Args: diff --git a/telegram/utils/webhookhandler.py b/telegram/utils/webhookhandler.py index 20e48c892..3c29317e6 100644 --- a/telegram/utils/webhookhandler.py +++ b/telegram/utils/webhookhandler.py @@ -79,7 +79,7 @@ class WebhookServer: return self.loop.add_callback(self.loop.stop) # type: ignore - def handle_error(self, request: Any, client_address: str) -> None: # pylint: disable=W0613 + def handle_error(self, request: object, client_address: str) -> None: # pylint: disable=W0613 """Handle an error gracefully.""" self.logger.debug( 'Exception happened during processing of request from %s', diff --git a/tests/conftest.py b/tests/conftest.py index 28414d53a..b9b9955c0 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -24,7 +24,7 @@ from collections import defaultdict from queue import Queue from threading import Thread, Event from time import sleep -from typing import Callable, List, Dict, Any +from typing import Callable, List, Dict import pytest import pytz @@ -407,7 +407,7 @@ def check_shortcut_signature( def check_shortcut_call( - kwargs: Dict[str, Any], + kwargs: Dict[str, object], bot_method: Callable, ) -> bool: """