Sample

pyint-616ceda7294f-SRC

Unmodified source class

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 Pro160–20; mean of three runs
GPT-6.1 Sol170–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 highly readable with clear logical organization and structure. It uses a single class with well-named methods and maintains flat nesting through guard-style checks and early returns. Intent is clear from method names and inline comments that explain non-obvious decisions (e.g., backwards compatibility, cascading deletion UX). Code length is appropriate; each method is concise and focused. Action granularity is generally one action per line, though some lines are slightly denser (e.g., boolean assignments). Reading flow is natural—constructor initializes state, properties expose widget behavior, and get_context builds a template context logically. Minor deductions for a few moderately complex expressions and the `url_params` generator that could be slightly more explicit, but overall readability is strong.

Run 2

The code is generally well-structured with clear separation of concerns, logical grouping of imports, and a single class with focused methods. The __init__ method, while containing several conditional assignments, remains readable due to descriptive variable names and comments where needed. However, some areas could be improved: the get_context method has a moderately complex setup with several related attributes being extracted before use, and the URL parameter construction using an awkward generator expression could be clearer. The nesting is mostly flat, and action granularity is appropriate with one primary operation per line. The reading flow is natural, progressing logically from initialization through properties to the context-building logic. Overall, the code is maintainable and comprehensible, with minor opportunities for simplification in the URL parameter generation and context assembly.

Run 3

The code is generally well-structured with clear separation of methods, minimal nesting, and an explicit purpose (Django admin widget wrapper). It follows conventions like one action per line and logical grouping. However, readability is slightly reduced by the long `__init__` method doing multiple things, reliance on `rel` attributes without clear inline context, and some domain-specific complexity (e.g., URL parameter construction) that could benefit from helper methods or comments. Overall, it is concise but not excessively so, and the flow is natural for Django developers.

Run 1

Code Structure: Well-organized class with focused methods, grouped properties, and clear separation of initialization, context construction, and widget delegation. Nesting: Shallow conditionals and no deeply nested control flow make execution easy to follow. Clarity of intent: Descriptive method names, permission flags, and explanatory comments communicate purpose; abbreviated names such as rel and info, framework-specific internals, and the undefined-in-snippet AutocompleteMixin require external knowledge. Code length: Mostly concise, though several unused imports add clutter and get_context is comparatively long. Action granularity: Statements generally perform one action per line, with readable multiline expressions and dictionary construction. Reading flow: Natural progression from setup to properties, URL generation, rendering context, and delegation; the local import and mixed URL-formatting styles introduce minor interruptions.

Run 2

Code Structure: Well-organized class with distinct initialization, delegation, URL generation, and context-building methods. Nesting: Shallow conditionals and no deeply nested control flow make it easy to follow. Clarity of intent: Descriptive method names, permission flags, and explanatory comments communicate purpose, though abbreviated names such as rel and info and Django-specific conventions require background knowledge. Code length: Mostly concise; repetitive delegation methods are appropriate for a wrapper, but several unused imports add clutter. Action granularity: Statements generally perform one action per line, and multiline expressions are formatted clearly. Reading flow: Methods progress naturally from setup to properties and rendering support. The lengthy initializer and get_context method slightly increase cognitive load, while manual URL parameter construction and compact tuple unpacking require closer attention.

Run 3

Code Structure: Well-organized class with distinct initialization, property delegation, URL generation, and context construction 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, though framework-specific attributes, abbreviated names such as rel and info, and an externally defined AutocompleteMixin require context. Code length: Mostly concise; repetitive delegation methods are reasonable for a wrapper, while several unused imports add clutter. Action granularity: Statements generally perform one action per line, with longer calls and dictionaries formatted clearly. Reading flow: Natural progression from setup to rendering support and delegation; the lengthy initializer and get_context method slightly slow comprehension. Overall, readable and maintainable, with minor contextual dependencies and import noise.