MCPcopy Index your code
hub / github.com/python-telegram-bot/python-telegram-bot / __init__

Method __init__

src/telegram/_bot.py:324–402  ·  view source on GitHub ↗
(
        self,
        token: str,
        base_url: BaseUrl = "https://api.telegram.org/bot",
        base_file_url: BaseUrl = "https://api.telegram.org/file/bot",
        request: BaseRequest | None = None,
        get_updates_request: BaseRequest | None = None,
        private_key: bytes | None = None,
        private_key_password: bytes | None = None,
        local_mode: bool = False,
    )

Source from the content-addressed store, hash-verified

322 )
323
324 def __init__(
325 self,
326 token: str,
327 base_url: BaseUrl = "https://api.telegram.org/bot",
328 base_file_url: BaseUrl = "https://api.telegram.org/file/bot",
329 request: BaseRequest | None = None,
330 get_updates_request: BaseRequest | None = None,
331 private_key: bytes | None = None,
332 private_key_password: bytes | None = None,
333 local_mode: bool = False,
334 ):
335 super().__init__(api_kwargs=None)
336 if not token:
337 raise InvalidToken("You must pass the token you received from https://t.me/Botfather!")
338 self._token: str = token
339
340 self._base_url: str = _parse_base_url(base_url, self._token)
341 self._base_file_url: str = _parse_base_url(base_file_url, self._token)
342 self._LOGGER.debug("Set Bot API URL: %s", self._base_url)
343 self._LOGGER.debug("Set Bot API File URL: %s", self._base_file_url)
344
345 self._local_mode: bool = local_mode
346 self._bot_user: User | None = None
347 self._private_key: bytes | None = None
348 self._requests_initialized: bool = False
349 self._bot_initialized: bool = False
350
351 self._request: tuple[BaseRequest, BaseRequest] = (
352 (
353 HTTPXRequest(connection_pool_size=1)
354 if get_updates_request is None
355 else get_updates_request
356 ),
357 HTTPXRequest() if request is None else request,
358 )
359
360 # this section is about issuing a warning when using HTTP/2 and connect to a self-hosted
361 # bot api instance, which currently only supports HTTP/1.1. Checking if a custom base url
362 # is set is the best way to do that.
363
364 warning_string = ""
365
366 if (
367 isinstance(self._request[0], HTTPXRequest)
368 and self._request[0].http_version == "2"
369 and not self.base_url.startswith("https://api.telegram.org/bot")
370 ):
371 warning_string = "get_updates_request"
372
373 if (
374 isinstance(self._request[1], HTTPXRequest)
375 and self._request[1].http_version == "2"
376 and not self.base_url.startswith("https://api.telegram.org/bot")
377 ):
378 if warning_string:
379 warning_string += " and request"
380 else:
381 warning_string = "request"

Callers 1

__init__Method · 0.45

Calls 5

_warnMethod · 0.95
InvalidTokenClass · 0.90
HTTPXRequestClass · 0.90
_parse_base_urlFunction · 0.85
_freezeMethod · 0.80

Tested by

no test coverage detected