Sample

pyint-5b2741242938-I12

Inline all eligible single-use intermediate local variables

Matched original source

Lines144

Scores

MethodScoreScale
Posnett00–1; higher is more readable
Dorn0.430–1; higher is more readable
Mi0.4630–1; higher is more readable
LLOC74Logical lines; fewer is more readable
DeepSeek V4 Pro170–20; mean of three runs
GPT-6.1 Sol17.330–20; mean of three runs
BTTF0.4070–1; higher is more readable

Views

Source code

import copy import json from django import forms from django.conf import settings from django.core.exceptions import ValidationError from django.core.validators import URLValidator from django.db.models import CASCADE, UUIDField from django.forms.widgets import Select from django.urls import reverse from django.urls.exceptions import NoReverseMatch from django.utils.html import smart_urlquote from django.utils.http import urlencode from django.utils.text import Truncator from django.utils.translation import get_language from django.utils.translation import gettext as _ class RelatedFieldWidgetWrapper(forms.Widget): """ This class is a wrapper to a given widget to add the add icon for the admin interface. """ template_name = "admin/widgets/related_widget_wrapper.html" def __init__( self, widget, rel, admin_site, can_add_related=None, can_change_related=False, can_delete_related=False, can_view_related=False, ): self.needs_multipart_form = widget.needs_multipart_form self.attrs = widget.attrs self.widget = widget self.rel = rel # Backwards compatible check for whether a user can add related # objects. if can_add_related is None: can_add_related = admin_site.is_registered(rel.model) self.can_add_related = can_add_related if not isinstance(widget, AutocompleteMixin): self.attrs["data-context"] = "available-source" # Only single-select Select widgets are supported. supported = not getattr( widget, "allow_multiple_selected", False ) and isinstance(widget, Select) self.can_change_related = supported and can_change_related # XXX: The deletion UX can be confusing when dealing with cascading # deletion. cascade = getattr(rel, "on_delete", None) is CASCADE self.can_delete_related = supported and not cascade and can_delete_related self.can_view_related = supported and can_view_related # To check if the related object is registered with this AdminSite. self.admin_site = admin_site self.use_fieldset = widget.use_fieldset def __deepcopy__(self, memo): obj = copy.copy(self) obj.widget = copy.deepcopy(self.widget, memo) obj.attrs = self.widget.attrs memo[id(self)] = obj return obj @property def is_hidden(self): return self.widget.is_hidden @property def media(self): return self.widget.media @property def choices(self): return self.widget.choices @choices.setter def choices(self, value): self.widget.choices = value def get_related_url(self, info, action, *args): return reverse( "admin:%s_%s_%s" % (*info, action), current_app=self.admin_site.name, args=args, ) def get_context(self, name, value, attrs): from django.contrib.admin.views.main import ( IS_POPUP_VAR, SOURCE_MODEL_VAR, TO_FIELD_VAR, ) rel_opts = self.rel.model._meta info = (rel_opts.app_label, rel_opts.model_name) related_field_name = self.rel.get_related_field().name app_label = self.rel.field.model._meta.app_label model_name = self.rel.field.model._meta.model_name url_params = "&".join( "%s=%s" % param for param in [ (TO_FIELD_VAR, related_field_name), (IS_POPUP_VAR, 1), (SOURCE_MODEL_VAR, f"{app_label}.{model_name}"), ] ) context = { "rendered_widget": self.widget.render(name, value, attrs), "is_hidden": self.is_hidden, "name": name, "url_params": url_params, "model": rel_opts.verbose_name, "model_name": rel_opts.model_name, "can_add_related": self.can_add_related, "can_change_related": self.can_change_related, "can_delete_related": self.can_delete_related, "can_view_related": self.can_view_related, "model_has_limit_choices_to": self.rel.limit_choices_to, } if self.can_add_related: context["add_related_url"] = self.get_related_url(info, "add") if self.can_delete_related: context["delete_related_template_url"] = self.get_related_url( info, "delete", "__fk__" ) if self.can_view_related or self.can_change_related: context["view_related_url_params"] = f"{TO_FIELD_VAR}={related_field_name}" context["change_related_template_url"] = self.get_related_url( info, "change", "__fk__" ) return context def value_from_datadict(self, data, files, name): return self.widget.value_from_datadict(data, files, name) def value_omitted_from_data(self, data, files, name): return self.widget.value_omitted_from_data(data, files, name) def id_for_label(self, id_): return self.widget.id_for_label(id_)

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.5514.733−181.986
Source linesThe number of non-empty source lines.144+57.6
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.464−6.695

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

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.145−4.098
Indentation frequencyHow rapidly indentation changes from line to line.135+3.932
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.135−2.677
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.143.795+1.6
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.86.938+0.598
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.065+0.31
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.979−0.019

