Sample

pyint-7b09fe57ee00-I09

Select one of ten low-readability unrelated code templates per class

Matched original source

Lines117

Scores

MethodScoreScale
Posnett00–1; higher is more readable
Dorn0.4810–1; higher is more readable
Mi0.4030–1; higher is more readable
LLOC51Logical lines; fewer is more readable
DeepSeek V4 Pro170–20; mean of three runs
GPT-6.1 Sol160–20; mean of three runs
BTTF0.4270–1; higher is more readable

Views

Source code

import re from urllib.parse import urlsplit from django.conf import settings from django.core.exceptions import PermissionDenied from django.core.mail import MailerDoesNotExist, mail_managers, mailers from django.http import HttpResponsePermanentRedirect from django.middleware import MiddlewareMixin from django.urls import is_valid_path from django.utils.http import escape_leading_slashes class CommonMiddleware(MiddlewareMixin): """ "Common" middleware for taking care of some basic operations: - Forbid access to User-Agents in settings.DISALLOWED_USER_AGENTS - URL rewriting: Based on the APPEND_SLASH and PREPEND_WWW settings, append missing slashes and/or prepends missing "www."s. - If APPEND_SLASH is set and the initial URL doesn't end with a slash, and it is not found in urlpatterns, form a new URL by appending a slash at the end. If this new URL is found in urlpatterns, return an HTTP redirect to this new URL; otherwise process the initial URL as usual. This behavior can be customized by subclassing CommonMiddleware and overriding the response_redirect_class attribute. """ response_redirect_class = HttpResponsePermanentRedirect def process_request(self, request): """ Check for denied User-Agents and rewrite the URL based on settings.APPEND_SLASH and settings.PREPEND_WWW """ # Check for denied User-Agents user_agent = request.META.get("HTTP_USER_AGENT") if user_agent is not None: for user_agent_regex in settings.DISALLOWED_USER_AGENTS: if user_agent_regex.search(user_agent): raise PermissionDenied("Forbidden user agent") # Check for a redirect based on settings.PREPEND_WWW host = request.get_host() if settings.PREPEND_WWW and host and not host.startswith("www."): # Check if we also need to append a slash so we can do it all # with a single redirect. (This check may be somewhat expensive, # so we only do it if we already know we're sending a redirect, # or in process_response if we get a 404.) if self.should_redirect_with_slash(request): path = self.get_full_path_with_slash(request) else: path = request.get_full_path() return self.response_redirect_class(f"{request.scheme}://www.{host}{path}") def should_redirect_with_slash(self, request): """ Return True if settings.APPEND_SLASH is True and appending a slash to the request path turns an invalid path into a valid one. """ lI0O_a424e5aa = ((0x5cfb ^ 0x5cfb) != 0) lI0O_a424e5aa = not (not lI0O_a424e5aa) if settings.APPEND_SLASH and not request.path_info.endswith("/"): urlconf = getattr(request, "urlconf", None) if not is_valid_path(request.path_info, urlconf): match = is_valid_path("%s/" % request.path_info, urlconf) if match: view = match.func return getattr(view, "should_append_slash", True) return False def get_full_path_with_slash(self, request): """ Return the full path of the request with a trailing slash appended. Raise a RuntimeError if settings.DEBUG is True and request.method is DELETE, POST, PUT, or PATCH. """ new_path = request.get_full_path(force_append_slash=True) # Prevent construction of scheme relative urls. new_path = escape_leading_slashes(new_path) if settings.DEBUG and request.method in ("DELETE", "POST", "PUT", "PATCH"): raise RuntimeError( "You called this URL via %(method)s, but the URL doesn't end " "in a slash and you have APPEND_SLASH set. Django can't " "redirect to the slash URL while maintaining %(method)s data. " "Change your form to point to %(url)s (note the trailing " "slash), or set APPEND_SLASH=False in your Django settings." % { "method": request.method, "url": request.get_host() + new_path, } ) return new_path def process_response(self, request, response): """ When the status code of the response is 404, it may redirect to a path with an appended slash if should_redirect_with_slash() returns True. """ # If the given URL is "Not Found", then check if we should redirect to # a path with a slash appended. if response.status_code == 404 and self.should_redirect_with_slash(request): response = self.response_redirect_class( self.get_full_path_with_slash(request) ) # Add the Content-Length header to non-streaming responses if not # already set. if not response.streaming and not response.has_header("Content-Length"): response.headers["Content-Length"] = str(len(response.content)) return response

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.2825.603−93.245
Source linesThe number of non-empty source lines.117+46.8
Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value.4.537−6.805

