Sample
Dorn/python/47
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.141 | 0–1; higher is more readable | 75.2Δ 11.4 |
| Scalabrino | 0.701 | 0–1; higher is more readable | 76.7Δ 9.9 |
| Dorn | 0.802 | 0–1; higher is more readable | 77.7Δ 8.9 |
| Mi | 0.71 | 0–1; higher is more readable | 86.4Δ 0.3 |
| LLOC | 13 | Logical lines; fewer is more readable | 50.8Δ 35.8 |
| DeepSeek V4 Pro | 5.33 | 0–20; mean of three runs | 12.8Δ 73.8 |
| GPT-6.1 Sol | 14.33 | 0–20; mean of three runs | 44.4Δ 42.2 |
| BTTF | 0.576 | 0–1; higher is more readable | 66.9Δ 19.8 |
| Human | 3.88 | 1–5; original rating | 86.6 |
Views
Select the downloaded ZIP or its extracted folder. Files stay in your browser.
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. | 498.571 | −16.453 |
| Source linesThe number of non-empty source lines. | 30 | +12 |
| 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.147 | −6.221 |
Intercept 8.87 + feature contributions = -1.804 (log-odds).
Score = sigmoid(-1.804) = 0.141.
| Score | 0.701 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| 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. | 53.903 | +1.382 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 30 | +0.301 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 25 | +0.151 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.108 | −0.103 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 29.836 | +0.007 |
Intercept 0.07 + feature contributions = 1.401 (log-odds).
Score = sigmoid(1.401) = 0.802.
| Score | 0.71 |
|---|
| Score | 13 |
|---|
Run 1
The code is difficult to read due to poor structure and lack of context. The 'Admin' class contains only a list_display attribute and is followed by seemingly orphaned methods (save, _get_tags, _set_tags) that belong to an undefined model class. The nesting is flat, which is good, and each line performs a single action. However, the intent is ambiguous because class boundaries are unclear, and the code appears to be a fragment rather than a complete logical unit. The double blank lines and the stray 'Release' class at the end further disrupt the reading flow. The use of properties is standard, but without seeing the parent class or imports, the purpose of the tag handling is unclear. Overall, the code lacks coherent organization and context, making it hard to follow.
Run 2
This code is poorly structured and lacks context. The class Admin is incomplete or misplaced, and several methods reference undefined attributes (e.g., self.tag_list, self.name, self.author). The save method overrides a base save but assumes a tag_list attribute that isn't defined. The property tags is declared at class level but its methods reference an undefined Tag model or manager. The __str__ method uses attributes that may not exist. The code is fragmented, with inconsistent indentation and a dangling class Release that is empty. There is no clear logical organization, and the intent is ambiguous without surrounding context. Nesting is minimal but only because the code is incomplete. Action granularity is acceptable, but readability suffers severely from missing definitions, unnecessary methods, and broken flow.
Run 3
The code suffers from several readability issues. The structure is disorganized: the Admin class is defined before the Release model it likely relates to, and methods like save, _get_tags, and _set_tags appear without a clear enclosing class context. There is excessive vertical whitespace, which breaks the natural reading flow. The intent is ambiguous — 'tags' property, 'tag_list' attribute, and 'Tag.objects.update_tags()' are used without context, making the data flow unclear. Nesting is not an issue since the code is flat, but action granularity and code length are acceptable. Overall, the lack of a clear class boundary, unexplained attributes, and poor spacing make the code hard to follow.
Run 1
Code Structure: Related methods and the tags property are grouped logically, but the missing enclosing class and trailing empty Release declaration make the snippet feel incomplete. Nesting: Shallow nesting keeps it easy to scan. Clarity of intent: Method names clearly communicate tag retrieval, updates, saving, and string representation, although the relationship between tags and tag_list requires context. Code length: The implementation is concise, but excessive blank lines add unnecessary visual length. Action granularity: Each statement performs one main action, making individual operations easy to follow. Reading flow: The sequence from save behavior to tag accessors and string representation is understandable, but inconsistent spacing and abrupt class boundaries interrupt the flow.
Run 2
Code Structure: The admin configuration, save method, tag accessors, property, and string representation are logically grouped, but the missing enclosing class and unfinished Release declaration obscure the overall structure. Nesting: Shallow nesting makes the code easy to follow. Clarity of intent: Method names and straightforward ORM calls communicate their purpose, although the relationship between tag_list and tags requires context. Code length: The implementation is concise, but excessive blank lines unnecessarily expand it. Action granularity: Each statement performs a single action, supporting readability. Reading flow: The getter, setter, and property appear in a natural sequence, but inconsistent whitespace and abrupt snippet boundaries interrupt the flow.
Run 3
Code Structure: The admin configuration, save method, tag accessors, property, and string representation are logically grouped, but the missing enclosing class and unfinished Release declaration leave the structure incomplete. Nesting: Shallow indentation makes the code easy to scan. Clarity of intent: Method names and straightforward ORM calls communicate their purpose, though the relationship between tags and tag_list is not explained. Code length: The implementation is concise, but excessive blank lines add unnecessary visual length. Action granularity: Each executable line performs one clear action. Reading flow: The getter and setter naturally precede the property declaration, but irregular spacing and the abrupt class transition disrupt an otherwise readable sequence.