Sample
pyint-93dc4ffa5832-I04
Replace names with deterministic minifier-style shortest identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Dorn | 0.206 | 0–1; higher is more readable |
| Mi | 0.335 | 0–1; higher is more readable |
| LLOC | 100 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 5.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 10.33 | 0–20; mean of three runs |
| BTTF | 0.221 | 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. | 9545.258 | −314.994 |
| Source linesThe number of non-empty source lines. | 235 | +94 |
| 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.318 | −6.478 |
Intercept 8.87 + feature contributions = -218.601 (log-odds).
Score = sigmoid(-218.601) = 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. | 236 | −7.32 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 210 | +6.527 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 210 | −4.398 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 234.977 | +2.875 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 83.932 | +0.55 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.068 | +0.282 |
| 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. | 84.979 | +0.066 |
Intercept 0.07 + feature contributions = -1.348 (log-odds).
Score = sigmoid(-1.348) = 0.206.
| Score | 0.335 |
|---|
| Score | 100 |
|---|
Run 1
While the class attributes are well-organized, the methods are severely obfuscated. Functions are named with single letters (a, b, c, d, etc.) and variables use meaningless identifiers (z, A, D, H, K). This destroys clarity of intent, as names like 'get_fieldsets' or 'user' are replaced by 'a' and 'z'. The code structure relies on guesswork rather than logical organization. Several methods exceed manageable length, especially the password change view, which mixes permission checks, form handling, messaging, and response building into one long, deeply nested block. Reading flow is completely unnatural, forcing the reader to trace single-letter variables and decode abbreviated logic. The excessive use of opaque variables and dead single-letter placeholders makes even standard Django admin code nearly unreadable.
Run 2
The code is poorly readable due to deliberately obfuscated method names (a, b, c, d, e, f, g, h) and variables (i, 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). This destroys clarity of intent and reading flow. While the overall structure is logical and nesting is moderate, the single-letter names make it impossible to understand functionality without reverse-engineering. Action granularity is acceptable, and the code length is reasonable, but these positives are outweighed by the naming choices.
Run 3
This code is severely unreadable due to the use of single-letter or otherwise meaningless variable and method names (a, b, c, g, D, E, F, K, etc.). This destroys clarity of intent, making it impossible to understand the purpose of functions or variables without extensive reverse-engineering. While the code structure mimics Django's standard UserAdmin, the obfuscated identifiers break the reading flow and make the logic appear tangled. The nesting is typical for Django admin views but is exacerbated by unclear variable contexts. Although the code is relatively concise in terms of lines, the cryptic naming negates any benefit. Action granularity and logical organization are present but buried under the poor naming conventions. The comments do little to help, as they reference the intended function of obfuscated methods, highlighting what was lost.
Run 1
Code Structure: Configuration and behavior are logically separated into methods, but opaque method names obscure their roles and intended Django overrides. Nesting: Most methods are shallow; the password-change handler has moderately deep conditional nesting. Clarity of intent: Descriptive configuration keys, framework calls, and helpful comments explain some behavior, but single-letter method names and variables severely hinder understanding. Code length: Most length is justified by configuration and workflow requirements, though the password-change method is lengthy and mixes validation, persistence, messaging, and rendering. Action granularity: Statements generally perform one action per line, and multiline expressions are formatted consistently. Reading flow: Imports, configuration, and methods follow a reasonable sequence, with early returns aiding navigation; however, readers must repeatedly infer variable meanings and trace cryptically named method calls.
Run 2
Code Structure: Imports, configuration, and methods are logically organized, but opaque method names hide their roles and framework relationships. Nesting: Most methods are flat, although the password-change handler has several nested branches and a deeply indented redirect expression. Clarity of intent: Single-letter method and variable names severely obscure requests, users, forms, and context; descriptive API calls, comments, and configuration partially compensate. Code length: Configuration is reasonably concise, but the long password-change method combines validation, persistence, messaging, redirection, and rendering. Action granularity: Statements generally perform one action per line, with readable multiline expressions. Reading flow: Consistent formatting and early returns help, but readers must repeatedly infer identifier meanings and trace calls between cryptically named methods.
Run 3
Code Structure: Imports, declarative configuration, and separate methods provide logical organization, but anonymous method names obscure their roles and expected Django hooks. Nesting: Most methods are flat, although the password-change handler contains moderately deep conditional nesting. Clarity of intent: Descriptive configuration keys, framework calls, and helpful comments explain some behavior, but single-letter parameters and variables substantially undermine understanding. Code length: Configuration is reasonably concise; the password-change handler is long and combines validation, persistence, messaging, redirects, and template preparation. Action granularity: Statements generally perform one action per line, with readable multiline expressions. Reading flow: Consistent formatting and early exits help, but readers must repeatedly infer what names such as C, D, and K represent and trace calls between cryptically named methods. Overall, the layout is readable while identifier choices significantly impair comprehension.