We have made you a wrapper you can't refuse
This report presents the forensic synthetic code analysis of python-telegram-bot/python-telegram-bot, a Python project with 29,298 GitHub stars. SynthScan v2.0 examined 171,950 lines of code across 838 source files, recording 3196 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 20.3 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 3196 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| 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 | 59 | def no_rerun_after_xfail_or_flood(error, name, test: pytest.Function, plugin): | CODE |
| LOW⚡ | tests/conftest.py | 68 | def pytest_collection_modifyitems(items: list[pytest.Item]): | CODE |
| LOW | tests/conftest.py | 95 | def _disallow_requests_in_without_request_tests(request): | CODE |
| LOW | tests/conftest.py | 292 | 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 |
| 1376 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 |
| 414 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/_chatboost.py | 35 | CODE | |
| LOW | src/telegram/_userprofileaudios.py | 29 | CODE | |
| LOW | src/telegram/_ownedgift.py | 38 | CODE | |
| LOW | src/telegram/_managedbot.py | 30 | CODE | |
| LOW | src/telegram/_webhookinfo.py | 31 | CODE | |
| LOW | src/telegram/_chatowner.py | 29 | CODE | |
| LOW | src/telegram/_chatjoinrequest.py | 34 | CODE | |
| LOW | src/telegram/_chatlocation.py | 30 | CODE | |
| LOW | src/telegram/_poll.py | 58 | CODE | |
| LOW | src/telegram/_chatfullinfo.py | 50 | CODE | |
| LOW | src/telegram/_chatmember.py | 33 | CODE | |
| LOW | src/telegram/_userprofilephotos.py | 29 | CODE | |
| LOW | src/telegram/_keyboardbutton.py | 35 | CODE | |
| LOW | src/telegram/_callbackquery.py | 35 | CODE | |
| LOW | src/telegram/_callbackquery.py | 35 | CODE | |
| LOW | src/telegram/_callbackquery.py | 35 | CODE | |
| LOW | src/telegram/_callbackquery.py | 35 | CODE | |
| LOW | src/telegram/_callbackquery.py | 35 | CODE | |
| LOW | src/telegram/_callbackquery.py | 35 | CODE | |
| LOW | src/telegram/_callbackquery.py | 35 | CODE | |
| LOW | src/telegram/_callbackquery.py | 35 | CODE | |
| LOW | src/telegram/_callbackquery.py | 35 | CODE | |
| LOW | src/telegram/_callbackquery.py | 46 | CODE | |
| LOW | src/telegram/_callbackquery.py | 47 | CODE | |
| LOW | src/telegram/_chatbackground.py | 32 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 126 | CODE | |
| LOW | src/telegram/_bot.py | 147 | 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 | |
| 576 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/telegram/_ownedgift.py | 303 | Returns the text in :attr:`text` from a given :class:`telegram.MessageEntity` of :attr:`entities`. Note | STRING |
| HIGH | src/telegram/_ownedgift.py | 328 | Returns a :obj:`dict` that maps :class:`telegram.MessageEntity` to :obj:`str`. It contains entities fro | STRING |
| HIGH | src/telegram/_poll.py | 787 | This object contains information about a poll. Objects of this class are comparable in terms of equality. Two | STRING |
| HIGH | src/telegram/_poll.py | 1095 | Returns the text in :attr:`explanation` from a given :class:`telegram.MessageEntity` of :attr:`explanation_entit | STRING |
| HIGH | src/telegram/_poll.py | 1122 | Returns a :obj:`dict` that maps :class:`telegram.MessageEntity` to :obj:`str`. It contains entities fro | STRING |
| HIGH | src/telegram/_poll.py | 1196 | Returns the text in :attr:`description` from a given :class:`telegram.MessageEntity` of :attr:`description_entit | STRING |
| HIGH | src/telegram/_poll.py | 1225 | Returns a :obj:`dict` that maps :class:`telegram.MessageEntity` to :obj:`str`. It contains entities fro | STRING |
| HIGH | src/telegram/_chatmember.py | 37 | Base class for Telegram ChatMember Objects. Currently, the following 6 types of chat members are supported: * : | STRING |
| HIGH | src/telegram/_telegramobject.py | 218 | Objects of this type are subscriptable with strings, where ``telegram_object["attribute_name"]`` is equ | STRING |
| HIGH | src/telegram/_bot.py | 1043 | Use this method to send text messages. Args: chat_id (:obj:`int` | :obj:`str`): |chat_id_channel| | STRING |
| HIGH | src/telegram/_bot.py | 4391 | Use this method to edit text and game messages. Note: * |editreplymarkup| * |b | STRING |
| HIGH | src/telegram/_bot.py | 4810 | Use this method to specify a url and receive incoming updates via an outgoing webhook. Whenever there i | STRING |
| HIGH | src/telegram/_bot.py | 5229 | Use this method to set the score of the specified user in a game message. .. seealso:: :attr:`telegram | STRING |
| HIGH | src/telegram/_chat.py | 185 | Note: :tg-const:`telegram.constants.ParseMode.MARKDOWN` is a legacy mode, retained by T | STRING |
| HIGH | src/telegram/_chat.py | 223 | .. versionadded:: 20.0 Args: name (:obj:`str`): The name used as a link for the chat. Defa | STRING |
| HIGH | src/telegram/_chat.py | 256 | .. 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 | 1945 | 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 | 2026 | Builds a dictionary with the keys ``chat_id`` and ``reply_parameters``. This dictionary can be used to | STRING |
| HIGH | src/telegram/_message.py | 2578 | Shortcut for:: await bot.send_media_group( update.effective_message.chat_id, | STRING |
| HIGH | src/telegram/_message.py | 5456 | Returns the text from a given :class:`telegram.MessageEntity`. Note: This method is present because | STRING |
| HIGH | src/telegram/_message.py | 5480 | Returns the text from a given :class:`telegram.MessageEntity`. Note: This method is present because | STRING |
| HIGH | src/telegram/_gifts.py | 399 | Returns the text in :attr:`text` from a given :class:`telegram.MessageEntity` of :attr:`entities`. Note | STRING |
| HIGH | src/telegram/_gifts.py | 424 | Returns a :obj:`dict` that maps :class:`telegram.MessageEntity` to :obj:`str`. It contains entities fro | STRING |
| HIGH | src/telegram/_messageentity.py | 201 | Utility functionality for converting the offset and length of entities from Unicode (:obj:`str`) to UTF-16 (``ut | STRING |
| HIGH | src/telegram/_messageentity.py | 274 | Utility functionality for shifting the offset of entities by a given amount. Examples: Shifting by | STRING |
| HIGH | src/telegram/_messageentity.py | 340 | 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 | 450 | 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 | 38 | 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 | 48 | 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 | 53 | 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 | 34 | 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 | 38 | 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 | src/telegram/_ownedgift.py | 250 | CODE | |
| LOW | src/telegram/_poll.py | 119 | CODE | |
| LOW | src/telegram/_poll.py | 982 | CODE | |
| LOW | src/telegram/_chatfullinfo.py | 496 | CODE | |
| LOW | src/telegram/_chatmember.py | 358 | CODE | |
| LOW | src/telegram/_keyboardbutton.py | 204 | CODE | |
| LOW | src/telegram/_callbackquery.py | 166 | CODE | |
| LOW | src/telegram/_callbackquery.py | 211 | CODE | |
| LOW | src/telegram/_callbackquery.py | 283 | CODE | |
| LOW | src/telegram/_callbackquery.py | 507 | CODE | |
| LOW | src/telegram/_callbackquery.py | 862 | CODE | |
| LOW | src/telegram/_bot.py | 755 | CODE | |
| LOW | src/telegram/_bot.py | 1016 | CODE | |
| LOW | src/telegram/_bot.py | 1216 | CODE | |
| LOW | src/telegram/_bot.py | 1322 | CODE | |
| LOW | src/telegram/_bot.py | 1410 | CODE | |
| LOW | src/telegram/_bot.py | 1476 | CODE | |
| LOW | src/telegram/_bot.py | 1636 | CODE | |
| LOW | src/telegram/_bot.py | 1810 | CODE | |
| LOW | src/telegram/_bot.py | 1973 | CODE | |
| LOW | src/telegram/_bot.py | 2103 | CODE | |
| LOW | src/telegram/_bot.py | 2304 | CODE | |
| LOW | src/telegram/_bot.py | 2463 | CODE | |
| LOW | src/telegram/_bot.py | 2645 | CODE | |
| LOW | src/telegram/_bot.py | 2808 | CODE | |
| LOW | src/telegram/_bot.py | 2991 | CODE | |
| LOW | src/telegram/_bot.py | 3154 | CODE | |
| LOW | src/telegram/_bot.py | 3268 | CODE | |
| LOW | src/telegram/_bot.py | 3320 | CODE | |
| LOW | src/telegram/_bot.py | 3488 | CODE | |
| LOW | src/telegram/_bot.py | 3633 | CODE | |
| LOW | src/telegram/_bot.py | 3873 | CODE | |
| LOW | src/telegram/_bot.py | 3969 | CODE | |
| LOW | src/telegram/_bot.py | 4307 | CODE | |
| LOW | src/telegram/_bot.py | 4372 | CODE | |
| LOW | src/telegram/_bot.py | 4479 | CODE | |
| LOW | src/telegram/_bot.py | 4555 | CODE | |
| LOW | src/telegram/_bot.py | 4622 | CODE | |
| LOW | src/telegram/_bot.py | 4679 | CODE | |
| LOW | src/telegram/_bot.py | 4794 | CODE | |
| LOW | src/telegram/_bot.py | 5213 | CODE | |
| LOW | src/telegram/_bot.py | 5277 | CODE | |
| LOW | src/telegram/_bot.py | 5333 | CODE | |
| LOW | src/telegram/_bot.py | 5820 | CODE | |
| LOW | src/telegram/_bot.py | 6086 | CODE | |
| LOW | src/telegram/_bot.py | 6157 | CODE | |
| LOW | src/telegram/_bot.py | 7371 | CODE | |
| LOW | src/telegram/_bot.py | 7709 | CODE | |
| LOW | src/telegram/_bot.py | 7828 | CODE | |
| LOW | src/telegram/_bot.py | 8239 | CODE | |
| LOW | src/telegram/_bot.py | 8395 | CODE | |
| LOW | src/telegram/_bot.py | 8550 | CODE | |
| LOW | src/telegram/_bot.py | 9570 | CODE | |
| LOW | src/telegram/_bot.py | 9682 | CODE | |
| LOW | src/telegram/_bot.py | 9901 | CODE | |
| LOW | src/telegram/_bot.py | 9989 | CODE | |
| LOW | src/telegram/_bot.py | 10848 | CODE | |
| LOW | src/telegram/_bot.py | 11106 | CODE | |
| LOW | src/telegram/_bot.py | 11516 | CODE | |
| LOW | src/telegram/_bot.py | 11586 | CODE | |
| 219 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/request/test_request.py | 475 | # 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 | 545 | """This method is used for obtaining the attributes of the object. | STRING |
| MEDIUM | src/telegram/_bot.py | 856 | # Initialize request objects if not already done | COMMENT |
| MEDIUM | src/telegram/_bot.py | 644 | """This method is here to make ext.Defaults work. Because we need to be able to tell | STRING |
| MEDIUM | src/telegram/_reaction.py | 184 | """This class represents a reaction added to a message along with the number of times it was | STRING |
| MEDIUM | src/telegram/_messagereactionupdated.py | 38 | """This class represents reaction changes on a message with anonymous reactions. | STRING |
| MEDIUM | src/telegram/_messagereactionupdated.py | 105 | """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 | 705 | """This method is called by Bot.answer_inline_query to build the actual results list. | STRING |
| MEDIUM | src/telegram/ext/_extbot.py | 735 | """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 | 684 | def set_bot(self, bot: "Bot | None") -> None: | CODE |
| LOW | src/telegram/constants.py | 38 | __all__ = [ | CODE |
| LOW | src/telegram/_inline/inlinekeyboardbutton.py | 332 | def _set_id_attrs(self) -> None: | CODE |
| LOW | src/telegram/_inline/inlinekeyboardbutton.py | 362 | 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 | 2830 | 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 | 417 | except Exception: | CODE |
| LOW | src/telegram/_bot.py | 4785 | 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 | 556 | 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 | 768 | 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 | 270 | CODE | |
| LOW | src/telegram/_telegramobject.py | 594 | CODE | |
| LOW | src/telegram/_bot.py | 643 | CODE | |
| LOW | src/telegram/_message.py | 2107 | CODE | |
| LOW | src/telegram/_message.py | 5556 | CODE | |
| LOW | src/telegram/_message.py | 5756 | CODE | |
| LOW | src/telegram/helpers.py | 45 | CODE | |
| LOW | src/telegram/_update.py | 515 | CODE | |
| LOW | src/telegram/_update.py | 671 | CODE | |
| LOW | src/telegram/_update.py | 738 | CODE | |
| LOW | src/telegram/_passport/encryptedpassportelement.py | 212 | CODE | |
| LOW | src/telegram/ext/_callbackdatacache.py | 328 | CODE | |
| LOW | src/telegram/ext/_extbot.py | 445 | CODE | |
| LOW | src/telegram/ext/_extbot.py | 734 | 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/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 | 74 | if ( # Check if the class name ends with 'WithRequest' and if it has no flaky marker | CODE |
| LOW⚡ | tests/test_bot.py | 4389 | # Check if we pinned 3 messages | COMMENT |
| LOW⚡ | tests/test_bot.py | 4387 | assert len(messages) == 3 # Check if we sent 3 messages | CODE |
| LOW⚡ | tests/test_bot.py | 4391 | assert all(i.done() for i in pinned_messages_tasks) # Check if all tasks are done | CODE |
| LOW | tests/test_bot.py | 4692 | # 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 |
|---|---|---|---|---|
| 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 | 180 | # 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 |