Repository Analysis

falconry/falcon

The no-magic web API and microservices framework for Python developers, with a focus on reliability and performance at scale.

26.7 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of falconry/falcon, a Python project with 9,792 GitHub stars. SynthScan v2.0 examined 65,418 lines of code across 308 source files, recording 1454 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 26.7 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).

26.7
Adjusted Score
26.7
Raw Score
100%
Time Factor
2026-07-31
Last Push
9.8K
Stars
Python
Language
65.4K
Lines of Code
308
Files
1.5K
Pattern Hits
2026-08-02
Scan Date
0.10
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

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

Severity Breakdown

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.

CRITICAL 0HIGH 31MEDIUM 156LOW 1267

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 1454 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.

Hyper-Verbose Identifiers564 hits · 561 pts
SeverityFileLineSnippetContext
LOWtools/add_contributors.py104def _update_towncrier_template(template, contributors):CODE
LOWtests/test_media_multipart.py208def test_invalid_text_or_charset(charset, data):CODE
LOWtests/test_media_multipart.py252def test_from_buffered_stream():CODE
LOWtests/test_media_multipart.py285def test_body_part_properties():CODE
LOWtests/test_media_multipart.py303def test_empty_or_missing_filename():CODE
LOWtests/test_media_multipart.py528def test_unexpected_form_structure(client):CODE
LOWtests/test_media_multipart.py642def test_nested_multipart_mixed():CODE
LOWtests/test_media_multipart.py692def test_content_transfer_encoding_header(client):CODE
LOWtests/test_media_multipart.py800def test_max_secure_filename_length(custom_client, max_length, expected):CODE
LOWtests/test_media_multipart.py857def test_deserialize_part_media(client):CODE
LOWtests/test_media_multipart.py883def test_deserialize_custom_media(custom_client):CODE
LOWtests/test_media_multipart.py924def test_multipart_parse_options_default_handlers_unique():CODE
LOWtests/test_httperror.py368 def test_client_does_not_accept_json_or_xml(self, client):CODE
LOWtests/test_httperror.py385 def test_custom_error_serializer(self, client, yaml):CODE
LOWtests/test_httperror.py438 def test_custom_error_serializer_optional_representation(CODE
LOWtests/test_httperror.py467 def test_custom_serializer_no_representation(self, client):CODE
LOWtests/test_httperror.py477 def test_client_does_not_accept_anything(self, client):CODE
LOWtests/test_httperror.py951 def test_title_default_message_if_none(self, status, status_type, client):CODE
LOWtests/test_httperror.py973 def test_serialize_error_uses_media_handler(self, client):CODE
LOWtests/test_httperror.py982 def test_serialize_no_json_media_handler(self, client):CODE
LOWtests/test_httperror.py1070 def test_serializes_error_to_preferred_by_sender(CODE
LOWtests/test_httperror.py1092 def test_json_async_only_error(self, util):CODE
LOWtests/test_custom_router.py7def test_custom_router_add_route_should_be_used(asgi, util):CODE
LOWtests/test_custom_router.py24def test_custom_router_find_should_be_used(asgi, util):CODE
LOWtests/test_custom_router.py76def test_can_pass_additional_params_to_add_route(asgi, util):CODE
LOWtests/test_custom_router.py101def test_custom_router_takes_req_positional_argument(asgi, util):CODE
LOWtests/test_custom_router.py124def test_custom_router_takes_req_keyword_argument(asgi, util):CODE
LOWtests/test_utils.py289 def test_uri_encode_value_double(self, value, expected):CODE
LOWtests/test_utils.py295 def test_uri_encode_double_hexchars(self):CODE
LOWtests/test_utils.py303 def test_uri_encode_value_double_hexchars(self):CODE
LOWtests/test_utils.py402 def test_prop_uri_encode_models_stdlib_quote(self):CODE
LOWtests/test_utils.py409 def test_prop_uri_encode_value_models_stdlib_quote_safe_tilde(self):CODE
LOWtests/test_utils.py416 def test_prop_uri_decode_models_stdlib_unquote_plus(self):CODE
LOWtests/test_utils.py613 def test_http_status_to_code_neg(self, v):CODE
LOWtests/test_utils.py617 def test_etag_dumps_to_header_format(self):CODE
LOWtests/test_utils.py627 def test_etag_strong_vs_weak_comparison(self):CODE
LOWtests/test_utils.py780 def test_path_escape_chars_in_create_environ(self):CODE
LOWtests/test_utils.py784 def test_no_prefix_allowed_for_query_strings_in_create_environ(self):CODE
LOWtests/test_utils.py788 def test_plus_in_path_in_create_environ(self):CODE
LOWtests/test_utils.py792 def test_none_header_value_in_create_environ(self):CODE
LOWtests/test_utils.py801 def test_httpnow_alias_for_backwards_compat(self):CODE
LOWtests/test_utils.py870 def test_repr_result_when_body_varies(self, asgi, util, value, simulate):CODE
LOWtests/test_utils.py929 def test_rich_repr_result_when_body_varies(self, asgi, util, value, simulate):CODE
LOWtests/test_utils.py1033 def test_wsgi_iterable_not_closeable(self):CODE
LOWtests/test_utils.py1038 def test_path_must_start_with_slash(self, app):CODE
LOWtests/test_utils.py1044 def test_cached_text_in_result(self, app):CODE
LOWtests/test_utils.py111 def test_deprecated_decorator(self):CODE
LOWtests/test_utils.py176 def test_pack_query_params_none(self):CODE
LOWtests/test_utils.py179 def test_pack_query_params_one(self):CODE
LOWtests/test_utils.py199 def test_pack_query_params_several(self):CODE
LOWtests/test_utils.py231 def test_to_query_str_encoding(self, params, csv):CODE
LOWtests/test_utils.py351 def test_uri_decode_bad_coding(self, encoded, expected, decode_approach):CODE
LOWtests/test_utils.py362 def test_uri_decode_bad_unicode(self, encoded, expected, decode_approach):CODE
LOWtests/test_utils.py374 def test_uri_decode_unquote_plus(self, decode_approach):CODE
LOWtests/test_utils.py509 def test_parse_query_string_edge_cases(self, query_string, keep_blank, expected):CODE
LOWtests/test_utils.py588 def test_code_to_http_status_value_error(self, v):CODE
LOWtests/test_utils.py686 def test_secure_filename_empty_value(self):CODE
LOWtests/test_utils.py690 def test_secure_filename_invalid_max_length(self):CODE
LOWtests/test_utils.py705 def test_secure_filename_windows_reserved_names(CODE
LOWtests/test_utils.py725def test_simulate_request_protocol(asgi, protocol, method, util):CODE
504 more matches not shown…
Decorative Section Separators139 hits · 428 pts
SeverityFileLineSnippetContext
MEDIUMtox.ini90# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini92# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini97# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini99# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini340# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini342# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini352# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini354# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini3# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini13# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini37# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini39# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini52# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini54# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini111# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini113# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini144# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini146# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini211# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini213# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini233# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini235# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini247# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini249# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini271# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini273# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini300# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini302# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini315# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini317# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini368# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini370# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini405# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini411# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini445# --------------------------------------------------------------------COMMENT
MEDIUMtox.ini447# --------------------------------------------------------------------COMMENT
MEDIUMtests/test_cookies.py351# =====================================================================COMMENT
MEDIUMtests/test_cookies.py353# =====================================================================COMMENT
MEDIUMtests/test_cookies.py110# =====================================================================COMMENT
MEDIUMtests/test_cookies.py112# =====================================================================COMMENT
MEDIUMtests/test_after_hooks.py14# --------------------------------------------------------------------COMMENT
MEDIUMtests/test_after_hooks.py16# --------------------------------------------------------------------COMMENT
MEDIUMtests/test_after_hooks.py34# --------------------------------------------------------------------COMMENT
MEDIUMtests/test_after_hooks.py36# --------------------------------------------------------------------COMMENT
MEDIUMtests/test_after_hooks.py108# --------------------------------------------------------------------COMMENT
MEDIUMtests/test_after_hooks.py110# --------------------------------------------------------------------COMMENT
MEDIUMtests/test_after_hooks.py228# --------------------------------------------------------------------COMMENT
MEDIUMtests/test_after_hooks.py230# --------------------------------------------------------------------COMMENT
MEDIUMtests/test_request_attrs.py207 # =======================================================COMMENT
MEDIUMtests/test_request_attrs.py209 # =======================================================COMMENT
MEDIUMtests/test_request_attrs.py215 # =======================================================COMMENT
MEDIUMtests/test_request_attrs.py217 # =======================================================COMMENT
MEDIUMtests/test_request_attrs.py223 # =======================================================COMMENT
MEDIUMtests/test_request_attrs.py225 # =======================================================COMMENT
MEDIUMtests/test_request_attrs.py232 # =======================================================COMMENT
MEDIUMtests/test_request_attrs.py234 # =======================================================COMMENT
MEDIUMtests/test_request_attrs.py1083 # -------------------------------------------------------------------------COMMENT
MEDIUMtests/test_request_attrs.py1085 # -------------------------------------------------------------------------COMMENT
MEDIUMtests/test_request_attrs.py249 # =======================================================COMMENT
MEDIUMtests/test_request_attrs.py251 # =======================================================COMMENT
79 more matches not shown…
Unused Imports478 hits · 320 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py20CODE
LOWtests/test_typing.py1CODE
LOWtests/test_validators.py1CODE
LOWtests/asgi/test_asgi_servers.py598CODE
LOWtests/asgi/test_asgi_servers.py603CODE
LOWtests/asgi/test_asgi_servers.py608CODE
LOWe2e-tests/server/hub.py1CODE
LOWfalcon/hooks.py17CODE
LOWfalcon/hooks.py45CODE
LOWfalcon/hooks.py48CODE
LOWfalcon/_typing.py16CODE
LOWfalcon/_typing.py51CODE
LOWfalcon/_typing.py52CODE
LOWfalcon/_typing.py53CODE
LOWfalcon/http_error.py16CODE
LOWfalcon/request_helpers.py17CODE
LOWfalcon/asgi_spec.py17CODE
LOWfalcon/request.py15CODE
LOWfalcon/__init__.py334CODE
LOWfalcon/__init__.py335CODE
LOWfalcon/__init__.py336CODE
LOWfalcon/__init__.py337CODE
LOWfalcon/__init__.py338CODE
LOWfalcon/__init__.py339CODE
LOWfalcon/__init__.py340CODE
LOWfalcon/__init__.py341CODE
LOWfalcon/__init__.py342CODE
LOWfalcon/__init__.py343CODE
LOWfalcon/__init__.py344CODE
LOWfalcon/__init__.py345CODE
LOWfalcon/__init__.py346CODE
LOWfalcon/__init__.py347CODE
LOWfalcon/__init__.py348CODE
LOWfalcon/__init__.py349CODE
LOWfalcon/__init__.py350CODE
LOWfalcon/__init__.py351CODE
LOWfalcon/__init__.py352CODE
LOWfalcon/__init__.py353CODE
LOWfalcon/__init__.py354CODE
LOWfalcon/__init__.py355CODE
LOWfalcon/__init__.py356CODE
LOWfalcon/__init__.py357CODE
LOWfalcon/__init__.py358CODE
LOWfalcon/__init__.py359CODE
LOWfalcon/__init__.py360CODE
LOWfalcon/__init__.py361CODE
LOWfalcon/__init__.py362CODE
LOWfalcon/__init__.py363CODE
LOWfalcon/__init__.py364CODE
LOWfalcon/__init__.py365CODE
LOWfalcon/__init__.py366CODE
LOWfalcon/__init__.py367CODE
LOWfalcon/__init__.py368CODE
LOWfalcon/__init__.py369CODE
LOWfalcon/__init__.py370CODE
LOWfalcon/__init__.py371CODE
LOWfalcon/__init__.py372CODE
LOWfalcon/__init__.py373CODE
LOWfalcon/__init__.py374CODE
LOWfalcon/__init__.py375CODE
418 more matches not shown…
Docstring Block Structure23 hits · 115 pts
SeverityFileLineSnippetContext
HIGHfalcon/request.py1176Deserialize the query string as a media object. This method URL-decodes the query string and then deserializes STRING
HIGHfalcon/request.py1320Retrieve the raw string value for the given header. Args: name (str): Header name, case-insensitiveSTRING
HIGHfalcon/request.py1378Retrieve the int value for the given header. Args: name (str): Header name, case-insensitive (e.g.,STRING
HIGHfalcon/request.py1420Return an HTTP header with HTTP-Date values as a datetime. Args: name (str): Header name, case-inseSTRING
HIGHfalcon/request.py1523Return the raw value of a query string parameter as a string. Note: If an HTML form is POSTed to thSTRING
HIGHfalcon/request.py1641Return the value of a query string parameter as an int. Args: name (str): Parameter name, case-sensSTRING
HIGHfalcon/request.py1754Return the value of a query string parameter as an float. Args: name (str): Parameter name, case-seSTRING
HIGHfalcon/request.py1858Return the value of a query string parameter as an UUID. The value to convert must conform to the standard UUIDSTRING
HIGHfalcon/request.py1962Return the value of a query string parameter as a boolean. This method treats valueless parameters as flags. BySTRING
HIGHfalcon/request.py2113Return the value of a query string parameter as a list. List items must be comma-separated or must be provided STRING
HIGHfalcon/request.py2288Return the value of a query string parameter as a datetime. Args: name (str): Parameter name, case-STRING
HIGHfalcon/request.py2380Return the value of a query string parameter as a date. Args: name (str): Parameter name, case-sensSTRING
HIGHfalcon/request.py2426Return the decoded JSON value of a query string parameter. Given a JSON value, decode it to an appropriate PythSTRING
HIGHfalcon/request.py2485Return a query string parameter's value deserialized by a media handler. This is useful for implementing the OpSTRING
HIGHfalcon/request.py2575Return the value of a query string parameter as a dictionary. Two input formats are supported: * An alSTRING
HIGHfalcon/response.py678Retrieve the raw string value for the given header. Normally, when a header has multiple values, they will be STRING
HIGHfalcon/asgi/request.py759Retrieve the raw string value for the given header. Args: name (str): Header name, case-insensitiveSTRING
HIGHfalcon/asgi/request.py837Return the raw value of a query string parameter as a string. Note: If an HTML form is POSTed to thSTRING
HIGHfalcon/util/misc.py176Convert an HTTP date string to a datetime instance. Args: http_date (str): An RFC 1123 date string, e.g.: STRING
HIGHfalcon/util/misc.py301Get a bound method of the given object by name. Args: obj: Object on which to look up the method. mSTRING
HIGHfalcon/util/misc.py371Sanitize the provided `filename` to contain only ASCII characters. Only ASCII alphanumerals, ``'.'``, ``'-'`` and `STRING
HIGHfalcon/util/uri.py345Parse a query string into a dict. Query string parameters are assumed to use standard form-encoding. Only paramSTRING
HIGHfalcon/util/uri.py534Unquote an RFC 7320 "quoted-string". Args: quoted (str): Original quoted string Returns: str: STRING
Over-Commented Block97 hits · 94 pts
SeverityFileLineSnippetContext
LOWsetup.py41 # CPython versions (especially 3.12+), cythonizing pure Python codeCOMMENT
LOWtox.ini1[tox]COMMENT
LOWdocs/conf.py1# Copyright 2014-2026 by Falcon Contributors.COMMENT
LOWdocs/conf.py41#COMMENT
LOWdocs/conf.py121# Sphinx is looking for the mapped types defined as classes, however, typingCOMMENT
LOWdocs/ext/falcon_releases.py1# Copyright 2025-2026 by Vytautas Liuolia.COMMENT
LOWdocs/ext/newsfragments.py1# Copyright 2026 by Vytautas Liuolia.COMMENT
LOWdocs/ext/doorway.py1# Copyright 2016 by Rackspace Hosting, Inc.COMMENT
LOWdocs/ext/workarounds.py1# Copyright 2025-2026 by Vytautas Liuolia.COMMENT
LOWdocs/ext/rfc.py1# Copyright 2016 by Rackspace Hosting, Inc.COMMENT
LOWdocs/ext/private_args.py1# Copyright 2021 by Kurt GriffithsCOMMENT
LOWdocs/ext/cibuildwheel.py1# Copyright 2024-2026 by Vytautas Liuolia.COMMENT
LOWe2e-tests/conftest.py1# Copyright 2020-2026 by Vytautas Liuolia.COMMENT
LOWe2e-tests/test_e2e.py1# Copyright 2020-2026 by Vytautas Liuolia.COMMENT
LOWfalcon/hooks.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/version.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/_typing.py1# Copyright 2021-2026 by Vytautas Liuolia.COMMENT
LOWfalcon/http_error.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/request_helpers.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/request_helpers.py81 if _COOKIE_NAME_RESERVED_CHARS.search(name):COMMENT
LOWfalcon/asgi_spec.py1# Copyright 2020 by Kurt GriffithsCOMMENT
LOWfalcon/constants.py141# omitted, preference is given to the encoding specified in theCOMMENT
LOWfalcon/request.py1# Licensed under the Apache License, Version 2.0 (the "License");COMMENT
LOWfalcon/request.py261 # empty string, so normalize it in that case.COMMENT
LOWfalcon/__init__.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/__init__.py661# flavor of the framework as HTTP 500 tracebacks may disappear completely,COMMENT
LOWfalcon/status_codes.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/response.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/response.py941 Can take values 'anonymous' or 'use-credentials' or None.COMMENT
LOWfalcon/response.py1381 # PERF(vytas): uglier inline version of Response._set_media_typeCOMMENT
LOWfalcon/forwarded.py1# Based on code from the aiohttp project, Copyright 2013-2017 by Nikolay Kim andCOMMENT
LOWfalcon/responders.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/stream.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/inspect.py1# Copyright 2020-2026 by Federico CaselliCOMMENT
LOWfalcon/redirects.py1# Copyright 2015 by Kurt GriffithsCOMMENT
LOWfalcon/app_helpers.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/app_helpers.py321COMMENT
LOWfalcon/http_status.py1# Copyright 2015 by Hurricane Labs LLCCOMMENT
LOWfalcon/app.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/errors.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/errors.py201# pattern using typing.Unpack:COMMENT
LOWfalcon/typing.py1# Copyright 2024 by Federico CaselliCOMMENT
LOWfalcon/response_helpers.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/response_helpers.py101 # sufficiently expressive.COMMENT
LOWfalcon/cmd/inspect_app.py1#!/usr/bin/env pythonCOMMENT
LOWfalcon/cmd/bench.py1# Copyright 2013 by Rackspace Hosting, Inc.COMMENT
LOWfalcon/asgi/multipart.py1# Copyright 2019-2026 by Vytautas Liuolia.COMMENT
LOWfalcon/asgi/_request_helpers.py1# Copyright 2019 by Kurt GriffithsCOMMENT
LOWfalcon/asgi/request.py1# Copyright 2019-2020 by Kurt GriffithsCOMMENT
LOWfalcon/asgi/request.py121 # =====================================================================COMMENT
LOWfalcon/asgi/request.py221 self.content_type = NoneCOMMENT
LOWfalcon/asgi/request.py241 # =====================================================================COMMENT
LOWfalcon/asgi/request.py501 # access this field when setting self._cached_access_routeCOMMENT
LOWfalcon/asgi/__init__.py1# Copyright 2019 by Kurt Griffiths.COMMENT
LOWfalcon/asgi/response.py1# Copyright 2019 by Kurt GriffithsCOMMENT
LOWfalcon/asgi/response.py381 # in case the latter contains Set-Cookie headers that should beCOMMENT
LOWfalcon/asgi/stream.py1# Copyright 2019 by Kurt GriffithsCOMMENT
LOWfalcon/asgi/stream.py161 if first_event and self._bytes_remaining:COMMENT
LOWfalcon/asgi/ws.py661 #COMMENT
LOWfalcon/asgi/ws.py741 # NOTE(kgriffs): Since this class is only used internally, weCOMMENT
37 more matches not shown…
Excessive Try-Catch Wrapping46 hits · 50 pts
SeverityFileLineSnippetContext
LOWtests/test_request_query_string_media.py258 except Exception:CODE
LOWtests/test_request_query_string_media.py309 except Exception:CODE
MEDIUMtests/test_request_query_string_media.py79def on_get(self, req, resp):CODE
MEDIUMtests/test_request_query_string_media.py302def on_get(self, req, resp):CODE
LOWtests/test_query_params.py379 except Exception as ex:CODE
LOWtests/test_query_params.py455 except Exception as ex:CODE
LOWtests/test_query_params.py583 except Exception as ex:CODE
LOWtests/test_query_params.py749 except Exception as ex:CODE
LOWtests/test_request_media.py194 except Exception as e:CODE
LOWtests/test_request_media.py218 except Exception as e:CODE
LOWtests/test_request_media.py323 except Exception as e:CODE
LOWtests/test_request_media.py327 except Exception as e:CODE
LOWtests/test_request_media.py342 except Exception as e:CODE
LOWtests/test_request_media.py349 except Exception as e:CODE
LOWtests/asgi/test_asgi_servers.py599 except Exception:STRING
LOWtests/asgi/test_asgi_servers.py604 except Exception:STRING
LOWtests/asgi/test_asgi_servers.py609 except Exception:STRING
MEDIUMtests/asgi/test_ws.py70def on_websocket(self, req, ws, explicit):CODE
MEDIUMtests/asgi/test_ws.py696def on_websocket(self, req, ws):CODE
LOWtests/asgi/test_ws.py675 except Exception as ex:CODE
LOWtests/asgi/test_ws.py700 except Exception as ex:CODE
LOWtests/asgi/test_ws.py991 except Exception:CODE
LOWtests/asgi/test_response_media_asgi.py154 except Exception as ex:CODE
LOWexamples/things_advanced.py162 except Exception as ex:CODE
LOWexamples/things_advanced_asgi.py164 except Exception as ex:CODE
LOWexamples/recipes/request_id_log.py14 except Exception:CODE
LOWfalcon/request.py1151 except Exception as err:CODE
LOWfalcon/inspect.py794 except Exception:CODE
LOWfalcon/app.py462 except Exception as ex:CODE
LOWfalcon/app.py484 except Exception as ex:CODE
LOWfalcon/app.py492 except Exception as ex:CODE
LOWfalcon/app.py503 except Exception as ex:CODE
MEDIUMfalcon/asgi/request.py283def content_length(self) -> int | None:CODE
LOWfalcon/asgi/request.py646 except Exception as err:CODE
LOWfalcon/asgi/ws.py489 except Exception as ex:CODE
LOWfalcon/asgi/app.py564 except Exception as ex:CODE
LOWfalcon/asgi/app.py589 except Exception as ex:CODE
LOWfalcon/asgi/app.py598 except Exception as ex:CODE
LOWfalcon/asgi/app.py649 except Exception as ex:CODE
LOWfalcon/asgi/app.py1162 except Exception:CODE
LOWfalcon/asgi/app.py1178 except Exception:CODE
LOWfalcon/asgi/app.py1277 except Exception as ex:CODE
LOWfalcon/asgi/app.py1439 except Exception as ex:CODE
LOWfalcon/routing/compiled.py446 except Exception as e:CODE
LOWfalcon/media/urlencoded.py64 except Exception as err:CODE
LOWfalcon/media/json.py182 except Exception as ex:CODE
Cross-Language Confusion5 hits · 39 pts
SeverityFileLineSnippetContext
HIGHtests/test_request_query_string_media.py48 # Query string: {"numbers":[1,2],"flag":null}COMMENT
HIGHtests/test_request_query_string_media.py49 json_data = '{"numbers":[1,2],"flag":null}'CODE
HIGHtests/test_request_attrs.py128 # NOTE(kgriffs): Behavior for IP addresses is undefined,COMMENT
HIGHfalcon/request.py1186 method will URL-decode it to ``{"numbers":[1,2],"flag":null}`` andSTRING
HIGHfalcon/asgi/stream.py179 # just be left undefined; hence we do not implement readline(),COMMENT
Deep Nesting41 hits · 36 pts
SeverityFileLineSnippetContext
LOWtests/test_media_multipart.py149CODE
LOWtests/test_httperror.py50CODE
LOWtests/test_utils.py1290CODE
LOWtests/asgi/test_asgi_servers.py592CODE
LOWtests/asgi/test_asgi_servers.py614CODE
LOWtests/asgi/test_ws.py307CODE
LOWtests/asgi/test_ws.py325CODE
LOWtests/asgi/test_hello_asgi.py47CODE
LOWdocs/ext/falcon_releases.py152CODE
LOWfalcon/hooks.py89CODE
LOWfalcon/hooks.py174CODE
LOWfalcon/hooks.py134CODE
LOWfalcon/hooks.py199CODE
LOWfalcon/request.py558CODE
LOWfalcon/request.py876CODE
LOWfalcon/request.py956CODE
LOWfalcon/request.py1954CODE
LOWfalcon/response.py267CODE
LOWfalcon/forwarded.py92CODE
LOWfalcon/inspect.py216CODE
LOWfalcon/inspect.py228CODE
LOWfalcon/app_helpers.py96CODE
LOWfalcon/app_helpers.py284CODE
LOWfalcon/app.py403CODE
LOWfalcon/app.py1099CODE
LOWfalcon/asgi/multipart.py200CODE
LOWfalcon/asgi/request.py463CODE
LOWfalcon/asgi/response.py180CODE
LOWfalcon/asgi/stream.py423CODE
LOWfalcon/asgi/ws.py250CODE
LOWfalcon/asgi/app.py457CODE
LOWfalcon/asgi/app.py1120CODE
LOWfalcon/asgi/app.py1190CODE
LOWfalcon/asgi/structures.py127CODE
LOWfalcon/util/misc.py238CODE
LOWfalcon/util/uri.py342CODE
LOWfalcon/testing/helpers.py742CODE
LOWfalcon/routing/compiled.py166CODE
LOWfalcon/routing/compiled.py450CODE
LOWfalcon/routing/compiled.py259CODE
LOWfalcon/media/multipart.py365CODE
Self-Referential Comments7 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_request_context.py23 # Define a Request-alike with a custom context typeCOMMENT
MEDIUMtests/test_request_context.py35 # Define a Request-alike with a non-callable custom context typeCOMMENT
MEDIUMtests/test_request_context.py47 # Define a Request-alike with a custom context typeCOMMENT
MEDIUMtests/asgi/test_request_context_asgi.py23 # Define a Request-alike with a custom context typeCOMMENT
MEDIUMtests/asgi/test_request_context_asgi.py34 # Define a Request-alike with a non-callable custom context typeCOMMENT
MEDIUMtests/asgi/test_request_context_asgi.py45 # Define a Request-alike with a custom context typeCOMMENT
MEDIUMfalcon/asgi/request.py242 # Create a context objectCOMMENT
AI Slop Vocabulary15 hits · 21 pts
SeverityFileLineSnippetContext
LOWtests/test_request_query_string_media.py140 # Plain text - should just return the decoded stringCOMMENT
LOWtests/test_cookies.py468 # we cannot simply use pytest.raisesCOMMENT
LOWtests/test_wsgi.py76 # NOTE(kgriffs): Elsewhere we just use req.bounded_stream, soCOMMENT
LOWtests/asgi/test_ws.py100 # cycles to just use the same pattern whether or not the conductorCOMMENT
LOWexamples/things_advanced.py96 # NOTE: Normally you would simply use req.media and resp.media forCOMMENT
LOWexamples/things_advanced_asgi.py98 # NOTE: Normally you would simply use req.get_media() and resp.media forCOMMENT
LOWfalcon/constants.py145# ignore it anyway and just use what is specified in the document,COMMENT
LOWfalcon/request.py1356 # people to usually just use the relevant helper propertiesCOMMENT
MEDIUMfalcon/request.py2780 """Set to ``True`` in order to automatically consume the request streamSTRING
MEDIUMfalcon/request.py2848 """Set to ``True`` in order to strip the trailing slash, if present, at theSTRING
LOWfalcon/response.py553 # so we can just pass this in and when __setitem__() callsCOMMENT
MEDIUMfalcon/stream.py31 """Wrap *wsgi.input* streams to make them more robust.STRING
LOWfalcon/asgi/stream.py144 # NOTE(kgriffs): If length is unknown we just set remaining bytesCOMMENT
LOWfalcon/testing/helpers.py238 # NOTE(kgriffs): Part of the time just return anCOMMENT
MEDIUMfalcon/media/multipart.py524 # characters known to be very robust through mail gateways, and NOTCOMMENT
AI Structural Patterns18 hits · 18 pts
SeverityFileLineSnippetContext
LOWfalcon/response.py350CODE
LOWfalcon/app.py299CODE
LOWfalcon/app.py314CODE
LOWfalcon/app.py329CODE
LOWfalcon/app.py344CODE
LOWfalcon/app.py358CODE
LOWfalcon/asgi/app.py366CODE
LOWfalcon/asgi/app.py381CODE
LOWfalcon/asgi/app.py396CODE
LOWfalcon/asgi/app.py411CODE
LOWfalcon/asgi/app.py425CODE
LOWfalcon/testing/client.py471CODE
LOWfalcon/testing/client.py693CODE
LOWfalcon/testing/client.py721CODE
LOWfalcon/testing/client.py752CODE
LOWfalcon/testing/helpers.py900CODE
LOWfalcon/testing/helpers.py1045CODE
LOWfalcon/testing/helpers.py1128CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHfalcon/request.py0a dict-like object for configuring the media-types to handle. by default, handlers are provided for the ``application/jsSTRING
HIGHfalcon/response.py0a dict-like object for configuring the media-types to handle. by default, handlers are provided for the ``application/jsSTRING
HIGHfalcon/media/multipart.py0a dict-like object for configuring the media-types to handle. by default, handlers are provided for the ``application/jsSTRING
Fake / Example Data8 hits · 9 pts
SeverityFileLineSnippetContext
LOWtests/test_media_multipart.py71 b'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod 'CODE
LOWtests/test_media_multipart.py71 b'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod 'CODE
LOWtests/test_utils.py865 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praese',CODE
LOWtests/test_utils.py865 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praese',CODE
LOWtests/test_utils.py924 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praese',CODE
LOWtests/test_utils.py924 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praese',CODE
LOWtests/test_utils.py981 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praese',CODE
LOWtests/test_utils.py981 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praese',CODE
Modern Structural Boilerplate6 hits · 6 pts
SeverityFileLineSnippetContext
LOWe2e-tests/server/__init__.py3__all__ = ['app']CODE
LOWe2e-tests/server/hub.py13logger = logging.getLogger(__name__)CODE
LOWfalcon/response.py709 def set_header(self, name: str, value: str) -> None:CODE
LOWfalcon/response.py1356 def _set_media_type(self, media_type: str | None = None) -> None:CODE
LOWfalcon/app.py1036 def set_error_serializer(self, serializer: ErrorSerializer[_ReqT, _RespT]) -> None:CODE
LOWfalcon/app.py1343 def _update_sink_and_static_routes(self) -> None:CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMexamples/look/look/images.py44 # Note the use of dependency injection for standard libraryCOMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWexamples/ws_tutorial/ws_tutorial/app.py63 # Check if the route is protectedCOMMENT
Overly Generic Function Names2 hits · 1 pts
SeverityFileLineSnippetContext
LOWtests/test_utils.py1622 def test_function(self, recwarn):CODE
LOWfalcon/hooks.py108 def do_something(req, resp, resource, params):STRING