AI Slop Code RIsk Monitor

aiogram/aiogram

aiogram is a modern and fully asynchronous framework for Telegram Bot API written in Python using asyncio

46.5 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for aiogram/aiogram, a Python project with 5,890 GitHub stars. SynthScan examined 132,559 lines of code across 1978 source files, recording 2955 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 46.5 (High 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.

46.5
Adjusted Signal
46.5
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
5.9K
Stars
Python
Language
132.6K
Lines of Code
2.0K
Files
3.0K
Pattern Hits
2026-10-12
Scan Date
0.44
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 23.4/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 667 finding(s).

Hallucinated Dependency & Supply Chain Risk 36.2/100 · MEDIUM

Are imports declared and package/API names verified? 1410 finding(s).

Agent Over-Engineering Ratio 83.9/100 · CRITICAL

Are wrappers, guards, and repeated structures necessary? 1503 finding(s).

PR Review Velocity Impact 93.7/100 · CRITICAL

Which changes need focused human review? 2955 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

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.

CRITICAL 1HIGH 863MEDIUM 31LOW 2060

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 2955 distinct pattern matches across 16 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.

Cross-File Repetition848 hits · 4240 pts
SeverityFileLineSnippetContext
HIGHexamples/specify_updates.py0this handler receives messages with `/start` commandSTRING
HIGHexamples/echo_bot.py0this handler receives messages with `/start` commandSTRING
HIGHexamples/echo_bot_webhook_ssl.py0this handler receives messages with `/start` commandSTRING
HIGHexamples/echo_bot_webhook.py0this handler receives messages with `/start` commandSTRING
HIGHexamples/multi_file_bot/handlers/start.py0this handler receives messages with `/start` commandSTRING
HIGHexamples/echo_bot.py0handler will forward receive a message back to the sender by default, message handler will handle all message types (likSTRING
HIGHexamples/multi_file_bot/handlers/echo.py0handler will forward receive a message back to the sender by default, message handler will handle all message types (likSTRING
HIGHexamples/echo_bot_webhook_ssl.py0handler will forward receive a message back to the sender by default, message handler will handle all message types (likSTRING
HIGHexamples/echo_bot_webhook.py0handler will forward receive a message back to the sender by default, message handler will handle all message types (likSTRING
HIGHaiogram/types/suggested_post_declined.py0*optional*. message containing the suggested post. note that the :class:`aiogram.types.message.message` object in this fSTRING
HIGHaiogram/types/suggested_post_approved.py0*optional*. message containing the suggested post. note that the :class:`aiogram.types.message.message` object in this fSTRING
HIGHaiogram/types/suggested_post_refunded.py0*optional*. message containing the suggested post. note that the :class:`aiogram.types.message.message` object in this fSTRING
HIGHaiogram/types/suggested_post_paid.py0*optional*. message containing the suggested post. note that the :class:`aiogram.types.message.message` object in this fSTRING
HIGHaiogram/types/input_paid_media_video.py0cover for the video in the message. pass a file_id to send a file that exists on the telegram servers (recommended), pasSTRING
HIGHaiogram/types/input_media_photo.py0cover for the video in the message. pass a file_id to send a file that exists on the telegram servers (recommended), pasSTRING
HIGHaiogram/types/input_paid_media_photo.py0cover for the video in the message. pass a file_id to send a file that exists on the telegram servers (recommended), pasSTRING
HIGHaiogram/types/input_media_audio.py0cover for the video in the message. pass a file_id to send a file that exists on the telegram servers (recommended), pasSTRING
HIGHaiogram/types/input_media_video.py0cover for the video in the message. pass a file_id to send a file that exists on the telegram servers (recommended), pasSTRING
HIGHaiogram/types/input_media_document.py0cover for the video in the message. pass a file_id to send a file that exists on the telegram servers (recommended), pasSTRING
HIGHaiogram/types/input_media_animation.py0cover for the video in the message. pass a file_id to send a file that exists on the telegram servers (recommended), pasSTRING
HIGHaiogram/types/input_media_sticker.py0cover for the video in the message. pass a file_id to send a file that exists on the telegram servers (recommended), pasSTRING
HIGHaiogram/types/input_media_voice_note.py0cover for the video in the message. pass a file_id to send a file that exists on the telegram servers (recommended), pasSTRING
HIGHaiogram/methods/send_video.py0cover for the video in the message. pass a file_id to send a file that exists on the telegram servers (recommended), pasSTRING
HIGHaiogram/types/input_paid_media_video.py0thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. the thumbnail STRING
HIGHaiogram/types/input_media_audio.py0thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. the thumbnail STRING
HIGHaiogram/types/input_media_video.py0thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. the thumbnail STRING
HIGHaiogram/types/input_media_document.py0thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. the thumbnail STRING
HIGHaiogram/types/input_media_animation.py0thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. the thumbnail STRING
HIGHaiogram/methods/send_animation.py0thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. the thumbnail STRING
HIGHaiogram/methods/send_document.py0thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. the thumbnail STRING
HIGHaiogram/methods/send_video_note.py0thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. the thumbnail STRING
HIGHaiogram/methods/send_video.py0thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. the thumbnail STRING
HIGHaiogram/methods/send_audio.py0thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. the thumbnail STRING
HIGHaiogram/types/input_paid_media_video.py0pass :code:`true` if the uploaded video is suitable for streamingSTRING
HIGHaiogram/types/input_media_video.py0pass :code:`true` if the uploaded video is suitable for streamingSTRING
HIGHaiogram/methods/send_video.py0pass :code:`true` if the uploaded video is suitable for streamingSTRING
HIGHaiogram/types/bot_command_scope_chat_member.py0unique identifier for the target chat or username of the target bot or supergroup in the format :code:`@username`. channSTRING
HIGHaiogram/types/bot_command_scope_chat.py0unique identifier for the target chat or username of the target bot or supergroup in the format :code:`@username`. channSTRING
HIGHaiogram/types/bot_command_scope_chat_administrators.py0unique identifier for the target chat or username of the target bot or supergroup in the format :code:`@username`. channSTRING
HIGHaiogram/methods/send_chat_action.py0unique identifier for the target chat or username of the target bot or supergroup in the format :code:`@username`. channSTRING
HIGHaiogram/types/chat_boost_source_giveaway.py0*optional*. the number of telegram stars to be split between giveaway winners; for telegram star giveaways onlySTRING
HIGHaiogram/types/giveaway_created.py0*optional*. the number of telegram stars to be split between giveaway winners; for telegram star giveaways onlySTRING
HIGHaiogram/types/giveaway.py0*optional*. the number of telegram stars to be split between giveaway winners; for telegram star giveaways onlySTRING
HIGHaiogram/types/inline_query_result_document.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/inline_query_result_cached_document.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/input_media_document.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/input_media_photo.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/inline_query_result_photo.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/inline_query_result_cached_photo.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/input_media_audio.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/input_media_video.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/inline_query_result_video.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/inline_query_result_cached_video.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/input_media_live_photo.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/input_media_animation.py0*optional*. caption of the live photo to be sent, 0-1024 characters after entities parsingSTRING
HIGHaiogram/types/inline_query_result_document.py0mode for parsing entities in the voice message caption. see `formatting options <https://core.telegram.org/bots/api#formSTRING
HIGHaiogram/types/inline_query_result_cached_document.py0mode for parsing entities in the voice message caption. see `formatting options <https://core.telegram.org/bots/api#formSTRING
HIGHaiogram/types/input_media_document.py0mode for parsing entities in the voice message caption. see `formatting options <https://core.telegram.org/bots/api#formSTRING
HIGHaiogram/types/input_media_photo.py0mode for parsing entities in the voice message caption. see `formatting options <https://core.telegram.org/bots/api#formSTRING
HIGHaiogram/types/inline_query_result_photo.py0mode for parsing entities in the voice message caption. see `formatting options <https://core.telegram.org/bots/api#formSTRING
788 more matches not shown…
Unused Imports1386 hits · 1078 pts
SeverityFileLineSnippetContext
LOWexamples/scene.py1CODE
LOWexamples/web_app/routes.py1CODE
LOWexamples/multi_file_bot/handlers/echo.py2CODE
LOWscripts/check_action_refs.py18CODE
LOWaiogram/__init__.py3CODE
LOWaiogram/__init__.py3CODE
LOWaiogram/__init__.py3CODE
LOWaiogram/__init__.py4CODE
LOWaiogram/__init__.py4CODE
LOWaiogram/__init__.py5CODE
LOWaiogram/__init__.py6CODE
LOWaiogram/__init__.py7CODE
LOWaiogram/__init__.py8CODE
LOWaiogram/__init__.py9CODE
LOWaiogram/__init__.py11CODE
LOWaiogram/__init__.py12CODE
LOWaiogram/filters/command.py1CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py2CODE
LOWaiogram/filters/__init__.py17CODE
LOWaiogram/filters/__init__.py17CODE
LOWaiogram/filters/__init__.py17CODE
LOWaiogram/filters/__init__.py18CODE
LOWaiogram/filters/__init__.py18CODE
LOWaiogram/filters/__init__.py19CODE
LOWaiogram/filters/__init__.py19CODE
LOWaiogram/filters/__init__.py19CODE
LOWaiogram/filters/__init__.py20CODE
LOWaiogram/filters/__init__.py21CODE
LOWaiogram/filters/logic.py7CODE
LOWaiogram/filters/chat_member_updated.py1CODE
LOWaiogram/filters/callback_data.py1CODE
LOWaiogram/filters/base.py6CODE
LOWaiogram/types/input_rich_block_preformatted.py1CODE
LOWaiogram/types/input_rich_block_preformatted.py6CODE
LOWaiogram/types/rich_block_list.py1CODE
LOWaiogram/types/rich_block_list.py6CODE
LOWaiogram/types/update.py1CODE
LOWaiogram/types/unique_gift_backdrop_colors.py1CODE
LOWaiogram/types/suggested_post_declined.py1CODE
LOWaiogram/types/input_paid_media_video.py1CODE
LOWaiogram/types/user_profile_audios.py1CODE
LOWaiogram/types/input_rich_block_voice_note.py1CODE
LOWaiogram/types/input_rich_block_voice_note.py6CODE
LOWaiogram/types/rich_block_voice_note.py1CODE
LOWaiogram/types/rich_block_voice_note.py6CODE
LOWaiogram/types/business_connection.py1CODE
LOWaiogram/types/encrypted_credentials.py1CODE
LOWaiogram/types/keyboard_button_poll_type.py1CODE
1326 more matches not shown…
Hyper-Verbose Identifiers390 hits · 378 pts
SeverityFileLineSnippetContext
LOWtests/test_flags/test_getter.py16 def test_extract_flags_from_object(self):CODE
LOWtests/test_webhook/test_aiohttp_server.py62class TestSimpleRequestHandler:CODE
LOWtests/test_webhook/test_aiohttp_server.py78 async def test_reply_into_webhook_file(self, bot: MockedBot, aiohttp_client):CODE
LOWtests/test_webhook/test_aiohttp_server.py110 async def test_reply_into_webhook_text(self, bot: MockedBot, aiohttp_client):CODE
LOWtests/test_webhook/test_aiohttp_server.py137 async def test_reply_into_webhook_unhandled(self, bot: MockedBot, aiohttp_client):CODE
LOWtests/test_webhook/test_aiohttp_server.py159 async def test_reply_into_webhook_background(self, bot: MockedBot, aiohttp_client):CODE
LOWtests/test_webhook/test_aiohttp_server.py212 async def test_filter_requiring_dispatcher(CODE
LOWtests/test_webhook/test_aiohttp_server.py254class TestTokenBasedRequestHandler:CODE
LOWtests/test_handler/test_message.py50 def test_command_not_presented(self):CODE
LOWtests/test_handler/test_base.py36 async def test_bot_from_context_missing(self):CODE
LOWtests/test_filters/test_command.py14 def test_commands_not_iterable(self):CODE
LOWtests/test_filters/test_command.py142 async def test_command_magic_result(self, bot: MockedBot):CODE
LOWtests/test_filters/test_command.py154 async def test_empty_mention_is_none(self, bot: MockedBot):CODE
LOWtests/test_filters/test_command.py219 def test_update_handler_flags(self):CODE
LOWtests/test_filters/test_state.py49 async def test_create_filter_from_state(self):CODE
LOWtests/test_filters/test_callback_data.py31 def test_init_subclass_prefix_required(self):CODE
LOWtests/test_filters/test_callback_data.py39 def test_init_subclass_sep_validation(self):CODE
LOWtests/test_filters/test_callback_data.py68 def test_encode_value_positive(self, value, expected):CODE
LOWtests/test_filters/test_callback_data.py81 def test_encode_value_negative(self, value):CODE
LOWtests/test_filters/test_callback_data.py177 def test_unpack_optional_wo_default(self, hint):CODE
LOWtests/test_filters/test_callback_data.py187 def test_unpack_optional_wo_default_union_type(self):CODE
LOWtests/test_utils/test_web_app.py53 def test_check_webapp_signature(self, token, case, result):CODE
LOWtests/test_utils/test_web_app.py56 def test_parse_web_app_init_data(self):CODE
LOWtests/test_utils/test_web_app.py71 def test_valid_safe_parse_webapp_init_data(self):CODE
LOWtests/test_utils/test_web_app.py80 def test_invalid_safe_parse_webapp_init_data(self):CODE
LOWtests/test_utils/test_web_app.py101 def test_non_ascii_hash_returns_false(self, hash_value):CODE
LOWtests/test_utils/test_web_app.py112 def test_percent_encoded_non_ascii_hash_returns_false(self):CODE
LOWtests/test_utils/test_web_app.py119 def test_empty_hash_returns_false(self):CODE
LOWtests/test_utils/test_chat_member.py95def test_chat_member_resolution(data: dict, resolved_type: type[ChatMember]) -> None:CODE
LOW⚡tests/test_utils/test_deep_linking.py55 async def test_get_startapp_link_with_app_name(self, bot: MockedBot, payload: str):CODE
LOW⚡tests/test_utils/test_deep_linking.py59 async def test_filter_encode_and_decode(self, payload: str):CODE
LOW⚡tests/test_utils/test_deep_linking.py64 async def test_custom_encode_decode(self, payload: str):CODE
LOW⚡tests/test_utils/test_deep_linking.py91 async def test_get_start_link_with_encoding(self, bot: MockedBot, wrong_payload: str):CODE
LOW⚡tests/test_utils/test_deep_linking.py100 async def test_get_startapp_link_with_encoding(self, bot: MockedBot, wrong_payload: str):CODE
LOW⚡tests/test_utils/test_deep_linking.py109 async def test_get_startapp_link_with_app_name_and_encoding(CODE
LOWtests/test_utils/test_link.py31 def test_create_telegram_link(self, base: str, params: dict[str, Any], result: str):CODE
LOWtests/test_utils/test_i18n.py204 async def test_territory_locale_resolution(self, tmp_path, language_code, expected_locale):CODE
LOWtests/test_utils/test_i18n.py241 async def test_territory_locale_gettext(self, tmp_path, language_code, expected_text):CODE
LOWtests/test_utils/test_magic_filter.py23 def test_operation_as_not_none(self):CODE
LOWtests/test_utils/test_magic_filter.py30 def test_operation_as_not_none_iterable(self):CODE
LOWtests/test_utils/test_text_decorations.py193 def test_date_time_with_datetime_object(CODE
LOWtests/test_utils/test_text_decorations.py200 def test_unknown_apply_entity(self):CODE
LOWtests/test_utils/test_web_app_signature.py40 def test_check_webapp_signature(self, bot_id: int, case: str, result: bool):CODE
LOWtests/test_utils/test_web_app_signature.py43 def test_safe_check_webapp_init_data_from_signature(self):CODE
LOWtests/test_utils/test_web_app_signature.py57 def test_safe_check_webapp_init_data_from_signature_invalid(self):CODE
LOW⚡tests/test_utils/test_formatting.py193 def test_as_poll_question_kwargs(self):CODE
LOW⚡tests/test_utils/test_formatting.py200 def test_as_poll_explanation_kwargs(self):CODE
LOW⚡tests/test_utils/test_formatting.py207 def test_as_as_gift_text_kwargs_kwargs(self):CODE
LOWtests/test_utils/test_formatting.py263 def test_getitem_slice_simple(self):CODE
LOWtests/test_utils/test_formatting.py272 def test_getitem_slice_inside_child(self):CODE
LOWtests/test_utils/test_formatting.py329 def test_only_one_element_in_body(self):CODE
LOWtests/test_utils/test_formatting.py347 def test_only_one_element_in_body(self):CODE
LOWtests/test_utils/test_formatting.py372 def test_apply_entity_date_time(self):CODE
LOW⚡tests/test_utils/test_formatting.py388 def test_date_time_with_datetime_object(self):CODE
LOW⚡tests/test_utils/test_formatting.py394 def test_date_time_with_datetime_and_format(self):CODE
LOW⚡tests/test_utils/test_formatting.py400 def test_date_time_as_markdown(self):CODE
LOWtests/test_utils/test_formatting.py414 def test_as_line_single_element_with_sep(self):CODE
LOWtests/test_utils/test_keyboard.py81 def test_validate_markup_invalid_type(self):CODE
LOWtests/test_utils/test_keyboard.py86 def test_validate_markup_too_many_buttons(self):CODE
LOWtests/test_utils/test_keyboard.py319 def test_as_markup_preserves_icon_and_style(CODE
330 more matches not shown…
AI Structural Patterns235 hits · 191 pts
SeverityFileLineSnippetContext
LOWaiogram/types/update.py101CODE
LOWaiogram/types/input_paid_media_video.py42CODE
LOWaiogram/types/inline_query_result_document.py55CODE
LOWaiogram/types/user.py61CODE
LOWaiogram/types/rich_message_button.py50CODE
LOWaiogram/types/sticker.py56CODE
LOWaiogram/types/inline_query_result_venue.py55CODE
LOWaiogram/types/inline_query_result_location.py53CODE
LOWaiogram/types/input_media_audio.py46CODE
LOWaiogram/types/poll_media.py52CODE
LOWaiogram/types/owned_gift_regular.py57CODE
LOWaiogram/types/chat_full_info.py151CODE
LOWaiogram/types/unique_gift_info.py52CODE
LOWaiogram/types/message.py927CODE
LOWaiogram/types/message.py1022CODE
LOWaiogram/types/message.py1125CODE
LOWaiogram/types/message.py1215CODE
LOWaiogram/types/message.py1313CODE
LOWaiogram/types/message.py1390CODE
LOWaiogram/types/message.py1475CODE
LOWaiogram/types/message.py1558CODE
LOWaiogram/types/message.py1706CODE
LOWaiogram/types/message.py1767CODE
LOWaiogram/types/message.py1890CODE
LOWaiogram/types/message.py2017CODE
LOWaiogram/types/message.py2100CODE
LOWaiogram/types/message.py2248CODE
LOWaiogram/types/message.py2309CODE
LOWaiogram/types/message.py2389CODE
LOWaiogram/types/message.py2477CODE
LOWaiogram/types/message.py2560CODE
LOWaiogram/types/message.py2651CODE
LOWaiogram/types/message.py2783CODE
LOWaiogram/types/message.py2919CODE
LOWaiogram/types/message.py2982CODE
LOWaiogram/types/message.py3049CODE
LOWaiogram/types/message.py3120CODE
LOWaiogram/types/message.py3199CODE
LOWaiogram/types/message.py3288CODE
LOWaiogram/types/message.py3385CODE
LOWaiogram/types/message.py3489CODE
LOWaiogram/types/message.py3601CODE
LOWaiogram/types/message.py3678CODE
LOWaiogram/types/message.py3763CODE
LOWaiogram/types/message.py3843CODE
LOWaiogram/types/message.py3931CODE
LOWaiogram/types/message.py4145CODE
LOWaiogram/types/message.py4228CODE
LOWaiogram/types/message.py5048CODE
LOWaiogram/types/message.py5124CODE
LOWaiogram/types/message.py5232CODE
LOWaiogram/types/message.py444CODE
LOWaiogram/types/input_media_video.py58CODE
LOWaiogram/types/business_bot_rights.py55CODE
LOWaiogram/types/chat_permissions.py52CODE
LOWaiogram/types/gift_info.py44CODE
LOWaiogram/types/keyboard_button_request_chat.py45CODE
LOWaiogram/types/inline_query_result_gif.py57CODE
LOWaiogram/types/chat.py1038CODE
LOWaiogram/types/chat.py272CODE
175 more matches not shown…
Cross-Language Confusion13 hits · 92 pts
SeverityFileLineSnippetContext
HIGH⚡tests/test_fsm/test_scene.py379 await history_manager.push("test_state", data)CODE
HIGH⚡tests/test_fsm/test_scene.py393 await history_manager.push(state, data)CODE
HIGH⚡tests/test_fsm/test_scene.py408 await history_manager.push("test_state", data)CODE
HIGH⚡tests/test_fsm/test_scene.py409 await history_manager.push("test_state2", data)CODE
HIGH⚡tests/test_fsm/test_scene.py434 await history_manager.push("test_state", data)CODE
HIGH⚡tests/test_fsm/test_scene.py472 await history_manager.push(f"test_state{i}", data)CODE
HIGH⚡tests/test_fsm/test_scene.py496 await history_manager.push("test_state", data)CODE
HIGH⚡tests/test_fsm/test_scene.py509 await history_manager.push("test_state", data)CODE
HIGH⚡tests/test_fsm/test_scene.py548 await history_manager.push("test_state", data)CODE
HIGH⚡tests/test_fsm/test_scene.py549 await history_manager.push("test_state2", data)CODE
HIGH⚡tests/test_fsm/test_scene.py567 await history_manager.push("test_state", data)CODE
HIGHtests/test_fsm/test_scene.py447 await history_manager.push("test_state", data)CODE
HIGHaiogram/fsm/scene.py85 await self.push(state, data)CODE
Self-Referential Comments17 hits · 66 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/test_dispatcher/test_dispatcher.py963 # Create a real coroutine for handle_updateCOMMENT
MEDIUM⚡tests/test_dispatcher/test_dispatcher.py967 # Create a mock for the semaphoreCOMMENT
MEDIUM⚡tests/test_dispatcher/test_dispatcher.py981 # Create a real coroutine that raises an exceptionCOMMENT
MEDIUM⚡tests/test_dispatcher/test_dispatcher.py985 # Create a mock for the semaphoreCOMMENT
MEDIUM⚡tests/test_dispatcher/test_dispatcher.py1003 # Create a real semaphore for this testCOMMENT
MEDIUM⚡tests/test_dispatcher/test_dispatcher.py1006 # Create a list to track when updates are processedCOMMENT
MEDIUMtests/test_issues/test_1672_middleware_data_in_scene.py40 # Create a dispatcherCOMMENT
MEDIUMtests/test_issues/test_1672_middleware_data_in_scene.py53 # Create a proper message with the commandCOMMENT
MEDIUMexamples/specify_updates.py82 # Initialize Bot instance with default bot properties which will be passed to all API callsCOMMENT
MEDIUMexamples/echo_bot.py49 # Initialize Bot instance with default bot properties which will be passed to all API callsCOMMENT
MEDIUMexamples/finite_state_machine.py128 # Initialize Bot instance with default bot properties which will be passed to all API callsCOMMENT
MEDIUMexamples/error_handling.py108 # Initialize Bot instance with default bot properties which will be passed to all API callsCOMMENT
MEDIUM⚡examples/echo_bot_webhook_ssl.py94 # Initialize Bot instance with default bot properties which will be passed to all API callsCOMMENT
MEDIUM⚡examples/echo_bot_webhook_ssl.py100 # Create an instance of request handler,COMMENT
MEDIUM⚡examples/echo_bot_webhook.py83 # Initialize Bot instance with default bot properties which will be passed to all API callsCOMMENT
MEDIUM⚡examples/echo_bot_webhook.py89 # Create an instance of request handler,COMMENT
MEDIUMexamples/multi_file_bot/bot.py24 # Initialize Bot instance with default bot properties which will be passed to all API callsCOMMENT
Slop Phrases11 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUMexamples/echo_bot.py26 # For example if you want to answer to incoming message you can use `message.answer(...)` aliasCOMMENT
MEDIUMexamples/quiz_scene.py298 # Alternatively, you can use aiogram-cli:COMMENT
MEDIUM⚡examples/error_handling.py38 # To get the original event that caused the exception you can use `event.update` property.COMMENT
MEDIUM⚡examples/error_handling.py40 # To get the exception itself you can use `event.exception` property.COMMENT
MEDIUMexamples/error_handling.py74 # To get the command object you can use `command` keyword argument with `CommandObject` type.COMMENT
MEDIUMexamples/error_handling.py75 # To get the command arguments you can use `command.args` property.COMMENT
MEDIUMexamples/error_handling.py96 # To get the command object you can use `command` keyword argument with `CommandObject` type.COMMENT
MEDIUMexamples/error_handling.py97 # To get the command arguments you can use `command.args` property.COMMENT
MEDIUMexamples/echo_bot_webhook_ssl.py51 # For example if you want to answer to incoming message you can use `message.answer(...)` aliasCOMMENT
MEDIUMexamples/echo_bot_webhook.py46 # For example if you want to answer to incoming message you can use `message.answer(...)` aliasCOMMENT
MEDIUMexamples/multi_file_bot/handlers/start.py14 # For example if you want to answer to incoming message you can use `message.answer(...)` aliasCOMMENT
Modern Structural Boilerplate24 hits · 24 pts
SeverityFileLineSnippetContext
LOWexamples/specify_updates.py21logger = logging.getLogger(__name__)CODE
LOWexamples/stars_invoice.py16logger = logging.getLogger(__name__)CODE
LOWexamples/error_handling.py21logger = logging.getLogger(__name__)CODE
LOWaiogram/filters/command.py105 def update_handler_flags(self, flags: dict[str, Any]) -> None:CODE
LOWaiogram/filters/base.py38 def update_handler_flags(self, flags: dict[str, Any]) -> None: # noqa: B027CODE
LOWaiogram/utils/chat_action.py14logger = logging.getLogger(__name__)CODE
LOWaiogram/utils/deep_linking.py3__all__ = [CODE
LOWaiogram/utils/i18n/middleware.py195 async def set_locale(self, state: FSMContext, locale: str) -> None:CODE
LOWaiogram/fsm/scene.py87 async def _set_state(self, state: str | None, data: dict[str, Any]) -> None:CODE
LOWaiogram/fsm/scene.py593 async def set_data(self, data: Mapping[str, Any]) -> None:CODE
LOWaiogram/fsm/scene.py764 def _setup_middleware(self, router: Router) -> None:CODE
LOWaiogram/fsm/context.py12 async def set_state(self, state: StateType = None) -> None:CODE
LOWaiogram/fsm/context.py18 async def set_data(self, data: Mapping[str, Any]) -> None:CODE
LOWaiogram/fsm/state.py39 def set_parent(self, group: "type[StatesGroup]") -> None:CODE
LOWaiogram/fsm/storage/memory.py44 async def set_state(self, key: StorageKey, state: StateType = None) -> None:CODE
LOWaiogram/fsm/storage/memory.py50 async def set_data(self, key: StorageKey, data: Mapping[str, Any]) -> None:CODE
LOWaiogram/fsm/storage/mongo.py79 async def set_state(self, key: StorageKey, state: StateType = None) -> None:CODE
LOWaiogram/fsm/storage/mongo.py104 async def set_data(self, key: StorageKey, data: Mapping[str, Any]) -> None:CODE
LOWaiogram/fsm/storage/pymongo.py73 async def set_state(self, key: StorageKey, state: StateType = None) -> None:CODE
LOWaiogram/fsm/storage/pymongo.py98 async def set_data(self, key: StorageKey, data: Mapping[str, Any]) -> None:CODE
LOWaiogram/fsm/storage/base.py108 async def set_state(self, key: StorageKey, state: StateType = None) -> None:CODE
LOWaiogram/fsm/storage/base.py126 async def set_data(self, key: StorageKey, data: Mapping[str, Any]) -> None:CODE
LOWaiogram/client/session/aiohttp.py103 def _setup_proxy_connector(self, proxy: _ProxyType) -> None:CODE
LOWaiogram/client/session/middlewares/request_logging.py13logger = logging.getLogger(__name__)CODE
AI Response Leakage2 hits · 22 pts
SeverityFileLineSnippetContext
HIGH⚡examples/echo_bot_webhook_ssl.py102 # In this example we use SimpleRequestHandler which is designed to handle simple casesCOMMENT
HIGH⚡examples/echo_bot_webhook.py91 # In this example we use SimpleRequestHandler which is designed to handle simple casesCOMMENT
Fake / Example Data10 hits · 12 pts
SeverityFileLineSnippetContext
LOWtests/test_utils/test_chat_member.py19 first_name="John Doe",CODE
LOW⚡tests/test_dispatcher/test_dispatcher.py402 country_code="placeholder",CODE
LOW⚡tests/test_dispatcher/test_dispatcher.py403 state="placeholder",CODE
LOW⚡tests/test_dispatcher/test_dispatcher.py404 city="placeholder",CODE
LOW⚡tests/test_dispatcher/test_dispatcher.py405 street_line1="placeholder",CODE
LOW⚡tests/test_dispatcher/test_dispatcher.py406 street_line2="placeholder",CODE
LOW⚡tests/test_dispatcher/test_dispatcher.py407 post_code="placeholder",CODE
LOWtests/test_dispatcher/test_dispatcher.py366 data="placeholder",CODE
LOWtests/test_dispatcher/test_dispatcher.py380 data="placeholder",CODE
LOW…est_api/test_methods/test_edit_message_reply_markup.py15 [InlineKeyboardButton(text="button", callback_data="placeholder")]CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALtests/test_fsm/test_scene.py1349 manager._get_active_scene.return_value.wizard.exit.assert_called_once()CODE
Excessive Try-Catch Wrapping6 hits · 6 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_fsm/storage/test_pymongo.py23 except Exception as e:CODE
LOWaiogram/dispatcher/dispatcher.py222 except Exception as e: # noqa: BLE001CODE
LOWaiogram/dispatcher/dispatcher.py325 except Exception as e: # noqa: BLE001CODE
LOWaiogram/dispatcher/dispatcher.py427 except Exception as e:CODE
LOWaiogram/dispatcher/middlewares/error.py30 except Exception as e:CODE
LOWaiogram/client/session/base.py88 except Exception as e: # noqa: BLE001CODE
Deep Nesting6 hits · 6 pts
SeverityFileLineSnippetContext
LOWtests/test_api/test_client/test_default.py66CODE
LOWscripts/bump_version.py9CODE
LOWaiogram/filters/state.py31CODE
LOWaiogram/dispatcher/dispatcher.py633CODE
LOWaiogram/utils/media_group.py122CODE
LOWaiogram/fsm/scene.py187CODE
AI Slop Vocabulary3 hits · 3 pts
SeverityFileLineSnippetContext
MEDIUMaiogram/types/chat_full_info.py108 """*Optional*. For supergroups, the minimum number of boosts that a non-administrator user needs to add in order to STRING
MEDIUMaiogram/types/chat.py263 """*Optional*. For supergroups, the minimum number of boosts that a non-administrator user needs to add in order to STRING
MEDIUMaiogram/types/giveaway_winners.py31 """*Optional*. The number of other chats the user had to join in order to be eligible for the giveaway"""STRING
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py201# return asyncio.WindowsSelectorEventLoopPolicy()COMMENT
LOW.github/workflows/claude-code-review.yml1name: Claude Code ReviewCOMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWaiogram/dispatcher/dispatcher.py484 # TODO: handle exceptionsCOMMENT