Sample
pyint-ee88f90d8745-I04
Replace names with deterministic minifier-style shortest identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Dorn | 0.465 | 0–1; higher is more readable |
| Mi | 0.442 | 0–1; higher is more readable |
| LLOC | 74 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 2.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 9 | 0–20; mean of three runs |
| BTTF | 0.265 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (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. | 5669.883 | −187.106 |
| 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.465 | −6.698 |
Intercept 8.87 + feature contributions = -127.334 (log-odds).
Score = sigmoid(-127.334) = 0.
Feature contributions
| Feature | Value | Contribution (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.882 | +1.601 |
| 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. | 74.959 | +0.49 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 70.841 | +0.339 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.076 | +0.202 |
Intercept 0.07 + feature contributions = -0.14 (log-odds).
Score = sigmoid(-0.14) = 0.465.
| Score | 0.442 |
|---|
| Score | 74 |
|---|
Run 1
This code is extremely unreadable due to deliberately obfuscated naming. All parameters and methods use meaningless single letters (j, k, l, e, f, g, etc.) instead of descriptive names like 'widget', 'rel', 'admin_site', 'get_url', or 'render'. This obscures the intent and makes the logic impossible to follow without extensive external documentation. While the structure and nesting are technically logical, the reading flow is completely broken by the cryptic identifiers. The action granularity is acceptable, but the code length is inflated with unnecessary temporary variables (A, B, C, D...) that add no clarity. The code violates the core principle of self-documenting code, forcing the reader to decode every line.
Run 2
This code is extremely unreadable due to deliberate obfuscation. Parameters use meaningless single letters (j, k, l, m, n, o, p) instead of descriptive names like 'widget', 'rel', 'admin_site', 'can_add_related'. Methods are named a, b, d, e, f, g, h, i rather than descriptive names like 'is_hidden', 'media', 'get_context', 'build_url'. Local variables are similarly obscured (B, C, D, E, F, G, H, I). This completely destroys clarity of intent and reading flow. The class structure is recognizable but the original Django RelatedFieldWidgetWrapper logic is buried under cryptic aliases. Action granularity is moderate but lost due to the naming chaos. This appears to be intentionally minified or obfuscated source code masquerading as readable Python.
Run 3
This code is extremely unreadable due to deliberately obfuscated naming. Variables like 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P' and methods 'a', 'b', 'd', 'e', 'f', 'g', 'h', 'i' provide zero clarity. Clarity of intent is absent, reading flow is impossible, and action granularity is meaningless when every line requires deciphering. While the structure and nesting are technically preserved from the original Django code, the semantic destruction makes it unmaintainable. The code length is normal, but it is effectively unusable.
Run 1
Code Structure: Methods separate initialization, context construction, and widget delegation logically, but cryptic method names obscure those roles. Nesting: Mostly flat, with shallow conditionals and a simple comprehension, making control flow easy to follow. Clarity of intent: The class name, comments, and descriptive attributes help, but single-letter parameters, variables, and methods severely impair understanding; the mismatched @choices.setter and property d also disrupt interpretation. Code length: Reasonably concise overall, though numerous apparently unused imports and small forwarding methods add clutter. Action granularity: Most lines perform one action, and multiline calls and dictionaries are formatted clearly. Reading flow: Initialization and context assembly follow a natural sequence, but readers must repeatedly trace anonymous identifiers to understand relationships and data flow.
Run 2
Code Structure: Organized into a widget-wrapper class with distinct methods, although the mismatched @choices.setter and renamed property obscure the interface. Nesting: Shallow conditionals and a simple comprehension keep complexity low. Clarity of intent: The class docstring, comments, and descriptive instance attributes help, but single-letter method names, parameters, and local variables severely obscure purpose and data relationships. Code length: Mostly concise, though numerous imports unused in this snippet and excessive wrapping add visual noise. Action granularity: Generally one assignment or operation per line, making individual steps easy to distinguish. Reading flow: Initialization, delegation, and context construction follow a logical sequence, but readers must repeatedly trace opaque identifiers to understand the behavior.
Run 3
Code Structure: The class is logically divided into initialization, properties, URL generation, context construction, and widget delegation, although the choices setter references an undefined property name. Nesting: Mostly flat, with simple conditionals and a shallow comprehension. Clarity of intent: The docstring, comments, and descriptive instance attributes help, but single-letter method names, parameters, and local variables severely obscure meaning. Code length: Reasonably concise, though numerous unused imports and some awkward line wrapping add clutter. Action granularity: Most lines perform one operation; compound expressions remain manageable. Reading flow: Methods follow a sensible sequence, but readers must repeatedly trace opaque identifiers to understand data flow, particularly in context construction.