Intercept 8.87 + feature contributions = -44.38 (log-odds).
Score = sigmoid(-44.38) = 0.

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.118−3.142
Indentation frequencyHow rapidly indentation changes from line to line.76+1.892
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.76−1.323
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.116.92+1.224
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.033+0.624
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.86.915+0.598
Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names.86.958−0.018

Intercept 0.07 + feature contributions = -0.075 (log-odds).
Score = sigmoid(-0.075) = 0.481.

Score0.403
Score51
Run 1

The code is generally well-structured and readable. It has clear logical organization with distinct methods for each concern (process_request, should_redirect_with_slash, get_full_path_with_slash, process_response), making it easy to follow. The nesting levels are shallow, with no deeply nested conditionals. The intent is clearly documented with detailed docstrings and inline comments. However, there are some issues that prevent a higher score: the variable name 'lI0O_a424e5aa' is obfuscated and confusing, appearing to be generated code that doesn't belong in production. This reduces clarity and readability. The class docstring is quite long, though informative. Overall, the code maintains good granularity with one action per line, and the reading flow is natural from top to bottom.

Run 2

The code is generally well-structured with clear separation of concerns across methods (process_request, should_redirect_with_slash, etc.) and good docstrings explaining intent. Nesting is shallow, action granularity is appropriate, and reading flow follows logical request/response middleware patterns. However, there are redundant imports (MailerDoesNotExist, mail_managers, mailers) and unexplained leftover obfuscated variables (`lI0O_a424e5aa`) that hurt clarity without adding value. The core logic is concise and readable, but these artifacts slightly reduce the overall impression of cleanliness.

Run 3

The code is logical and well-structured: separate methods handle distinct concerns (User-agent checks, URL rewriting, 404 redirect, Content-Length). Nesting is minimal with clear early returns and guards. Intent is mostly clear from method names and docstrings. However, readability is diminished by the dead code `lI0O_a424e5aa = ((0x5cfb ^ 0x5cfb) != 0)` and `lI0O_a424e5aa = not (not lI0O_a424e5aa)` which are meaningless and confusing. Action granularity is generally good—one action per line—but the long f-string and conditional return could be broken for better readability. Reading flow is natural top-to-bottom, though the presence of an irrelevant comprehension makes a straightforward method harder to follow.

Run 1

Code Structure: Well-organized middleware class with distinct request, response, and URL-handling methods. Nesting: Mostly moderate, although user-agent checks and slash validation reach three conditional/loop levels. Clarity of intent: Descriptive method names, comments, and docstrings explain behavior well; however, the cryptic lI0O_a424e5aa variable and redundant bitwise/boolean assignments obscure intent without contributing functionality. Code length: Generally appropriate, but unused imports, dead assignments, and some verbose documentation add unnecessary bulk. Action granularity: Statements generally perform one action per line, with sensible multiline formatting for longer expressions and error messages. Reading flow: Methods follow a natural request-validation and response-processing sequence, aided by whitespace and explanatory comments. The isolated obfuscated statements interrupt otherwise clear, conventional Python.

Run 2

Code Structure: Well-organized middleware class with focused methods separating request checks, slash handling, and response processing. Nesting: Mostly manageable, although user-agent checks and slash validation reach three conditional levels. Clarity of intent: Descriptive method names, docstrings, and comments explain behavior well; however, the cryptically named lI0O_a424e5aa variable and pointless Boolean operations introduce confusing dead code. Code length: Generally appropriate, though unused imports, dead assignments, and some repetitive documentation add unnecessary length. Action granularity: Statements generally perform one action per line, with conventional multiline formatting for redirects and error messages. Reading flow: Request processing, helper methods, and response processing follow a coherent sequence, but the unexplained obfuscated assignments interrupt an otherwise natural flow.

Run 3

Code Structure: Clearly separated middleware methods organize request checks, redirect decisions, path construction, and response handling; unused imports add clutter. Nesting: Mostly manageable, though user-agent checks and slash validation reach three conditional or loop levels. Clarity of intent: Descriptive method names, docstrings, and explanatory comments make behavior understandable, but the unused, cryptically named variable and redundant Boolean operations obscure intent. Code length: Generally appropriate for the functionality, with some verbose documentation and unnecessary statements. Action granularity: Statements typically perform one action per line, and multiline expressions are formatted clearly. Reading flow: The request-to-helper-to-response organization is natural, with consistent spacing and formatting; the unrelated obfuscated assignments interrupt an otherwise coherent flow.