We have made you a wrapper you can't refuse
This report summarizes scanner evidence for python-telegram-bot/python-telegram-bot, a Python project with 29,517 GitHub stars. SynthScan examined 170,964 lines of code across 884 source files, recording 3162 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 20.2 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2387 finding(s).
Are imports declared and package/API names verified? 580 finding(s).
Are wrappers, guards, and repeated structures necessary? 1932 finding(s).
Which changes need focused human review? 3162 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 3162 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_messageautodeletetimerchanged.py | 54 | def test_time_period_properties(self, PTB_TIMEDELTA): | CODE |
| LOW | tests/test_messageautodeletetimerchanged.py | 66 | def test_time_period_int_deprecated(self, recwarn, PTB_TIMEDELTA): | CODE |
| LOW | tests/test_botcommandscope.py | 55 | def test_type_enum_conversion(self, bot_command_scope): | CODE |
| LOW | tests/test_botcommandscope.py | 112 | def bot_command_scope_all_private_chats(): | CODE |
| LOW | tests/test_botcommandscope.py | 152 | def bot_command_scope_all_chat_administrators(): | CODE |
| LOW | tests/test_botcommandscope.py | 192 | def bot_command_scope_all_group_chats(): | CODE |
| LOW | tests/test_botcommandscope.py | 278 | def bot_command_scope_chat_administrators(): | CODE |
| LOW | tests/test_botcommandscope.py | 328 | def bot_command_scope_chat_member(): | CODE |
| LOW | tests/test_botcommandscope.py | 385 | def bot_command_scope_default(): | CODE |
| LOW | tests/test_version.py | 32 | def test_bot_api_version_and_info(self): | CODE |
| LOW | tests/test_menubutton.py | 51 | def test_type_enum_conversion(self, menu_button): | CODE |
| LOW⚡ | tests/conftest.py | 57 | def no_rerun_after_xfail_or_flood(error, name, test: pytest.Function, plugin): | CODE |
| LOW⚡ | tests/conftest.py | 66 | def pytest_collection_modifyitems(items: list[pytest.Item]): | CODE |
| LOW | tests/conftest.py | 255 | def _get_false_update_fixture_decorator_params(): | CODE |
| LOW | tests/test_suggestedpost.py | 44 | def suggested_post_parameters(): | CODE |
| LOW | tests/test_suggestedpost.py | 76 | def test_de_json_localization(self, offline_bot, raw_bot, tz_bot): | CODE |
| LOW | tests/test_suggestedpost.py | 144 | def test_type_enum_conversion(self): | CODE |
| LOW | tests/test_suggestedpost.py | 160 | def test_de_json_localization(self, offline_bot, raw_bot, tz_bot): | CODE |
| LOW | tests/test_suggestedpost.py | 488 | def test_de_json_localization(self, offline_bot, raw_bot, tz_bot): | CODE |
| LOW | tests/test_suggestedpost.py | 542 | def suggested_post_approval_failed(): | CODE |
| LOW | tests/test_messageorigin.py | 65 | def message_origin_hidden_user(): | CODE |
| LOW | tests/test_messageorigin.py | 139 | def test_de_json_required_args(self, offline_bot, message_origin_type): | CODE |
| LOW | tests/test_messageorigin.py | 166 | def test_de_json_messageorigin_localization( | CODE |
| LOW | tests/test_messageorigin.py | 182 | def test_de_json_invalid_type(self, message_origin_type, offline_bot): | CODE |
| LOW | tests/test_user.py | 189 | async def test_instance_method_get_profile_photos(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 204 | async def test_instance_method_get_profile_audios(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 219 | async def test_instance_method_pin_message(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 230 | async def test_instance_method_unpin_message(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 243 | async def test_instance_method_unpin_all_messages(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 258 | async def test_instance_method_send_message(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 269 | async def test_instance_method_send_message_draft(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 288 | async def test_instance_method_send_photo(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 299 | async def test_instance_method_send_live_photo(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 314 | async def test_instance_method_send_media_group(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 327 | async def test_instance_method_send_audio(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 338 | async def test_instance_method_send_chat_action(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 351 | async def test_instance_method_send_contact(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 362 | async def test_instance_method_send_dice(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 373 | async def test_instance_method_send_document(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 384 | async def test_instance_method_send_game(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 395 | async def test_instance_method_send_invoice(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 420 | async def test_instance_method_send_location(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 431 | async def test_instance_method_send_sticker(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 442 | async def test_instance_method_send_video(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 453 | async def test_instance_method_send_venue(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 464 | async def test_instance_method_send_video_note(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 475 | async def test_instance_method_send_voice(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 486 | async def test_instance_method_send_animation(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 497 | async def test_instance_method_send_poll(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 508 | async def test_instance_method_send_copy(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 522 | async def test_instance_method_copy_message(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 536 | async def test_instance_method_get_user_chat_boosts(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 553 | async def test_instance_method_get_menu_button(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 571 | async def test_instance_method_set_menu_button(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 589 | async def test_instance_method_approve_join_request(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 606 | async def test_instance_method_decline_join_request(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 684 | async def test_instance_method_send_copies(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 698 | async def test_instance_method_copy_messages(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 714 | async def test_instance_method_forward_from(self, monkeypatch, user): | CODE |
| LOW | tests/test_user.py | 728 | async def test_instance_method_forward_to(self, monkeypatch, user): | CODE |
| 1398 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | examples/conversationbot2.py | 0 | first, a few callback functions are defined. then, those functions are passed to the application and registered at their | STRING |
| HIGH | examples/persistentconversationbot.py | 0 | first, a few callback functions are defined. then, those functions are passed to the application and registered at their | STRING |
| HIGH | examples/conversationbot.py | 0 | first, a few callback functions are defined. then, those functions are passed to the application and registered at their | STRING |
| HIGH | examples/nestedconversationbot.py | 0 | first, a few callback functions are defined. then, those functions are passed to the application and registered at their | STRING |
| HIGH | examples/customwebhookbot/djangobot.py | 0 | simple example of a bot that uses a custom webhook setup and handles custom updates. for the custom webhook setup, the l | STRING |
| HIGH | examples/customwebhookbot/quartbot.py | 0 | simple example of a bot that uses a custom webhook setup and handles custom updates. for the custom webhook setup, the l | STRING |
| HIGH | examples/customwebhookbot/flaskbot.py | 0 | simple example of a bot that uses a custom webhook setup and handles custom updates. for the custom webhook setup, the l | STRING |
| HIGH | examples/customwebhookbot/starlettebot.py | 0 | simple example of a bot that uses a custom webhook setup and handles custom updates. for the custom webhook setup, the l | STRING |
| HIGH | examples/customwebhookbot/djangobot.py | 0 | custom callbackcontext class that makes `user_data` available for updates of type `webhookupdate`. | STRING |
| HIGH | examples/customwebhookbot/quartbot.py | 0 | custom callbackcontext class that makes `user_data` available for updates of type `webhookupdate`. | STRING |
| HIGH | examples/customwebhookbot/flaskbot.py | 0 | custom callbackcontext class that makes `user_data` available for updates of type `webhookupdate`. | STRING |
| HIGH | examples/customwebhookbot/starlettebot.py | 0 | custom callbackcontext class that makes `user_data` available for updates of type `webhookupdate`. | STRING |
| HIGH | examples/customwebhookbot/djangobot.py | 0 | display a message with instructions on how to use this bot. | STRING |
| HIGH | examples/customwebhookbot/quartbot.py | 0 | display a message with instructions on how to use this bot. | STRING |
| HIGH | examples/customwebhookbot/flaskbot.py | 0 | display a message with instructions on how to use this bot. | STRING |
| HIGH | examples/customwebhookbot/starlettebot.py | 0 | display a message with instructions on how to use this bot. | STRING |
| HIGH | examples/customwebhookbot/djangobot.py | 0 | handle incoming telegram updates by putting them into the `update_queue` | STRING |
| HIGH | examples/customwebhookbot/quartbot.py | 0 | handle incoming telegram updates by putting them into the `update_queue` | STRING |
| HIGH | examples/customwebhookbot/flaskbot.py | 0 | handle incoming telegram updates by putting them into the `update_queue` | STRING |
| HIGH | examples/customwebhookbot/starlettebot.py | 0 | handle incoming telegram updates by putting them into the `update_queue` | STRING |
| HIGH | examples/customwebhookbot/djangobot.py | 0 | handle incoming webhook updates by also putting them into the `update_queue` if the required parameters were passed corr | STRING |
| HIGH | examples/customwebhookbot/quartbot.py | 0 | handle incoming webhook updates by also putting them into the `update_queue` if the required parameters were passed corr | STRING |
| HIGH | examples/customwebhookbot/flaskbot.py | 0 | handle incoming webhook updates by also putting them into the `update_queue` if the required parameters were passed corr | STRING |
| HIGH | examples/customwebhookbot/starlettebot.py | 0 | handle incoming webhook updates by also putting them into the `update_queue` if the required parameters were passed corr | STRING |
| HIGH | examples/customwebhookbot/djangobot.py | 0 | for the health endpoint, reply with a simple plain text message. | STRING |
| HIGH | examples/customwebhookbot/quartbot.py | 0 | for the health endpoint, reply with a simple plain text message. | STRING |
| HIGH | examples/customwebhookbot/flaskbot.py | 0 | for the health endpoint, reply with a simple plain text message. | STRING |
| HIGH | examples/customwebhookbot/starlettebot.py | 0 | for the health endpoint, reply with a simple plain text message. | STRING |
| HIGH | examples/customwebhookbot/quartbot.py | 0 | set up ptb application and a web application for handling the incoming requests. | STRING |
| HIGH | examples/customwebhookbot/flaskbot.py | 0 | set up ptb application and a web application for handling the incoming requests. | STRING |
| HIGH | examples/customwebhookbot/starlettebot.py | 0 | set up ptb application and a web application for handling the incoming requests. | STRING |
| HIGH | src/telegram/_ownedgift.py | 0 | returns the text from a given :class:`telegram.messageentity`. note: this method is present because telegram calculates | STRING |
| HIGH | src/telegram/_poll.py | 0 | returns the text from a given :class:`telegram.messageentity`. note: this method is present because telegram calculates | STRING |
| HIGH | src/telegram/_message.py | 0 | returns the text from a given :class:`telegram.messageentity`. note: this method is present because telegram calculates | STRING |
| HIGH | src/telegram/_gifts.py | 0 | returns the text from a given :class:`telegram.messageentity`. note: this method is present because telegram calculates | STRING |
| HIGH | src/telegram/_games/game.py | 0 | returns the text from a given :class:`telegram.messageentity`. note: this method is present because telegram calculates | STRING |
| HIGH | src/telegram/_ownedgift.py | 0 | returns a :obj:`dict` that maps :class:`telegram.messageentity` to :obj:`str`. it contains entities from this polls desc | STRING |
| HIGH | src/telegram/_poll.py | 0 | returns a :obj:`dict` that maps :class:`telegram.messageentity` to :obj:`str`. it contains entities from this polls desc | STRING |
| HIGH | src/telegram/_gifts.py | 0 | returns a :obj:`dict` that maps :class:`telegram.messageentity` to :obj:`str`. it contains entities from this polls desc | STRING |
| HIGH | src/telegram/_checklists.py | 0 | returns a :obj:`dict` that maps :class:`telegram.messageentity` to :obj:`str`. it contains entities from this polls desc | STRING |
| HIGH | src/telegram/_games/game.py | 0 | returns a :obj:`dict` that maps :class:`telegram.messageentity` to :obj:`str`. it contains entities from this polls desc | STRING |
| HIGH | src/telegram/_telegramobject.py | 0 | builds a hash value for this object such that the hash of two objects is equal if and only if the objects are equal in t | STRING |
| HIGH | src/telegram/ext/_jobqueue.py | 0 | builds a hash value for this object such that the hash of two objects is equal if and only if the objects are equal in t | STRING |
| HIGH | src/telegram/ext/_defaults.py | 0 | builds a hash value for this object such that the hash of two objects is equal if and only if the objects are equal in t | STRING |
| HIGH | src/telegram/_bot.py | 0 | give a string representation of the handler in the form ``classname[callback=...]``. as this class doesn't implement :me | STRING |
| HIGH | src/telegram/ext/_jobqueue.py | 0 | give a string representation of the handler in the form ``classname[callback=...]``. as this class doesn't implement :me | STRING |
| HIGH | src/telegram/ext/_extbot.py | 0 | give a string representation of the handler in the form ``classname[callback=...]``. as this class doesn't implement :me | STRING |
| HIGH | src/telegram/ext/_updater.py | 0 | give a string representation of the handler in the form ``classname[callback=...]``. as this class doesn't implement :me | STRING |
| HIGH | src/telegram/ext/_application.py | 0 | give a string representation of the handler in the form ``classname[callback=...]``. as this class doesn't implement :me | STRING |
| HIGH | src/telegram/ext/_handlers/basehandler.py | 0 | give a string representation of the handler in the form ``classname[callback=...]``. as this class doesn't implement :me | STRING |
| HIGH | src/telegram/_chat.py | 0 | shortcut for:: await bot.repost_story( from_chat_id=update.effective_user.id, *args, **kwargs ) for the documentation of | STRING |
| HIGH | src/telegram/_story.py | 0 | shortcut for:: await bot.repost_story( from_chat_id=update.effective_user.id, *args, **kwargs ) for the documentation of | STRING |
| HIGH | src/telegram/_user.py | 0 | shortcut for:: await bot.repost_story( from_chat_id=update.effective_user.id, *args, **kwargs ) for the documentation of | STRING |
| HIGH | src/telegram/_utils/logging.py | 0 | this module contains a helper functions related to string manipulation. warning: contents of this module are intended to | STRING |
| HIGH | src/telegram/_utils/enum.py | 0 | this module contains a helper functions related to string manipulation. warning: contents of this module are intended to | STRING |
| HIGH | src/telegram/_utils/strings.py | 0 | this module contains a helper functions related to string manipulation. warning: contents of this module are intended to | STRING |
| HIGH | src/telegram/_inline/inlinequeryresultcacheddocument.py | 0 | represents a link to a video animation (h.264/mpeg-4 avc video without sound) stored on the telegram servers. by default | STRING |
| HIGH | src/telegram/_inline/inlinequeryresultcachedgif.py | 0 | represents a link to a video animation (h.264/mpeg-4 avc video without sound) stored on the telegram servers. by default | STRING |
| HIGH | src/telegram/_inline/inlinequeryresultcachedvideo.py | 0 | represents a link to a video animation (h.264/mpeg-4 avc video without sound) stored on the telegram servers. by default | STRING |
| HIGH | src/telegram/_inline/inlinequeryresultcachedmpeg4gif.py | 0 | represents a link to a video animation (h.264/mpeg-4 avc video without sound) stored on the telegram servers. by default | STRING |
| 36 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_messageautodeletetimerchanged.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_webappinfo.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_shared.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_botcommandscope.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_sentwebappmessage.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_version.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_menubutton.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/conftest.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_suggestedpost.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_messageorigin.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_warnings.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_user.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_webappdata.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_keyboardbuttonrequest.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_forum.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_preparedkeyboardbutton.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_videochat.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_keyboardbuttonpolltype.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_chatfullinfo.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_userrating.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_chatmemberupdated.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_message.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_chatlocation.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_checklists.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_reply.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_botaccesssettings.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_dice.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_business_methods.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_directmessagepricechanged.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_paidmedia.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_gifts.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_botdescription.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_inputchecklist.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_sentguestmessage.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_webhookinfo.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_chatpermissions.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_chatinvitelink.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_enum_types.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_messageentity.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_chatjoinrequest.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_update.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_copytextbutton.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_loginurl.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_chatmember.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_userprofilephotos.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_messageid.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_maybeinaccessiblemessage.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_managedbot.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_story.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_replykeyboardremove.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_chat.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_botcommand.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_error.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_business_classes.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_userprofileaudios.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_paidmessagepricechanged.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_proximityalerttriggered.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_telegramobject.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_reaction.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_slots.py | 1 | #!/usr/bin/env python | COMMENT |
| 415 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/telegram/_ownedgift.py | 261 | Returns the text in :attr:`text` from a given :class:`telegram.MessageEntity` of :attr:`entities`. Note | STRING |
| HIGH | src/telegram/_ownedgift.py | 286 | Returns a :obj:`dict` that maps :class:`telegram.MessageEntity` to :obj:`str`. It contains entities fro | STRING |
| HIGH | src/telegram/_poll.py | 667 | This object contains information about a poll. Objects of this class are comparable in terms of equality. Two | STRING |
| HIGH | src/telegram/_poll.py | 919 | Returns the text in :attr:`explanation` from a given :class:`telegram.MessageEntity` of :attr:`explanation_entit | STRING |
| HIGH | src/telegram/_poll.py | 946 | Returns a :obj:`dict` that maps :class:`telegram.MessageEntity` to :obj:`str`. It contains entities fro | STRING |
| HIGH | src/telegram/_poll.py | 1020 | Returns the text in :attr:`description` from a given :class:`telegram.MessageEntity` of :attr:`description_entit | STRING |
| HIGH | src/telegram/_poll.py | 1049 | Returns a :obj:`dict` that maps :class:`telegram.MessageEntity` to :obj:`str`. It contains entities fro | STRING |
| HIGH | src/telegram/_chatmember.py | 32 | Base class for Telegram ChatMember Objects. Currently, the following 6 types of chat members are supported: * : | STRING |
| HIGH | src/telegram/_telegramobject.py | 243 | Objects of this type are subscriptable with strings, where ``telegram_object["attribute_name"]`` is equ | STRING |
| HIGH | src/telegram/_bot.py | 1042 | Use this method to send text messages. Args: chat_id (:obj:`int` | :obj:`str`): |chat_id_channel| | STRING |
| HIGH | src/telegram/_bot.py | 4390 | Use this method to edit text and game messages. Note: * |editreplymarkup| * |b | STRING |
| HIGH | src/telegram/_bot.py | 4809 | Use this method to specify a url and receive incoming updates via an outgoing webhook. Whenever there i | STRING |
| HIGH | src/telegram/_bot.py | 5228 | Use this method to set the score of the specified user in a game message. .. seealso:: :attr:`telegram | STRING |
| HIGH | src/telegram/_chat.py | 184 | Note: :tg-const:`telegram.constants.ParseMode.MARKDOWN` is a legacy mode, retained by T | STRING |
| HIGH | src/telegram/_chat.py | 222 | .. versionadded:: 20.0 Args: name (:obj:`str`): The name used as a link for the chat. Defa | STRING |
| HIGH | src/telegram/_chat.py | 255 | .. versionadded:: 20.0 Args: name (:obj:`str`): The name used as a link for the chat. Defa | STRING |
| HIGH | src/telegram/_message.py | 268 | This object represents a message. Objects of this class are comparable in terms of equality. Two objects of this cl | STRING |
| HIGH | src/telegram/_message.py | 1728 | Use this function to compute position and entities of a quote in the message text or caption. Useful fo | STRING |
| HIGH | src/telegram/_message.py | 1809 | Builds a dictionary with the keys ``chat_id`` and ``reply_parameters``. This dictionary can be used to | STRING |
| HIGH | src/telegram/_message.py | 2361 | Shortcut for:: await bot.send_media_group( update.effective_message.chat_id, | STRING |
| HIGH | src/telegram/_message.py | 5237 | Returns the text from a given :class:`telegram.MessageEntity`. Note: This method is present because | STRING |
| HIGH | src/telegram/_message.py | 5261 | Returns the text from a given :class:`telegram.MessageEntity`. Note: This method is present because | STRING |
| HIGH | src/telegram/_gifts.py | 367 | Returns the text in :attr:`text` from a given :class:`telegram.MessageEntity` of :attr:`entities`. Note | STRING |
| HIGH | src/telegram/_gifts.py | 392 | Returns a :obj:`dict` that maps :class:`telegram.MessageEntity` to :obj:`str`. It contains entities fro | STRING |
| HIGH | src/telegram/_messageentity.py | 183 | Utility functionality for converting the offset and length of entities from Unicode (:obj:`str`) to UTF-16 (``ut | STRING |
| HIGH | src/telegram/_messageentity.py | 256 | Utility functionality for shifting the offset of entities by a given amount. Examples: Shifting by | STRING |
| HIGH | src/telegram/_messageentity.py | 322 | Utility functionality for concatenating two text along with their formatting entities. Tip: This fu | STRING |
| HIGH | src/telegram/_webappdata.py | 26 | Contains data sent from a `Web App <https://core.telegram.org/bots/webapps>`_ to the bot. Objects of this class are | STRING |
| HIGH | src/telegram/_business.py | 404 | This object describes an interval of time during which a business is open. Objects of this class are comparabl | STRING |
| HIGH | src/telegram/_webappinfo.py | 26 | This object contains information about a `Web App <https://core.telegram.org/bots/webapps>`_. Objects of this | STRING |
| HIGH | src/telegram/_replykeyboardremove.py | 26 | Upon receiving a message with this object, Telegram clients will remove the current custom keyboard and display | STRING |
| HIGH | src/telegram/_keyboardbuttonpolltype.py | 28 | This object represents type of a poll, which is allowed to be created and sent when the corresponding button is pres | STRING |
| HIGH | src/telegram/helpers.py | 152 | Creates a deep-linked URL for this :paramref:`~create_deep_linked_url.bot_username` with the specified :paramre | STRING |
| HIGH | src/telegram/_replykeyboardmarkup.py | 32 | This object represents a custom keyboard with reply options. Not supported in channels and for messages sent on beha | STRING |
| HIGH | src/telegram/_chatmemberupdated.py | 32 | This object represents changes in the status of a chat member. Objects of this class are comparable in terms of equ | STRING |
| HIGH | src/telegram/_update.py | 47 | This object represents an incoming update. Objects of this class are comparable in terms of equality. Two objects o | STRING |
| HIGH | src/telegram/_utils/defaultvalue.py | 38 | Wrapper for immutable default arguments that allows to check, if the default value was set explicitly. Usage:: | STRING |
| HIGH | src/telegram/_utils/datetime.py | 71 | Converts a given time object to a float POSIX timestamp. Used to convert different time specifications to a com | STRING |
| HIGH | src/telegram/_passport/credentials.py | 50 | Decrypt per telegram docs at https://core.telegram.org/passport. Args: secret (:obj:`str` or :obj:`byt | STRING |
| HIGH | src/telegram/_inline/inlinequeryresultarticle.py | 33 | This object represents a Telegram InlineQueryResultArticle. Examples: :any:`Inline Bot <examples.inlinebot> | STRING |
| HIGH | src/telegram/_inline/inlinekeyboardmarkup.py | 30 | This object represents an inline keyboard that appears right next to the message it belongs to. Objects of thi | STRING |
| HIGH | src/telegram/_inline/inputtextmessagecontent.py | 35 | Represents the content of a text message to be sent as the result of an inline query. Objects of this class ar | STRING |
| HIGH | src/telegram/_inline/inlinekeyboardbutton.py | 34 | This object represents one button of an inline keyboard. Objects of this class are comparable in terms of equality. | STRING |
| HIGH | src/telegram/_inline/inlinequeryresult.py | 31 | Baseclass for the InlineQueryResult* classes. Objects of this class are comparable in terms of equality. Two object | STRING |
| HIGH | src/telegram/ext/_jobqueue.py | 857 | Overrides :py:meth:`object.__getattr__` to get specific attribute of the :class:`telegram.ext.Job` object or of | STRING |
| HIGH | src/telegram/ext/_applicationbuilder.py | 899 | Sets the private key and corresponding password for decryption of telegram passport data for :attr:`telegram.ext | STRING |
| HIGH | src/telegram/ext/_applicationbuilder.py | 951 | Specifies whether :attr:`telegram.ext.Application.bot` should allow arbitrary objects as callback data for :clas | STRING |
| HIGH | src/telegram/ext/_applicationbuilder.py | 1091 | Sets a :class:`telegram.ext.JobQueue` instance for :attr:`telegram.ext.Application.job_queue`. If not called, a | STRING |
| HIGH | src/telegram/ext/_applicationbuilder.py | 1123 | Sets a :class:`telegram.ext.BasePersistence` instance for :attr:`telegram.ext.Application.persistence`. | STRING |
| HIGH | src/telegram/ext/_applicationbuilder.py | 1157 | Sets a :class:`telegram.ext.ContextTypes` instance for :attr:`telegram.ext.Application.context_types`. | STRING |
| HIGH | src/telegram/ext/_callbackdatacache.py | 48 | Raised when the received callback data has been tampered with or deleted from cache. Examples: :any:`A | STRING |
| HIGH | src/telegram/ext/_callbackdatacache.py | 111 | A custom cache for storing the callback data of a :class:`telegram.ext.ExtBot`. Internally, it keeps two mappings wi | STRING |
| HIGH | src/telegram/ext/_baseratelimiter.py | 68 | Process a request. Must be implemented by a subclass. This method must call :paramref:`callback` and r | STRING |
| HIGH | src/telegram/ext/_callbackcontext.py | 47 | This is a context object passed to the callback called by :class:`telegram.ext.BaseHandler` or by the :class:`t | STRING |
| HIGH | src/telegram/ext/_updater.py | 216 | Starts polling updates from Telegram. .. versionchanged:: 20.0 Removed the ``clean`` argument in fa | STRING |
| HIGH | src/telegram/ext/_updater.py | 435 | Starts a small http server to listen for updates via webhook. If :paramref:`cert` and :paramref:`key` a | STRING |
| HIGH | src/telegram/ext/_picklepersistence.py | 123 | Using python's builtin :mod:`pickle` for making your bot persistent. Attention: The interface provided by t | STRING |
| HIGH | src/telegram/ext/filters.py | 819 | Filters messages to allow only those which are from a specified chat ID or username. Examples: ``MessageHan | STRING |
| HIGH | src/telegram/ext/filters.py | 1426 | Filters messages to allow only those which are forwarded from the specified chat ID(s) or username(s) based on :attr | STRING |
| HIGH | src/telegram/ext/filters.py | 1866 | Filters messages to allow only those which are from a specified sender chat's chat ID or username. Examples: | STRING |
| 18 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_official/helpers.py | 33 | CODE | |
| LOW | tests/request/test_request.py | 59 | CODE | |
| LOW | tests/request/test_request.py | 59 | CODE | |
| LOW | tests/request/test_request.py | 59 | CODE | |
| LOW | tests/request/test_request.py | 59 | CODE | |
| LOW | tests/request/test_request.py | 59 | CODE | |
| LOW | docs/auxil/sphinx_hooks.py | 43 | CODE | |
| LOW | docs/source/conf.py | 343 | CODE | |
| LOW | src/telegram/_callbackquery.py | 34 | CODE | |
| LOW | src/telegram/_callbackquery.py | 34 | CODE | |
| LOW | src/telegram/_callbackquery.py | 34 | CODE | |
| LOW | src/telegram/_callbackquery.py | 34 | CODE | |
| LOW | src/telegram/_callbackquery.py | 34 | CODE | |
| LOW | src/telegram/_callbackquery.py | 34 | CODE | |
| LOW | src/telegram/_callbackquery.py | 34 | CODE | |
| LOW | src/telegram/_callbackquery.py | 34 | CODE | |
| LOW | src/telegram/_callbackquery.py | 44 | CODE | |
| LOW | src/telegram/_callbackquery.py | 45 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 125 | CODE | |
| LOW | src/telegram/_bot.py | 146 | CODE | |
| LOW | src/telegram/__init__.py | 348 | CODE | |
| LOW | src/telegram/__init__.py | 348 | CODE | |
| LOW | src/telegram/__init__.py | 348 | CODE | |
| LOW | src/telegram/__init__.py | 348 | CODE | |
| LOW | src/telegram/__init__.py | 349 | CODE | |
| LOW | src/telegram/__init__.py | 350 | CODE | |
| LOW | src/telegram/__init__.py | 351 | CODE | |
| LOW | src/telegram/__init__.py | 352 | CODE | |
| LOW | src/telegram/__init__.py | 353 | CODE | |
| LOW | src/telegram/__init__.py | 353 | CODE | |
| LOW | src/telegram/__init__.py | 353 | CODE | |
| LOW | src/telegram/__init__.py | 353 | CODE | |
| LOW | src/telegram/__init__.py | 353 | CODE | |
| LOW | src/telegram/__init__.py | 353 | CODE | |
| LOW | src/telegram/__init__.py | 353 | CODE | |
| LOW | src/telegram/__init__.py | 353 | CODE | |
| LOW | src/telegram/__init__.py | 363 | CODE | |
| LOW | src/telegram/__init__.py | 363 | CODE | |
| LOW | src/telegram/__init__.py | 364 | CODE | |
| LOW | src/telegram/__init__.py | 365 | CODE | |
| LOW | src/telegram/__init__.py | 365 | CODE | |
| LOW | src/telegram/__init__.py | 365 | CODE | |
| LOW | src/telegram/__init__.py | 365 | CODE | |
| 513 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/telegram/_ownedgift.py | 221 | CODE | |
| LOW | src/telegram/_poll.py | 112 | CODE | |
| LOW | src/telegram/_poll.py | 856 | CODE | |
| LOW | src/telegram/_chatfullinfo.py | 492 | CODE | |
| LOW | src/telegram/_chatmember.py | 333 | CODE | |
| LOW | src/telegram/_keyboardbutton.py | 204 | CODE | |
| LOW | src/telegram/_callbackquery.py | 154 | CODE | |
| LOW | src/telegram/_callbackquery.py | 199 | CODE | |
| LOW | src/telegram/_callbackquery.py | 271 | CODE | |
| LOW | src/telegram/_callbackquery.py | 495 | CODE | |
| LOW | src/telegram/_callbackquery.py | 850 | CODE | |
| LOW | src/telegram/_bot.py | 754 | CODE | |
| LOW | src/telegram/_bot.py | 1015 | CODE | |
| LOW | src/telegram/_bot.py | 1215 | CODE | |
| LOW | src/telegram/_bot.py | 1321 | CODE | |
| LOW | src/telegram/_bot.py | 1409 | CODE | |
| LOW | src/telegram/_bot.py | 1475 | CODE | |
| LOW | src/telegram/_bot.py | 1635 | CODE | |
| LOW | src/telegram/_bot.py | 1809 | CODE | |
| LOW | src/telegram/_bot.py | 1972 | CODE | |
| LOW | src/telegram/_bot.py | 2102 | CODE | |
| LOW | src/telegram/_bot.py | 2303 | CODE | |
| LOW | src/telegram/_bot.py | 2462 | CODE | |
| LOW | src/telegram/_bot.py | 2644 | CODE | |
| LOW | src/telegram/_bot.py | 2807 | CODE | |
| LOW | src/telegram/_bot.py | 2990 | CODE | |
| LOW | src/telegram/_bot.py | 3153 | CODE | |
| LOW | src/telegram/_bot.py | 3267 | CODE | |
| LOW | src/telegram/_bot.py | 3319 | CODE | |
| LOW | src/telegram/_bot.py | 3487 | CODE | |
| LOW | src/telegram/_bot.py | 3632 | CODE | |
| LOW | src/telegram/_bot.py | 3872 | CODE | |
| LOW | src/telegram/_bot.py | 3968 | CODE | |
| LOW | src/telegram/_bot.py | 4306 | CODE | |
| LOW | src/telegram/_bot.py | 4371 | CODE | |
| LOW | src/telegram/_bot.py | 4478 | CODE | |
| LOW | src/telegram/_bot.py | 4554 | CODE | |
| LOW | src/telegram/_bot.py | 4621 | CODE | |
| LOW | src/telegram/_bot.py | 4678 | CODE | |
| LOW | src/telegram/_bot.py | 4793 | CODE | |
| LOW | src/telegram/_bot.py | 5212 | CODE | |
| LOW | src/telegram/_bot.py | 5276 | CODE | |
| LOW | src/telegram/_bot.py | 5332 | CODE | |
| LOW | src/telegram/_bot.py | 5819 | CODE | |
| LOW | src/telegram/_bot.py | 6085 | CODE | |
| LOW | src/telegram/_bot.py | 6156 | CODE | |
| LOW | src/telegram/_bot.py | 7370 | CODE | |
| LOW | src/telegram/_bot.py | 7687 | CODE | |
| LOW | src/telegram/_bot.py | 7806 | CODE | |
| LOW | src/telegram/_bot.py | 8217 | CODE | |
| LOW | src/telegram/_bot.py | 8373 | CODE | |
| LOW | src/telegram/_bot.py | 8528 | CODE | |
| LOW | src/telegram/_bot.py | 9548 | CODE | |
| LOW | src/telegram/_bot.py | 9660 | CODE | |
| LOW | src/telegram/_bot.py | 9879 | CODE | |
| LOW | src/telegram/_bot.py | 9967 | CODE | |
| LOW | src/telegram/_bot.py | 10826 | CODE | |
| LOW | src/telegram/_bot.py | 11084 | CODE | |
| LOW | src/telegram/_bot.py | 11494 | CODE | |
| LOW | src/telegram/_bot.py | 11564 | CODE | |
| 219 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/request/test_request.py | 476 | # Create a new one instead of using the fixture so that the mocking can work | COMMENT |
| MEDIUM | docs/auxil/admonition_inserter.py | 38 | # Define the namespace for type resolution. This helps dealing with the internal imports that | COMMENT |
| MEDIUM | examples/arbitrarycallbackdatabot.py | 98 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/conversationbot2.py | 118 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/inlinekeyboard.py | 58 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/webappbot.py | 59 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/echobot.py | 33 | # Define a few command handlers. These usually take the two arguments update and | COMMENT |
| MEDIUM | examples/echobot.py | 56 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/persistentconversationbot.py | 135 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/inlinekeyboard2.py | 168 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM⚡ | examples/paymentbot.py | 141 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/chatmemberbot.py | 158 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/inlinebot.py | 36 | # Define a few command handlers. These usually take the two arguments update and | COMMENT |
| MEDIUM | examples/inlinebot.py | 82 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/passportbot.py | 113 | # Create the Application and pass it your token and private key | COMMENT |
| MEDIUM | examples/timerbot.py | 36 | # Define a few command handlers. These usually take the two arguments update and | COMMENT |
| MEDIUM | examples/timerbot.py | 95 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/errorhandlerbot.py | 73 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/pollbot.py | 161 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/nestedconversationbot.py | 309 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/deeplinking.py | 111 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | examples/conversationbot.py | 141 | # Create the Application and pass it your bot's token. | COMMENT |
| MEDIUM | .github/workflows/release_pypi.yml | 125 | # Create a tag and a GitHub Release. The description is filled by the static template, we | COMMENT |
| MEDIUM | .github/workflows/chango.yml | 38 | # Create the new fragment | COMMENT |
| MEDIUM | .github/workflows/copilot-setup-steps.yml | 1 | # This file is for the copilot agent on Github. This helps to set up the development environment | COMMENT |
| MEDIUM | .github/workflows/release_test_pypi.yml | 127 | # Create a tag and a GitHub Release *draft*. The description is filled by the static | COMMENT |
| MEDIUM | src/telegram/_telegramobject.py | 692 | """This method is used for obtaining the attributes of the object. | STRING |
| MEDIUM | src/telegram/_bot.py | 855 | # Initialize request objects if not already done | COMMENT |
| MEDIUM | src/telegram/_bot.py | 643 | """This method is here to make ext.Defaults work. Because we need to be able to tell | STRING |
| MEDIUM | src/telegram/_reaction.py | 173 | """This class represents a reaction added to a message along with the number of times it was | STRING |
| MEDIUM | src/telegram/_messagereactionupdated.py | 33 | """This class represents reaction changes on a message with anonymous reactions. | STRING |
| MEDIUM | src/telegram/_messagereactionupdated.py | 86 | """This class represents a change of a reaction on a message performed by a user. | STRING |
| MEDIUM | src/telegram/ext/_jobqueue.py | 238 | """This method is used as a callback for the APScheduler jobs. | STRING |
| MEDIUM | src/telegram/ext/_jobqueue.py | 754 | """This class is a convenience wrapper for the jobs held in a :class:`telegram.ext.JobQueue`. | STRING |
| MEDIUM | src/telegram/ext/_extbot.py | 706 | """This method is called by Bot.answer_inline_query to build the actual results list. | STRING |
| MEDIUM | src/telegram/ext/_extbot.py | 736 | """This method is called by Bot.answer_inline_query to replace `DefaultValue(obj)` with | STRING |
| MEDIUM | src/telegram/ext/_utils/webhookhandler.py | 48 | # This module is not visible to users, so we log as Updater | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_paidmedia.py | 382 | # =========================================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_paidmedia.py | 383 | # =========================================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_paidmedia.py | 384 | # =========================================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_paidmedia.py | 385 | # =========================================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_paidmedia.py | 386 | # =========================================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_paidmedia.py | 387 | # =========================================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_paidmedia.py | 388 | # =========================================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_paidmedia.py | 389 | # =========================================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_paidmedia.py | 390 | # =========================================================================================== | COMMENT |
| MEDIUM⚡ | tests/test_paidmedia.py | 391 | # =========================================================================================== | COMMENT |
| MEDIUM | docs/auxil/sphinx_hooks.py | 115 | # ------------------------------------------------- | COMMENT |
| MEDIUM | docs/auxil/sphinx_hooks.py | 142 | # ------------------------------------------------- | COMMENT |
| MEDIUM | docs/auxil/sphinx_hooks.py | 150 | # ------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/arbitrarycallbackdatabot.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/conversationbot2.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/inlinekeyboard.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/webappbot.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/echobot.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/persistentconversationbot.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/inlinekeyboard2.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/paymentbot.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/chatmemberbot.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/inlinebot.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/passportbot.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/timerbot.py | 63 | async def set_timer(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: | CODE |
| LOW | examples/errorhandlerbot.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/rawapibot.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/pollbot.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/contexttypesbot.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/nestedconversationbot.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/deeplinking.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/conversationbot.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/customwebhookbot/djangobot.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/customwebhookbot/quartbot.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/customwebhookbot/flaskbot.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/customwebhookbot/starlettebot.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/telegram/warnings.py | 23 | __all__ = ["PTBDeprecationWarning", "PTBRuntimeWarning", "PTBUserWarning"] | CODE |
| LOW | src/telegram/_telegramobject.py | 831 | def set_bot(self, bot: "Bot | None") -> None: | CODE |
| LOW | src/telegram/constants.py | 38 | __all__ = [ | CODE |
| LOW | src/telegram/_inline/inlinekeyboardbutton.py | 328 | def _set_id_attrs(self) -> None: | CODE |
| LOW | src/telegram/_inline/inlinekeyboardbutton.py | 343 | def update_callback_data(self, callback_data: str | object) -> None: | CODE |
| LOW | src/telegram/ext/_applicationbuilder.py | 289 | def _updater_check(self, name: str) -> None: | CODE |
| LOW | src/telegram/ext/_callbackdatacache.py | 99 | def update_access_time(self) -> None: | CODE |
| LOW | src/telegram/ext/_basepersistence.py | 172 | def set_bot(self, bot: Bot) -> None: | CODE |
| LOW | src/telegram/ext/_basepersistence.py | 286 | async def update_user_data(self, user_id: int, data: UD) -> None: | CODE |
| LOW | src/telegram/ext/_basepersistence.py | 297 | async def update_chat_data(self, chat_id: int, data: CD) -> None: | CODE |
| LOW | src/telegram/ext/_basepersistence.py | 308 | async def update_bot_data(self, data: BD) -> None: | CODE |
| LOW | src/telegram/ext/_basepersistence.py | 318 | async def update_callback_data(self, data: CDCData) -> None: | CODE |
| LOW | src/telegram/ext/_application.py | 1231 | async def _update_fetcher(self) -> None: | CODE |
| LOW | src/telegram/ext/_application.py | 1662 | async def update_persistence(self) -> None: | CODE |
| LOW | src/telegram/ext/_picklepersistence.py | 412 | async def update_user_data(self, user_id: int, data: UD) -> None: | CODE |
| LOW | src/telegram/ext/_picklepersistence.py | 430 | async def update_chat_data(self, chat_id: int, data: CD) -> None: | CODE |
| LOW | src/telegram/ext/_picklepersistence.py | 448 | async def update_bot_data(self, data: BD) -> None: | CODE |
| LOW | src/telegram/ext/_picklepersistence.py | 464 | async def update_callback_data(self, data: CDCData) -> None: | CODE |
| LOW | src/telegram/ext/_dictpersistence.py | 315 | async def update_user_data(self, user_id: int, data: dict[Any, Any]) -> None: | CODE |
| LOW | src/telegram/ext/_dictpersistence.py | 329 | async def update_chat_data(self, chat_id: int, data: dict[Any, Any]) -> None: | CODE |
| LOW | src/telegram/ext/_dictpersistence.py | 343 | async def update_bot_data(self, data: dict[Any, Any]) -> None: | CODE |
| LOW | src/telegram/ext/_dictpersistence.py | 354 | async def update_callback_data(self, data: CDCData) -> None: | CODE |
| LOW | src/telegram/ext/filters.py | 698 | def _set_chat_ids(self, chat_id: SCT[int] | None) -> None: | CODE |
| LOW | src/telegram/ext/filters.py | 706 | def _set_usernames(self, username: SCT[str] | None) -> None: | CODE |
| LOW | src/telegram/ext/_utils/trackingdict.py | 97 | def update_no_track(self, mapping: Mapping[_KT, _VT]) -> None: | CODE |
| LOW | src/telegram/ext/_utils/webhookhandler.py | 152 | def set_default_headers(self) -> None: | CODE |
| LOW | src/telegram/_files/file.py | 366 | def set_credentials(self, credentials: "FileCredentials") -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/auxil/bot_method_checks.py | 265 | except Exception as exc: | CODE |
| LOW | tests/auxil/bot_method_checks.py | 686 | except Exception as exc: | CODE |
| LOW | tests/ext/test_conversationhandler.py | 721 | except Exception as exc: | CODE |
| LOW | tests/ext/test_application.py | 2841 | except Exception as e: | CODE |
| LOW | docs/auxil/link_code.py | 45 | except Exception as exc: | CODE |
| LOW | docs/auxil/tg_const_role.py | 91 | except Exception as exc: | CODE |
| LOW | src/telegram/_bot.py | 416 | except Exception: | CODE |
| LOW | src/telegram/_bot.py | 4784 | except Exception as exc: | CODE |
| LOW | src/telegram/_utils/files.py | 94 | except Exception: | CODE |
| LOW | src/telegram/ext/_jobqueue.py | 1001 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_jobqueue.py | 1011 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_updater.py | 141 | except Exception: | CODE |
| LOW | src/telegram/ext/_updater.py | 309 | except Exception: | CODE |
| LOW | src/telegram/ext/_updater.py | 348 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_updater.py | 585 | except Exception: | CODE |
| MEDIUM | src/telegram/ext/_updater.py | 338 | def polling_action_cb() -> None: | CODE |
| LOW | src/telegram/ext/_application.py | 371 | except Exception: | CODE |
| LOW | src/telegram/ext/_application.py | 635 | except Exception: | CODE |
| LOW | src/telegram/ext/_application.py | 1183 | except Exception as exception: | CODE |
| LOW | src/telegram/ext/_application.py | 1287 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_application.py | 1324 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_application.py | 1903 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_application.py | 1931 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_picklepersistence.py | 265 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_picklepersistence.py | 277 | except Exception as exc: | CODE |
| MEDIUM | src/telegram/ext/_picklepersistence.py | 245 | def _load_singlefile(self) -> None: | CODE |
| LOW | src/telegram/ext/_baseupdateprocessor.py | 90 | except Exception: | CODE |
| LOW | src/telegram/ext/_utils/webhookhandler.py | 168 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_utils/stack.py | 60 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_handlers/conversationhandler.py | 667 | except Exception as exc: | CODE |
| LOW | src/telegram/ext/_handlers/conversationhandler.py | 702 | except Exception as exc: | CODE |
| LOW | src/telegram/request/_baserequest.py | 118 | except Exception: | CODE |
| LOW | src/telegram/request/_baserequest.py | 316 | except Exception as exc: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_bot.py | 575 | CODE | |
| LOW | tests/test_official/scraper.py | 85 | CODE | |
| LOW | tests/test_official/arg_type_checker.py | 96 | CODE | |
| LOW | tests/auxil/bot_method_checks.py | 59 | CODE | |
| LOW | tests/auxil/bot_method_checks.py | 273 | CODE | |
| LOW | tests/auxil/bot_method_checks.py | 431 | CODE | |
| LOW | tests/_files/test_sticker.py | 812 | CODE | |
| LOW | docs/auxil/admonition_inserter.py | 272 | CODE | |
| LOW | docs/auxil/admonition_inserter.py | 483 | CODE | |
| LOW | docs/auxil/admonition_inserter.py | 511 | CODE | |
| LOW | docs/auxil/sphinx_hooks.py | 66 | CODE | |
| LOW | docs/auxil/sphinx_hooks.py | 86 | CODE | |
| LOW | examples/chatmemberbot.py | 65 | CODE | |
| LOW | src/telegram/_telegramobject.py | 295 | CODE | |
| LOW | src/telegram/_telegramobject.py | 414 | CODE | |
| LOW | src/telegram/_telegramobject.py | 517 | CODE | |
| LOW | src/telegram/_telegramobject.py | 741 | CODE | |
| LOW | src/telegram/_bot.py | 642 | CODE | |
| LOW | src/telegram/_message.py | 1890 | CODE | |
| LOW | src/telegram/_message.py | 5337 | CODE | |
| LOW | src/telegram/_message.py | 5537 | CODE | |
| LOW | src/telegram/helpers.py | 45 | CODE | |
| LOW | src/telegram/_update.py | 514 | CODE | |
| LOW | src/telegram/_update.py | 670 | CODE | |
| LOW | src/telegram/_update.py | 737 | CODE | |
| LOW | src/telegram/_passport/encryptedpassportelement.py | 214 | CODE | |
| LOW | src/telegram/ext/_callbackdatacache.py | 328 | CODE | |
| LOW | src/telegram/ext/_extbot.py | 444 | CODE | |
| LOW | src/telegram/ext/_extbot.py | 735 | CODE | |
| LOW | src/telegram/ext/_application.py | 1021 | CODE | |
| LOW | src/telegram/ext/_application.py | 1248 | CODE | |
| LOW | src/telegram/ext/_application.py | 1685 | CODE | |
| LOW | src/telegram/ext/_application.py | 1854 | CODE | |
| LOW | src/telegram/ext/_aioratelimiter.py | 235 | CODE | |
| LOW | src/telegram/ext/filters.py | 461 | CODE | |
| LOW | src/telegram/ext/_handlers/conversationhandler.py | 286 | CODE | |
| LOW | src/telegram/ext/_handlers/conversationhandler.py | 706 | CODE | |
| LOW | src/telegram/ext/_handlers/conversationhandler.py | 797 | CODE | |
| LOW | src/telegram/ext/_handlers/conversationhandler.py | 897 | CODE | |
| LOW | src/telegram/request/_baserequest.py | 259 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/conftest.py | 72 | if ( # Check if the class name ends with 'WithRequest' and if it has no flaky marker | CODE |
| LOW⚡ | tests/test_bot.py | 4401 | # Check if we pinned 3 messages | COMMENT |
| LOW⚡ | tests/test_bot.py | 4399 | assert len(messages) == 3 # Check if we sent 3 messages | CODE |
| LOW⚡ | tests/test_bot.py | 4403 | assert all(i.done() for i in pinned_messages_tasks) # Check if all tasks are done | CODE |
| LOW | tests/test_bot.py | 4704 | # Check if its been deleted- | COMMENT |
| LOW | tests/test_official/test_official.py | 78 | # Check if parameter is present in our method | COMMENT |
| LOW | tests/test_official/test_official.py | 89 | # Check if type annotation is present | COMMENT |
| LOW | tests/test_official/test_official.py | 93 | # Check if type annotation is correct | COMMENT |
| LOW | tests/test_official/test_official.py | 169 | # Check if type annotation is present | COMMENT |
| LOW | tests/test_official/test_official.py | 174 | # Check if type annotation is correct | COMMENT |
| LOW | examples/paymentbot.py | 106 | # Verify if the payload matches, ensure it's from your bot | COMMENT |
| LOW⚡ | examples/paymentbot.py | 125 | # Verify if the payload matches, ensure it's from your bot | COMMENT |
| LOW | src/telegram/ext/_applicationbuilder.py | 1070 | # Check if concurrent updates is bool and convert to integer | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/auxil/ci_bots.py | 66 | except (IndexError, KeyError): | CODE |
| HIGH | tests/request/test_request.py | 802 | except (asyncio.CancelledError, asyncio.InvalidStateError): | CODE |
| HIGH | src/telegram/ext/_application.py | 1653 | except asyncio.TimeoutError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/auxil/dummy_objects.py | 53 | id=123456, is_bot=False, first_name="Dummy", last_name="User", username="dummy_user" | CODE |
| LOW | tests/auxil/dummy_objects.py | 106 | "Gifts": Gifts(gifts=[Gift(id="dummy_id", sticker=_DUMMY_STICKER, star_count=1)]), | CODE |
| LOW | tests/auxil/dummy_objects.py | 131 | id="dummy_id", | CODE |
| LOW | tests/auxil/dummy_objects.py | 143 | "PreparedInlineMessage": PreparedInlineMessage(id="dummy_id", expiration_date=_DUMMY_DATE), | CODE |
| LOW | tests/auxil/dummy_objects.py | 148 | transactions=[StarTransaction(id="dummy_id", amount=1, date=_DUMMY_DATE)] | CODE |
| LOW | tests/auxil/dummy_objects.py | 164 | boost_id="dummy_id", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 61 | # When adding new extras, make sure to update `ext` and `all` accordingly | COMMENT |
| LOW | examples/inlinebot.py | 6 | Don't forget to enable inline mode with @BotFather | STRING |
| LOW | src/telegram/_passport/credentials.py | 177 | # We make sure to base64 decode the secret first. | COMMENT |
| LOW | src/telegram/ext/_defaults.py | 147 | # TODO: When dropping support, make sure to update _utils.datetime accordingly | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/request/test_requestparameter.py | 67 | ({True: None}, '{"true": null}'), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/chatmemberbot.py | 174 | # To reset this, simply pass `allowed_updates=[]` | COMMENT |
| MEDIUM | src/telegram/ext/__init__.py | 19 | """Extensions over the Telegram Bot API to facilitate bot making""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/telegram/ext/filters.py | 463 | # We need to check if the filters are data filters and if so return the merged data. | COMMENT |