This report summarizes scanner evidence for ag2ai/faststream. SynthScan examined 163,120 lines of code across 2381 source files, recording 3454 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 23.0 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1595 finding(s).
Are imports declared and package/API names verified? 1713 finding(s).
Are wrappers, guards, and repeated structures necessary? 1690 finding(s).
Which changes need focused human review? 3454 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 3454 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/tools.py | 2 | CODE | |
| LOW | tests/marks.py | 31 | CODE | |
| LOW | tests/marks.py | 44 | CODE | |
| LOW | tests/marks.py | 64 | CODE | |
| LOW | tests/marks.py | 77 | CODE | |
| LOW | tests/marks.py | 97 | CODE | |
| LOW | tests/marks.py | 110 | CODE | |
| LOW | tests/brokers/confluent/test_parser.py | 7 | CODE | |
| LOW | tests/brokers/confluent/test_parser.py | 9 | CODE | |
| LOW | tests/brokers/kafka/test_message.py | 1 | CODE | |
| LOW | tests/brokers/rabbit/specific/test_declare.py | 10 | CODE | |
| LOW | tests/brokers/rabbit/specific/test_declare.py | 12 | CODE | |
| LOW | tests/brokers/base/driver_annotations.py | 13 | CODE | |
| LOW | tests/brokers/base/future/fastapi.py | 1 | CODE | |
| LOW | tests/asyncapi/base/v2_6_0/__init__.py | 1 | CODE | |
| LOW | tests/asyncapi/base/v2_6_0/__init__.py | 1 | CODE | |
| LOW | tests/asyncapi/base/v3_0_0/__init__.py | 1 | CODE | |
| LOW | tests/asyncapi/base/v3_0_0/__init__.py | 1 | CODE | |
| LOW | …cs/confluent/publisher_object/test_publisher_object.py | 3 | CODE | |
| LOW | tests/docs/confluent/raw_publish/test_raw_publish.py | 3 | CODE | |
| LOW | tests/docs/redis/pub_sub/test_raw_publish.py | 3 | CODE | |
| LOW | tests/docs/redis/pub_sub/test_publisher_object.py | 3 | CODE | |
| LOW | …s/docs/kafka/publisher_object/test_publisher_object.py | 3 | CODE | |
| LOW | tests/docs/kafka/raw_publish/test_raw_publish.py | 3 | CODE | |
| LOW | …s/docs/getting_started/dependencies/basic/test_base.py | 1 | CODE | |
| LOW | …s/docs/getting_started/dependencies/basic/test_base.py | 4 | CODE | |
| LOW | tests/examples/kafka/test_example.py | 3 | CODE | |
| LOW | docs/docs_src/confluent/security/sasl_gssapi.py | 1 | CODE | |
| LOW | docs/docs_src/confluent/batch_consuming_pydantic/app.py | 1 | CODE | |
| LOW | docs/docs_src/kafka/batch_consuming_pydantic/app.py | 1 | CODE | |
| LOW | …/docs_src/getting_started/routers/redis/delay_equal.py | 3 | CODE | |
| LOW | …/docs_src/getting_started/routers/redis/delay_equal.py | 3 | CODE | |
| LOW | …s/docs_src/getting_started/routers/mqtt/delay_equal.py | 3 | CODE | |
| LOW | …s/docs_src/getting_started/routers/mqtt/delay_equal.py | 3 | CODE | |
| LOW | …_src/getting_started/subscription/mqtt/dynamic_iter.py | 1 | CODE | |
| LOW | faststream/security.py | 1 | CODE | |
| LOW | faststream/security.py | 6 | CODE | |
| LOW | faststream/__init__.py | 3 | CODE | |
| LOW | faststream/__init__.py | 4 | CODE | |
| LOW | faststream/__init__.py | 5 | CODE | |
| LOW | faststream/__init__.py | 6 | CODE | |
| LOW | faststream/__init__.py | 6 | CODE | |
| LOW | faststream/__init__.py | 7 | CODE | |
| LOW | faststream/__init__.py | 8 | CODE | |
| LOW | faststream/__init__.py | 8 | CODE | |
| LOW | faststream/__init__.py | 9 | CODE | |
| LOW | faststream/__init__.py | 9 | CODE | |
| LOW | faststream/__init__.py | 9 | CODE | |
| LOW | faststream/__init__.py | 10 | CODE | |
| LOW | faststream/__init__.py | 10 | CODE | |
| LOW | faststream/__init__.py | 10 | CODE | |
| LOW | faststream/__init__.py | 10 | CODE | |
| LOW | faststream/__init__.py | 10 | CODE | |
| LOW | faststream/__init__.py | 11 | CODE | |
| LOW | faststream/__init__.py | 11 | CODE | |
| LOW | faststream/__init__.py | 11 | CODE | |
| LOW | faststream/__init__.py | 11 | CODE | |
| LOW | faststream/__init__.py | 12 | CODE | |
| LOW | faststream/types.py | 1 | CODE | |
| LOW | faststream/types.py | 1 | CODE | |
| 1649 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 15 | def pytest_keyboard_interrupt( | CODE |
| LOW | tests/conftest.py | 21 | def pytest_collection_modifyitems(items: list[pytest.Item]) -> None: | CODE |
| LOW | tests/mocks.py | 10 | def mock_pydantic_settings_env( | CODE |
| LOW | tests/brokers/test_install_hint.py | 28 | def test_missing_package_points_at_the_extra(broker: str, package: str) -> None: | CODE |
| LOW | tests/brokers/test_install_hint.py | 35 | def test_broken_package_keeps_its_own_error(broker: str, package: str) -> None: | CODE |
| LOW⚡ | tests/brokers/test_response.py | 10 | def test_response_with_response_instance() -> None: | CODE |
| LOW⚡ | tests/brokers/test_response.py | 16 | def test_add_headers_not_overrides() -> None: | CODE |
| LOW⚡ | tests/brokers/test_response.py | 22 | def test_add_headers_overrides() -> None: | CODE |
| LOW | tests/brokers/test_stop.py | 62 | async def test_subscribers_stop_together() -> None: | CODE |
| LOW | tests/brokers/test_stop.py | 80 | async def test_failing_subscriber_does_not_prevent_others_from_stopping() -> None: | CODE |
| LOW | tests/brokers/confluent/test_parser.py | 118 | async def test_parse_reserved_headers( | CODE |
| LOW | tests/brokers/confluent/test_parser.py | 151 | async def test_parse_batch_reserved_headers( | CODE |
| LOW | tests/brokers/confluent/test_security.py | 14 | def patch_aio_consumer_and_producer() -> Generator[ | CODE |
| LOW | tests/brokers/confluent/test_security.py | 28 | async def test_base_security_pass_ssl_context() -> None: | CODE |
| LOW | tests/brokers/confluent/test_connect.py | 16 | async def test_correct_config_merging(queue: str) -> None: | CODE |
| LOW | tests/brokers/confluent/test_connect.py | 51 | def test_correct_config_with_dict() -> None: | CODE |
| LOW | tests/brokers/confluent/test_raw_headers.py | 41 | def test_raw_headers_preserve_wire_values(record: MockConfluentMessage) -> None: | CODE |
| LOW | tests/brokers/confluent/test_raw_headers.py | 54 | def test_batch_raw_headers_preserve_wire_values(record: MockConfluentMessage) -> None: | CODE |
| LOW | tests/brokers/confluent/test_raw_headers.py | 69 | def test_missing_headers_are_empty(raw_message: Message | tuple[Message, ...]) -> None: | CODE |
| LOW | tests/brokers/confluent/test_option_surface.py | 10 | def test_every_level_takes_the_options_the_broker_takes() -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 105 | def test_str_is_normalized_to_topic(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 112 | def test_str_and_topic_are_mixed(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 119 | def test_specification_uses_topic_names(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 152 | def test_topic_keeps_settings(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 157 | def test_topic_names_are_prefixed_once(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 162 | def test_partition_names_are_prefixed_once(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 172 | def test_keeps_declared_topics(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 180 | def test_filters_out_not_declared_topics(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 185 | def test_partitions_use_default_settings(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 190 | def test_partitions_can_opt_out(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 197 | def test_duplicate_names_collapse_to_the_last(self) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 268 | def test_admin_skips_request_without_topics() -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 277 | def test_publisher_accepts_topic() -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_topic.py | 286 | async def test_consume_topic_object(queue: str, mock: MagicMock) -> None: | CODE |
| LOW | tests/brokers/confluent/test_topic.py | 54 | def test_equality_follows_settings(self, other: object, equal: bool) -> None: | CODE |
| LOW | tests/brokers/confluent/test_topic.py | 60 | def test_add_prefix_keeps_settings(self) -> None: | CODE |
| LOW | tests/brokers/confluent/test_topic.py | 86 | def test_add_prefix_keeps_declare(self) -> None: | CODE |
| LOW | tests/brokers/confluent/test_topic.py | 92 | def test_to_confluent_ignores_declare(self) -> None: | CODE |
| LOW | tests/brokers/confluent/test_topic.py | 214 | def test_conflicting_settings_warn(self) -> None: | CODE |
| LOW | tests/brokers/confluent/test_topic.py | 223 | def test_warning_points_at_the_caller(self) -> None: | CODE |
| LOW | tests/brokers/confluent/test_topic.py | 239 | def test_no_warning_without_a_conflict( | CODE |
| LOW | tests/brokers/confluent/test_topic.py | 252 | def test_admin_creates_topics_with_their_settings() -> None: | CODE |
| LOW | tests/brokers/confluent/test_topic.py | 302 | async def test_topic_is_created_with_its_settings(queue: str) -> None: | CODE |
| LOW | tests/brokers/confluent/test_topic.py | 319 | async def test_not_declared_topic_is_not_created(queue: str) -> None: | CODE |
| LOW | tests/brokers/confluent/test_message.py | 35 | async def test_batch_nack_rewinds_every_partition() -> None: | CODE |
| LOW | tests/brokers/confluent/test_message.py | 53 | async def test_single_message_nack_rewinds_its_partition() -> None: | CODE |
| LOW | tests/brokers/confluent/test_test_reentrancy.py | 51 | async def _test_with_temp_subscriber() -> None: | CODE |
| LOW | tests/brokers/confluent/test_test_reentrancy.py | 71 | async def test_with_temp_subscriber() -> None: | CODE |
| LOW | tests/brokers/confluent/test_producer_headers.py | 31 | async def test_producer_publish_preserves_binary_and_null_headers() -> None: | CODE |
| LOW | tests/brokers/confluent/test_producer_headers.py | 59 | async def test_producer_publish_batch_preserves_binary_and_null_headers() -> None: | CODE |
| LOW | tests/brokers/confluent/test_producer_headers.py | 86 | async def test_native_producer_send_receives_header_sequences_as_lists() -> None: | CODE |
| LOW | tests/brokers/confluent/test_producer_headers.py | 112 | async def test_native_producer_send_batch_receives_header_sequences_as_lists() -> None: | CODE |
| LOW | tests/brokers/confluent/test_publish_command.py | 12 | def test_kafka_response_class(self) -> None: | CODE |
| LOW | tests/brokers/confluent/test_lazy_logger_proxy.py | 12 | def test_proxy_drops_records_before_setup() -> None: | CODE |
| LOW | tests/brokers/confluent/test_lazy_logger_proxy.py | 31 | def test_proxy_forwards_after_setup() -> None: | CODE |
| LOW | tests/brokers/confluent/test_misconfigure.py | 18 | def test_max_workers_with_ack_policy(queue: str) -> None: | CODE |
| LOW | tests/brokers/confluent/test_misconfigure.py | 32 | def test_manual_ack_policy_without_group(queue: str) -> None: | CODE |
| LOW | tests/brokers/confluent/test_misconfigure.py | 53 | def test_use_only_confluent_router() -> None: | CODE |
| LOW | tests/brokers/confluent/test_misconfigure.py | 67 | def test_max_workers_ignored_by_batch(queue: str) -> None: | CODE |
| LOW⚡ | tests/brokers/confluent/test_test_client.py | 385 | async def test_broker_gets_patched_attrs_within_cm(self) -> None: | CODE |
| 1275 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/brokers/confluent/test_raw_headers.py | 0 | fixes https://github.com/ag2ai/faststream/issues/2214. | STRING |
| HIGH | tests/brokers/confluent/test_producer_headers.py | 0 | fixes https://github.com/ag2ai/faststream/issues/2214. | STRING |
| HIGH | tests/brokers/kafka/test_raw_headers.py | 0 | fixes https://github.com/ag2ai/faststream/issues/2214. | STRING |
| HIGH | tests/brokers/kafka/test_producer_headers.py | 0 | fixes https://github.com/ag2ai/faststream/issues/2214. | STRING |
| HIGH | tests/brokers/base/header.py | 0 | fixes https://github.com/ag2ai/faststream/issues/2214. | STRING |
| HIGH | tests/brokers/confluent/test_test_client.py | 0 | fixes https://github.com/ag2ai/faststream/issues/3056. an empty result publishes one empty message, exactly as a non-bat | STRING |
| HIGH | tests/brokers/redis/test_test_client.py | 0 | fixes https://github.com/ag2ai/faststream/issues/3056. an empty result publishes one empty message, exactly as a non-bat | STRING |
| HIGH | tests/brokers/kafka/test_test_client.py | 0 | fixes https://github.com/ag2ai/faststream/issues/3056. an empty result publishes one empty message, exactly as a non-bat | STRING |
| HIGH | tests/brokers/confluent/test_test_client.py | 0 | fixes https://github.com/ag2ai/faststream/issues/2513. | STRING |
| HIGH | tests/brokers/redis/test_test_client.py | 0 | fixes https://github.com/ag2ai/faststream/issues/2513. | STRING |
| HIGH | tests/brokers/nats/test_test_client.py | 0 | fixes https://github.com/ag2ai/faststream/issues/2513. | STRING |
| HIGH | tests/brokers/kafka/test_test_client.py | 0 | fixes https://github.com/ag2ai/faststream/issues/2513. | STRING |
| HIGH | tests/brokers/rabbit/test_test_client.py | 0 | fixes https://github.com/ag2ai/faststream/issues/2513. | STRING |
| HIGH | .agents/skills/testing-patterns/SKILL.md | 0 | fixes https://github.com/ag2ai/faststream/issues/2513. | STRING |
| HIGH | tests/brokers/kafka/test_rebalance_listener.py | 0 | fixes https://github.com/ag2ai/faststream/issues/3202. | STRING |
| HIGH | tests/brokers/kafka/test_config.py | 0 | fixes https://github.com/ag2ai/faststream/issues/3202. | STRING |
| HIGH | tests/brokers/kafka/test_client_rack.py | 0 | fixes https://github.com/ag2ai/faststream/issues/3202. | STRING |
| HIGH | faststream/_internal/endpoint/publisher/fake.py | 0 | publisher interface implementation to use as rpc or reply to answer publisher. | STRING |
| HIGH | faststream/confluent/publisher/fake.py | 0 | publisher interface implementation to use as rpc or reply to answer publisher. | STRING |
| HIGH | faststream/redis/publisher/fake.py | 0 | publisher interface implementation to use as rpc or reply to answer publisher. | STRING |
| HIGH | faststream/nats/publisher/fake.py | 0 | publisher interface implementation to use as rpc or reply to answer publisher. | STRING |
| HIGH | faststream/kafka/publisher/fake.py | 0 | publisher interface implementation to use as rpc or reply to answer publisher. | STRING |
| HIGH | faststream/rabbit/publisher/fake.py | 0 | publisher interface implementation to use as rpc or reply to answer publisher. | STRING |
| HIGH | faststream/_internal/endpoint/publisher/fake.py | 0 | this method should be called in subscriber flow only. | STRING |
| HIGH | faststream/confluent/publisher/usecase.py | 0 | this method should be called in subscriber flow only. | STRING |
| HIGH | faststream/redis/publisher/usecase.py | 0 | this method should be called in subscriber flow only. | STRING |
| HIGH | faststream/nats/publisher/usecase.py | 0 | this method should be called in subscriber flow only. | STRING |
| HIGH | faststream/kafka/publisher/usecase.py | 0 | this method should be called in subscriber flow only. | STRING |
| HIGH | faststream/rabbit/publisher/usecase.py | 0 | this method should be called in subscriber flow only. | STRING |
| HIGH | faststream/confluent/broker/router.py | 0 | initialized rabbitrouter. args: prefix: string prefix to add to all subscribers queues. handlers: route object to includ | STRING |
| HIGH | faststream/redis/broker/router.py | 0 | initialized rabbitrouter. args: prefix: string prefix to add to all subscribers queues. handlers: route object to includ | STRING |
| HIGH | faststream/nats/broker/router.py | 0 | initialized rabbitrouter. args: prefix: string prefix to add to all subscribers queues. handlers: route object to includ | STRING |
| HIGH | faststream/kafka/broker/router.py | 0 | initialized rabbitrouter. args: prefix: string prefix to add to all subscribers queues. handlers: route object to includ | STRING |
| HIGH | faststream/rabbit/broker/router.py | 0 | initialized rabbitrouter. args: prefix: string prefix to add to all subscribers queues. handlers: route object to includ | STRING |
| HIGH | faststream/confluent/broker/registrator.py | 0 | creates long-living and specification-documented publisher object. you can use it as a handler decorator (handler should | STRING |
| HIGH | faststream/kafka/broker/registrator.py | 0 | creates long-living and specification-documented publisher object. you can use it as a handler decorator (handler should | STRING |
| HIGH | faststream/kafka/fastapi/fastapi.py | 0 | creates long-living and specification-documented publisher object. you can use it as a handler decorator (handler should | STRING |
| HIGH | …ation/asyncapi/v2_6_0/schema/bindings/redis/channel.py | 0 | asyncapi redis bindings. references: https://github.com/asyncapi/bindings/tree/master/redis | STRING |
| HIGH | …ion/asyncapi/v2_6_0/schema/bindings/redis/operation.py | 0 | asyncapi redis bindings. references: https://github.com/asyncapi/bindings/tree/master/redis | STRING |
| HIGH | faststream/specification/schema/bindings/redis.py | 0 | asyncapi redis bindings. references: https://github.com/asyncapi/bindings/tree/master/redis | STRING |
| HIGH | …cation/asyncapi/v2_6_0/schema/bindings/amqp/channel.py | 0 | asyncapi amqp bindings. references: https://github.com/asyncapi/bindings/tree/master/amqp | STRING |
| HIGH | …tion/asyncapi/v2_6_0/schema/bindings/amqp/operation.py | 0 | asyncapi amqp bindings. references: https://github.com/asyncapi/bindings/tree/master/amqp | STRING |
| HIGH | …tion/asyncapi/v3_0_0/schema/bindings/amqp/operation.py | 0 | asyncapi amqp bindings. references: https://github.com/asyncapi/bindings/tree/master/amqp | STRING |
| HIGH | …ication/asyncapi/v2_6_0/schema/bindings/sqs/channel.py | 0 | asyncapi sqs bindings. references: https://github.com/asyncapi/bindings/tree/master/sqs | STRING |
| HIGH | …ation/asyncapi/v2_6_0/schema/bindings/sqs/operation.py | 0 | asyncapi sqs bindings. references: https://github.com/asyncapi/bindings/tree/master/sqs | STRING |
| HIGH | faststream/specification/schema/bindings/sqs.py | 0 | asyncapi sqs bindings. references: https://github.com/asyncapi/bindings/tree/master/sqs | STRING |
| HIGH | …cation/asyncapi/v2_6_0/schema/bindings/nats/channel.py | 0 | asyncapi nats bindings. references: https://github.com/asyncapi/bindings/tree/master/nats | STRING |
| HIGH | …tion/asyncapi/v2_6_0/schema/bindings/nats/operation.py | 0 | asyncapi nats bindings. references: https://github.com/asyncapi/bindings/tree/master/nats | STRING |
| HIGH | faststream/specification/schema/bindings/nats.py | 0 | asyncapi nats bindings. references: https://github.com/asyncapi/bindings/tree/master/nats | STRING |
| HIGH | …ation/asyncapi/v2_6_0/schema/bindings/kafka/channel.py | 0 | asyncapi kafka bindings. references: https://github.com/asyncapi/bindings/tree/master/kafka | STRING |
| HIGH | …ion/asyncapi/v2_6_0/schema/bindings/kafka/operation.py | 0 | asyncapi kafka bindings. references: https://github.com/asyncapi/bindings/tree/master/kafka | STRING |
| HIGH | faststream/specification/schema/bindings/kafka.py | 0 | asyncapi kafka bindings. references: https://github.com/asyncapi/bindings/tree/master/kafka | STRING |
| HIGH | …cation/asyncapi/v2_6_0/schema/bindings/mqtt/channel.py | 0 | asyncapi mqtt bindings. references: https://github.com/asyncapi/bindings/tree/master/mqtt | STRING |
| HIGH | …tion/asyncapi/v2_6_0/schema/bindings/mqtt/operation.py | 0 | asyncapi mqtt bindings. references: https://github.com/asyncapi/bindings/tree/master/mqtt | STRING |
| HIGH | faststream/specification/schema/bindings/mqtt.py | 0 | asyncapi mqtt bindings. references: https://github.com/asyncapi/bindings/tree/master/mqtt | STRING |
| HIGH | …cation/asyncapi/v2_6_0/schema/bindings/main/channel.py | 0 | a class to represent channel bindings. attributes: amqp : amqp channel binding (optional) kafka : kafka channel binding | STRING |
| HIGH | …cation/asyncapi/v3_0_0/schema/bindings/main/channel.py | 0 | a class to represent channel bindings. attributes: amqp : amqp channel binding (optional) kafka : kafka channel binding | STRING |
| HIGH | faststream/specification/schema/bindings/main.py | 0 | a class to represent channel bindings. attributes: amqp : amqp channel binding (optional) kafka : kafka channel binding | STRING |
| HIGH | …tion/asyncapi/v2_6_0/schema/bindings/main/operation.py | 0 | a class to represent an operation binding. attributes: amqp : amqp operation binding (optional) kafka : kafka operation | STRING |
| HIGH | …tion/asyncapi/v3_0_0/schema/bindings/main/operation.py | 0 | a class to represent an operation binding. attributes: amqp : amqp operation binding (optional) kafka : kafka operation | STRING |
| 5 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | faststream/app.py | 45 | CODE | |
| LOW | faststream/_internal/application.py | 139 | CODE | |
| LOW | faststream/_internal/cli/main.py | 94 | CODE | |
| LOW | faststream/_internal/kafka/calls.py | 25 | CODE | |
| LOW | faststream/_internal/kafka/calls.py | 66 | CODE | |
| LOW | faststream/_internal/kafka/calls.py | 107 | CODE | |
| LOW | faststream/_internal/kafka/calls.py | 148 | CODE | |
| LOW | faststream/_internal/fastapi/router.py | 105 | CODE | |
| LOW | faststream/_internal/fastapi/router.py | 198 | CODE | |
| LOW | faststream/_internal/fastapi/router.py | 486 | CODE | |
| LOW | faststream/_internal/fastapi/router.py | 416 | CODE | |
| LOW | faststream/asgi/app.py | 92 | CODE | |
| LOW | faststream/asgi/factories/asyncapi/route.py | 21 | CODE | |
| LOW | faststream/asgi/factories/asyncapi/docs.py | 19 | CODE | |
| LOW | faststream/confluent/response.py | 71 | CODE | |
| LOW | faststream/confluent/testing.py | 356 | CODE | |
| LOW | faststream/confluent/broker/router.py | 35 | CODE | |
| LOW | faststream/confluent/broker/router.py | 98 | CODE | |
| LOW | faststream/confluent/broker/router.py | 326 | CODE | |
| LOW | faststream/confluent/broker/broker.py | 76 | CODE | |
| LOW | faststream/confluent/broker/registrator.py | 49 | CODE | |
| LOW | faststream/confluent/broker/registrator.py | 93 | CODE | |
| LOW | faststream/confluent/broker/registrator.py | 137 | CODE | |
| LOW | faststream/confluent/broker/registrator.py | 181 | CODE | |
| LOW | faststream/confluent/broker/registrator.py | 229 | CODE | |
| LOW | faststream/confluent/broker/registrator.py | 464 | CODE | |
| LOW | faststream/confluent/broker/registrator.py | 484 | CODE | |
| LOW | faststream/confluent/broker/registrator.py | 504 | CODE | |
| LOW | faststream/confluent/broker/registrator.py | 527 | CODE | |
| LOW | faststream/confluent/publisher/usecase.py | 118 | CODE | |
| LOW | faststream/confluent/publisher/usecase.py | 133 | CODE | |
| LOW | faststream/confluent/publisher/usecase.py | 148 | CODE | |
| LOW | faststream/confluent/publisher/usecase.py | 163 | CODE | |
| LOW | faststream/confluent/publisher/usecase.py | 255 | CODE | |
| LOW | faststream/confluent/fastapi/fastapi.py | 68 | CODE | |
| LOW | faststream/confluent/fastapi/fastapi.py | 406 | CODE | |
| LOW | faststream/confluent/fastapi/fastapi.py | 456 | CODE | |
| LOW | faststream/confluent/fastapi/fastapi.py | 506 | CODE | |
| LOW | faststream/confluent/fastapi/fastapi.py | 554 | CODE | |
| LOW | faststream/confluent/fastapi/fastapi.py | 608 | CODE | |
| LOW | faststream/confluent/fastapi/fastapi.py | 916 | CODE | |
| LOW | faststream/confluent/fastapi/fastapi.py | 934 | CODE | |
| LOW | faststream/confluent/fastapi/fastapi.py | 952 | CODE | |
| LOW | faststream/confluent/fastapi/fastapi.py | 970 | CODE | |
| LOW | faststream/confluent/helpers/config.py | 309 | CODE | |
| LOW | faststream/confluent/helpers/client.py | 227 | CODE | |
| LOW | faststream/redis/response.py | 58 | CODE | |
| LOW | faststream/redis/broker/router.py | 36 | CODE | |
| LOW | faststream/redis/broker/router.py | 94 | CODE | |
| LOW | faststream/redis/broker/router.py | 178 | CODE | |
| LOW | faststream/redis/broker/broker.py | 199 | CODE | |
| LOW | faststream/redis/broker/broker.py | 214 | CODE | |
| LOW | faststream/redis/broker/broker.py | 229 | CODE | |
| LOW | faststream/redis/broker/cluster_broker.py | 115 | CODE | |
| LOW | faststream/redis/broker/registrator.py | 49 | CODE | |
| LOW | faststream/redis/broker/registrator.py | 72 | CODE | |
| LOW | faststream/redis/broker/registrator.py | 95 | CODE | |
| LOW | faststream/redis/broker/registrator.py | 118 | CODE | |
| LOW | faststream/redis/broker/registrator.py | 141 | CODE | |
| LOW | faststream/redis/broker/registrator.py | 164 | CODE | |
| 149 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/brokers/base/middlewares.py | 374 | except Exception as e: | CODE |
| LOW | tests/cli/test_asyncapi_docs.py | 221 | except Exception as e: | STRING |
| LOW | tests/examples/nats/test_e07_object_storage.py | 19 | except Exception: | CODE |
| LOW | docs/create_api_docs.py | 74 | except Exception: | CODE |
| LOW | docs/update_releases.py | 35 | except Exception as e: | CODE |
| LOW | docs/docs/en/getting-started/acknowledgement.md | 124 | except Exception: | CODE |
| LOW | docs/docs/en/getting-started/middlewares/index.md | 342 | except Exception: | CODE |
| LOW⚡ | …/docs/en/getting-started/observability/healthchecks.md | 70 | except Exception: | CODE |
| LOW⚡ | …/docs/en/getting-started/observability/healthchecks.md | 76 | except Exception: | CODE |
| LOW⚡ | …/docs/en/getting-started/observability/healthchecks.md | 82 | except Exception: | CODE |
| LOW | docs/docs_src/redis/stream/claiming_manual_ack.py | 23 | except Exception as e: | CODE |
| LOW | faststream/_internal/broker/broker.py | 138 | except Exception as e: | CODE |
| LOW | faststream/_internal/cli/main.py | 302 | except Exception as e: | CODE |
| LOW | faststream/_internal/cli/main.py | 322 | except Exception as e: | CODE |
| LOW | faststream/_internal/testing/broker.py | 88 | except Exception: # pragma: no cover | CODE |
| LOW | faststream/_internal/endpoint/subscriber/call_item.py | 156 | except Exception as e: | CODE |
| LOW | faststream/_internal/endpoint/subscriber/usecase.py | 360 | except Exception: # nosec B110 # ruff: ignore[try-except-pass] | CODE |
| LOW | faststream/_internal/endpoint/subscriber/usecase.py | 399 | except Exception as e: | CODE |
| LOW | faststream/_internal/fastapi/router.py | 470 | except Exception as e: | CODE |
| LOW | faststream/asgi/handlers.py | 67 | except Exception: | CODE |
| LOW | faststream/asgi/factories/asyncapi/try_it_out.py | 133 | except Exception as e: | CODE |
| LOW | faststream/asgi/factories/asyncapi/try_it_out.py | 157 | except Exception as e: | CODE |
| LOW | faststream/confluent/helpers/client.py | 207 | except Exception: | CODE |
| LOW | faststream/confluent/helpers/client.py | 389 | except Exception as e: | CODE |
| LOW | faststream/confluent/helpers/admin.py | 65 | except Exception as e: | CODE |
| LOW | faststream/redis/parser/binary.py | 96 | except Exception: | CODE |
| LOW | faststream/redis/parser/binary.py | 102 | except Exception: | CODE |
| LOW | faststream/redis/parser/parsers.py | 225 | except Exception: | CODE |
| LOW | …tstream/redis/subscriber/usecases/stream_subscriber.py | 140 | except Exception as e: | CODE |
| LOW | faststream/redis/subscriber/usecases/basic.py | 100 | except Exception as e: # ruff: ignore[try-except-in-loop] | CODE |
| LOW | faststream/opentelemetry/middleware.py | 255 | except Exception as e: | CODE |
| LOW | faststream/opentelemetry/middleware.py | 326 | except Exception as e: | CODE |
| LOW | faststream/middlewares/exception.py | 158 | except Exception as exc: | CODE |
| LOW | faststream/middlewares/acknowledgement/middleware.py | 130 | except Exception as er: | CODE |
| LOW | faststream/kafka/broker/broker.py | 802 | except Exception: | CODE |
| LOW | faststream/kafka/helpers/admin.py | 66 | except Exception as e: | CODE |
| LOW | faststream/prometheus/middleware.py | 153 | except Exception as e: | CODE |
| LOW | faststream/prometheus/middleware.py | 219 | except Exception as e: | CODE |
| LOW | faststream/mqtt/broker/broker.py | 265 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …cs/confluent/publisher_object/test_publisher_object.py | 7 | __all__ = ["test_prepared_publish"] | CODE |
| LOW | tests/docs/confluent/raw_publish/test_raw_publish.py | 7 | __all__ = ["test_raw_publish"] | CODE |
| LOW | …s/docs/kafka/publisher_object/test_publisher_object.py | 7 | __all__ = ["test_prepared_publish"] | CODE |
| LOW | tests/docs/kafka/raw_publish/test_raw_publish.py | 7 | __all__ = ["test_raw_publish"] | CODE |
| LOW | docs/docs.py | 106 | def update_release_notes() -> None: | CODE |
| LOW | …etting_started/context/confluent/driver_annotations.py | 27 | async def set_storage(context: ContextRepo) -> None: | CODE |
| LOW | …rc/getting_started/context/redis/driver_annotations.py | 27 | async def set_storage(context: ContextRepo) -> None: | CODE |
| LOW | …src/getting_started/context/nats/driver_annotations.py | 27 | async def set_storage(context: ContextRepo) -> None: | CODE |
| LOW | …rc/getting_started/context/kafka/driver_annotations.py | 27 | async def set_storage(context: ContextRepo) -> None: | CODE |
| LOW | …c/getting_started/context/rabbit/driver_annotations.py | 27 | async def set_storage(context: ContextRepo) -> None: | CODE |
| LOW | …src/getting_started/context/mqtt/driver_annotations.py | 28 | async def set_storage(context: ContextRepo) -> None: | CODE |
| LOW | faststream/types.py | 20 | __all__ = [ | CODE |
| LOW | faststream/_internal/application.py | 115 | def set_broker(self, broker: "BrokerUsecase[Any, Any, Any]") -> None: | CODE |
| LOW | faststream/_internal/broker/broker.py | 92 | def _update_fd_config(self, config: "FastDependsConfig") -> None: | CODE |
| LOW | faststream/_internal/broker/broker.py | 106 | def _setup_logger(self) -> None: | CODE |
| LOW | faststream/_internal/context/composition.py | 34 | def set_global(self, key: str, v: Any) -> None: | CODE |
| LOW | faststream/_internal/context/repository.py | 32 | def set_global(self, key: str, v: Any) -> None: | CODE |
| LOW | faststream/_internal/logger/params_storage.py | 32 | def set_level(self, level: int) -> None: ... | CODE |
| LOW | faststream/_internal/logger/params_storage.py | 45 | def set_level(self, level: int) -> None: | CODE |
| LOW | faststream/_internal/logger/params_storage.py | 61 | def set_level(self, level: int) -> None: | CODE |
| LOW | faststream/_internal/logger/params_storage.py | 88 | def set_level(self, level: int) -> None: | CODE |
| LOW | faststream/_internal/logger/state.py | 60 | def set_level(self, level: int) -> None: | CODE |
| LOW | faststream/_internal/logger/state.py | 78 | def _setup(self, context: "ContextRepo", /) -> None: | CODE |
| LOW | faststream/_internal/cli/utils/logs.py | 82 | def set_log_level(level: int, app: "Application") -> None: | CODE |
| LOW | faststream/_internal/cli/utils/logs.py | 145 | def set_log_config(file: Path) -> None: | CODE |
| LOW | faststream/_internal/endpoint/call_wrapper.py | 137 | def set_test(self) -> None: | CODE |
| LOW | faststream/_internal/fastapi/config.py | 13 | def set_application(self, app: "FastAPI") -> None: | CODE |
| LOW | faststream/asgi/handlers.py | 79 | def update_fd_config(self, config: FastDependsConfig) -> None: | CODE |
| LOW | faststream/asgi/handlers.py | 85 | def set_logger(self, logger: "LoggerProto | None") -> None: | CODE |
| LOW | faststream/confluent/parser.py | 36 | def _setup(self, consumer: "ConsumerProtocol") -> None: | CODE |
| LOW | faststream/confluent/broker/logging.py | 27 | def set_level(self, level: int) -> None: | CODE |
| LOW | faststream/redis/broker/logging.py | 23 | def set_level(self, level: int) -> None: | CODE |
| LOW | faststream/redis/parser/parsers.py | 159 | def _setup(self, consumer: ConsumerProtocol, group: str | None) -> None: | CODE |
| LOW | faststream/message/message.py | 69 | def set_decoder(self, decoder: "AsyncCallable") -> None: | CODE |
| LOW | faststream/nats/broker/logging.py | 29 | def set_level(self, level: int) -> None: | CODE |
| LOW | faststream/kafka/parser.py | 40 | def _setup(self, consumer: ConsumerProtocol) -> None: | CODE |
| LOW | faststream/kafka/broker/logging.py | 27 | def set_level(self, level: int) -> None: | CODE |
| LOW | faststream/mqtt/broker/logging.py | 26 | def set_level(self, level: int) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/docs/test_snippets_are_tested.py | 57 | CODE | |
| LOW | docs/check_site.py | 45 | CODE | |
| LOW | faststream/_internal/cli/docs.py | 193 | CODE | |
| LOW | faststream/_internal/cli/main.py | 94 | CODE | |
| LOW | faststream/_internal/cli/utils/parser.py | 19 | CODE | |
| LOW | …ststream/_internal/endpoint/publisher/specification.py | 43 | CODE | |
| LOW | faststream/_internal/fastapi/get_dependant.py | 161 | CODE | |
| LOW | faststream/asgi/handlers.py | 43 | CODE | |
| LOW | faststream/confluent/testing.py | 436 | CODE | |
| LOW | faststream/redis/testing.py | 137 | CODE | |
| LOW | faststream/redis/broker/broker.py | 362 | CODE | |
| LOW | faststream/redis/publisher/producer.py | 249 | CODE | |
| LOW | …tstream/redis/subscriber/usecases/stream_subscriber.py | 307 | CODE | |
| LOW | faststream/redis/subscriber/usecases/basic.py | 93 | CODE | |
| LOW | faststream/middlewares/exception.py | 165 | CODE | |
| LOW | faststream/middlewares/acknowledgement/middleware.py | 83 | CODE | |
| LOW | faststream/specification/asyncapi/utils.py | 61 | CODE | |
| LOW | faststream/specification/asyncapi/v2_6_0/generate.py | 261 | CODE | |
| LOW | faststream/specification/asyncapi/v3_0_0/generate.py | 325 | CODE | |
| LOW | faststream/nats/testing.py | 236 | CODE | |
| LOW | faststream/nats/broker/broker.py | 704 | CODE | |
| LOW | faststream/nats/subscriber/factory.py | 255 | CODE | |
| LOW | …/nats/subscriber/usecases/object_storage_subscriber.py | 169 | CODE | |
| LOW | faststream/kafka/testing.py | 399 | CODE | |
| LOW | faststream/rabbit/testing.py | 392 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | faststream/_internal/basic_types.py | 76 | SendableMessage: TypeAlias = Struct | BaseModel | BaseSendableMessage # type: ignore[possibly-undefined] | CODE |
| HIGH⚡ | faststream/_internal/basic_types.py | 78 | SendableMessage: TypeAlias = BaseModel | BaseSendableMessage # type: ignore[no-redef,misc,possibly-undefined] | CODE |
| HIGH⚡ | faststream/_internal/basic_types.py | 80 | SendableMessage: TypeAlias = Struct | BaseSendableMessage # type: ignore[no-redef,misc,possibly-undefined] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | faststream/_internal/context/composition.py | 83 | except ContextError: # ruff: ignore[try-except-in-loop] | CODE |
| HIGH | faststream/_internal/endpoint/subscriber/usecase.py | 360 | except Exception: # nosec B110 # ruff: ignore[try-except-pass] | CODE |
| HIGH | faststream/redis/broker/broker.py | 377 | except ConnectionError: | CODE |
| HIGH | benchmarks/kafka_cases/test_aiokafka.py | 71 | except asyncio.CancelledError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/docs/en/confluent/Publisher/using_a_key.md | 21 | ### Step 1: Define the Publisher | COMMENT |
| LOW | docs/docs/en/confluent/Publisher/using_a_key.md | 29 | ### Step 2: Pass the Key | COMMENT |
| LOW | docs/docs/en/confluent/Subscriber/batch_subscriber.md | 19 | ### Step 1: Define Your Subscriber | COMMENT |
| LOW | docs/docs/en/confluent/Subscriber/batch_subscriber.md | 27 | ### Step 2: Implement Your Consuming Function | COMMENT |
| LOW | docs/docs/en/redis/streams/batch.md | 19 | ### Step 1: Define Your Subscriber | COMMENT |
| LOW | docs/docs/en/redis/streams/batch.md | 27 | ### Step 2: Implement Your Consuming Function | COMMENT |
| LOW | docs/docs/en/redis/list/batch.md | 19 | ### Step 1: Define Your Subscriber | COMMENT |
| LOW | docs/docs/en/redis/list/batch.md | 27 | ### Step 2: Implement Your Consuming Function | COMMENT |
| LOW | docs/docs/en/kafka/Publisher/using_a_key.md | 21 | ### Step 1: Define the Publisher | COMMENT |
| LOW | docs/docs/en/kafka/Publisher/using_a_key.md | 29 | ### Step 2: Pass the Key | COMMENT |
| LOW | docs/docs/en/kafka/Subscriber/batch_subscriber.md | 19 | ### Step 1: Define Your Subscriber | COMMENT |
| LOW | docs/docs/en/kafka/Subscriber/batch_subscriber.md | 27 | ### Step 2: Implement Your Consuming Function | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | tests/brokers/redis/cluster/test_cluster_more_unit.py | 89 | nodes = broker.config.broker_config.connection._options.get("startup_nodes", []) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 521 | | ^faststream\._internal\.broker\.broker:BrokerUsecase$ | COMMENT |
| LOW | docs/docs/.meta.yml | 1 | # 0.5 - API | COMMENT |
| LOW | docs/docs/en/getting-started/contributing/.meta.yml | 1 | # 0.5 - API | COMMENT |
| LOW | docs/docs/en/javascripts/context7-widget.js | 1 | // Material for MkDocs treats a keystroke as a global shortcut (s, f and / | COMMENT |
| LOW | docs/docs/en/api/.meta.yml | 1 | # 0.5 - API | COMMENT |
| LOW | faststream/_internal/utils/nuid.py | 1 | # Copyright 2016-2018 The NATS Authors | COMMENT |
| LOW | .github/workflows/pr_codeql.yaml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/brokers/redis/test_autoclaim.py | 248 | # Create a pending message first (before starting subscriber) | COMMENT |
| MEDIUM | tests/brokers/nats/test_request_cleanup.py | 74 | # Creating the stream first includes the shared JetStream reply mux. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | faststream/_internal/context/repository.py | 144 | Resolve the context of an argument. Args: argument: A string representing the argument. Re | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/expand_markdown.py | 27 | # Check if lines_spec is empty (indicating all lines should be read) | COMMENT |
| LOW | docs/expand_markdown.py | 78 | # Check if the line does not contain the "{!>" pattern | COMMENT |
| LOW | faststream/_internal/logger/logging.py | 87 | # Check if a StreamHandler for sys.stdout already exists in the logger. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ADOPTERS.md | 101 | | [EggAI](https://github.com/eggai-tech) | agentic workforce automation | [EggAI](https://github.com/eggai-tech/EggAI) | | CODE |