Intercept 0.07 + feature contributions = -0.283 (log-odds).
Score = sigmoid(-0.283) = 0.43.

Score0.463
Score74
Run 1

The code is well-structured and readable. It follows a logical organization with clear separation of concerns, using a single class with focused methods. Nesting is minimal, with only one small conditional inside a method. The intent of the class and each method is clear, with descriptive names and a helpful docstring. Code length is appropriate for the functionality, and actions are mostly one per line, improving readability. The reading flow is natural, with related properties grouped together and a logical progression from initialization to context building to data handling. Minor deductions for slightly verbose imports and a couple of long lines, but overall the code is highly readable.

Run 2

The code is well-structured with clear separation of concerns: class definition, initialization, deepcopy, properties, and methods. The __init__ method is slightly long but logically organized with comments explaining non-obvious decisions like the cascade deletion check. Nesting is minimal, mostly limited to conditional blocks. Intent is clear - this is a Django admin widget wrapper for related objects. Variable names are descriptive and follow Django conventions. Action granularity is appropriate with one logical operation per line. Reading flow is natural, progressing from setup through properties to context generation. The code could be improved by extracting the url_params construction or the context dict building into helper methods to reduce __init__ and get_context length, but overall it maintains strong readability through consistent patterns and clear naming.

Run 3

The code is well-structured with clear separation of concerns, following Django's widget wrapper pattern. It uses flat nesting with only necessary conditional blocks, and each method has a single responsibility. Naming is descriptive and consistent, making intent clear. The code is concise without sacrificing readability, with reasonable line lengths and logical grouping of related operations. Reading flow is natural, progressing from initialization through properties to context building. Minor deductions: the `get_context` method has a slightly dense middle section with URL parameter construction, and some conditional blocks could benefit from additional spacing. The import block is somewhat lengthy but includes only necessary imports. Overall, this is production-quality Django code that maintains high readability standards while handling complex admin widget functionality.

Run 1

Code Structure: Well-organized class with distinct initialization, delegation, URL construction, and context-building methods. Nesting: Shallow conditionals and no deeply nested control flow make scanning easy. Clarity of intent: Descriptive method names, permission flags, and explanatory comments communicate purpose, although Django-specific relationships require background knowledge and the docstring understates the supported actions. Code length: Mostly concise; repetitive delegation methods are reasonable for a wrapper, while unused imports add clutter. Action granularity: Statements generally perform one action each, with readable multiline expressions and dictionaries. Reading flow: Methods follow a logical progression, and context construction proceeds naturally from metadata to permissions and URLs. Minor distractions include mixed string-formatting styles, a local import, and AutocompleteMixin being referenced without a visible definition or import.

Run 2

Code Structure: Well organized into initialization, delegated properties, URL generation, context construction, and widget forwarding methods. Nesting: Shallow conditionals and no deeply nested control flow make scanning easy. Clarity of intent: Descriptive method names, permission flags, and comments clearly communicate the wrapper's purpose, although Django-specific conventions, abbreviated names such as rel and info, and the unexplained __fk__ placeholder require background knowledge. Code length: Mostly concise; repetitive delegation is understandable, but several unused imports add clutter. Action granularity: Statements generally perform one action per line, with multiline expressions formatted clearly. Reading flow: Methods follow a logical sequence, and context creation proceeds naturally from metadata to optional URLs. The lengthy initializer and framework-specific details modestly increase reading effort.

Run 3

Code Structure: Well-organized class with initialization, delegated properties, URL construction, and rendering context separated into methods. Nesting: Shallow conditionals and a straightforward comprehension keep complexity low. Clarity of intent: Descriptive method names, permission flags, and explanatory comments make the wrapper's purpose clear, though abbreviated names such as rel and info require framework familiarity. Code length: Mostly concise; delegation methods are justified, but several unused imports add clutter. Action granularity: Statements generally perform one action each, with multiline formatting making larger calls and dictionaries easy to scan. Reading flow: Methods follow a logical progression, and context construction precedes conditional additions naturally. Minor distractions include the local import, dense URL parameter formatting, and the externally defined AutocompleteMixin reference.