Sample
Dorn/python/112
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.018 | 0–1; higher is more readable | 69.6Δ 16.2 |
| Scalabrino | 0.668 | 0–1; higher is more readable | 72.1Δ 18.6 |
| Dorn | 0.437 | 0–1; higher is more readable | 36.2Δ 17.3 |
| Mi | 0.044 | 0–1; higher is more readable | 7.2Δ 46.2 |
| LLOC | 6 | Logical lines; fewer is more readable | 72.8Δ 19.4 |
| DeepSeek V4 Pro | 3.33 | 0–20; mean of three runs | 4.6Δ 48.9 |
| GPT-6.1 Sol | 7.67 | 0–20; mean of three runs | 2.4Δ 51.1 |
| BTTF | 0.469 | 0–1; higher is more readable | 37.0Δ 16.4 |
| Human | 3.38 | 1–5; original rating | 53.5 |
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. | 341.215 | −11.26 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 3.756 | −5.634 |
| Source linesThe number of non-empty source lines. | 10 | +4 |
Intercept 8.87 + feature contributions = -4.024 (log-odds).
Score = sigmoid(-4.024) = 0.018.
| Score | 0.668 |
|---|
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. | 139 | −2.222 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 139 | +1.438 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 11 | +0.647 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.057 | +0.392 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 9.871 | −0.272 |
Intercept 0.07 + feature contributions = -0.252 (log-odds).
Score = sigmoid(-0.252) = 0.437.
| Score | 0.044 |
|---|
| Score | 6 |
|---|
Run 1
The code is largely unreadable due to several issues. The structure is fragmented, starting with orphaned 'continue' statements inside bare 'except' blocks, indicating missing context and making intent ambiguous. There are unnecessary nested try/except blocks with silent failure handling. The indentation is inconsistent, with deeply nested blocks appearing abruptly. The code attempts a straightforward action—setting a working directory—but wraps it in an overly complex exception flow. Variable names like 'GApp.dynagen.dynamips.values()' add confusion without context. Reading flow is severely disrupted by the abrupt 'continue' statements and misaligned indentation. The granularity is mixed: some lines do too much, while others are empty except blocks. Overall, the lack of clear structure, silent error swallowing, and broken indentation make this code difficult to follow and maintain.
Run 2
The code is largely unreadable due to a lack of context, extreme indentation, and fragmented control flow. It begins with orphaned 'continue' statements nested inside try/except blocks, indicating deeply tangled logic. The intent is ambiguous—the reader cannot discern what loop or exception handling is occurring. Action granularity is poor, with multiple operations (exception handling, directory assignment, error dialog) crammed together without clear separation. The reading flow is disorganized; the code appears as a disjointed snippet without visible structure or surrounding logic. Naming is generic ('hypervisor', 'workingdir'), and the mixed use of string formatting and translation functions adds confusion. Without the surrounding function or class, the snippet is nearly impossible to evaluate meaningfully, and even as an excerpt it fails basic readability standards.
Run 3
This code is nearly unreadable due to severe structural issues. The snippet begins mid-statement with orphaned 'continue' and 'except' blocks, indicating broken control flow or missing context. The try-except placement is confusing—one except block catches nothing specific and continues silently, while the other catches a specific error but appears disconnected from the loop. Nesting is hard to evaluate due to incomplete context, but the indentation suggests deep or malformed nesting. Intent is ambiguous; the reader cannot determine whether the 'continue' statements belong to a loop or error handler. Code length is minimal but misleading, as it omits crucial surrounding logic. Action granularity is poor—multiple actions (setting working directories, error handling, UI feedback) are tangled together. Reading flow is severely disrupted, beginning abruptly and mixing exception handling with business logic. The lack of context, combined with silent exception swallowing and abrupt control flow, makes this code extremely difficult to understand, maintain, or debug.
Run 1
Code Structure: The working-directory update is logically grouped, but the fragment begins with orphaned control-flow statements and lacks surrounding context. Nesting: Heavy indentation and nested exception handling make the flow difficult to follow. Clarity of intent: The comment and descriptive names clarify the directory update, while the bare except and repeated continue statements obscure failure handling. Code length: The fragment is concise, although the error-dialog line is overly long. Action granularity: Most lines perform one action, but the dialog call combines translation, formatting, conversion, and display. Reading flow: The update loop reads naturally in isolation, but the abrupt opening, inconsistent visual depth, and legacy exception syntax interrupt readability.
Run 2
Code Structure: The working-directory update is logically grouped, but the fragment begins with orphaned continue and except statements, obscuring the surrounding organization. Nesting: Heavy indentation suggests substantial nesting, although the visible update loop is simple. Clarity of intent: The comment and workingdir assignment clearly convey the main purpose; the preceding exception handling lacks context and silently skips failures. Code length: The fragment is concise, but the error-dialog statement is excessively long. Action granularity: Most lines perform one action, while the error-dialog line combines translation, formatting, conversion, and display. Reading flow: The update block flows naturally from iteration to error handling, but the incomplete opening, bare except, deep indentation, and legacy exception syntax hinder readability.
Run 3
Code Structure: The working-directory update is logically grouped, but the fragment starts with orphaned continue and except statements, obscuring its surrounding structure. Nesting: Heavy indentation suggests deep nesting, while the visible try/for block adds further levels. Clarity of intent: The comment and assignment clearly explain the directory update, but bare exception handling silently ignores failures. Code length: The fragment is concise, though the error-dialog line is excessively long. Action granularity: Most lines perform one action; the dialog line combines translation, formatting, conversion, and display. Reading flow: The incomplete opening disrupts comprehension, but the subsequent update-and-report sequence is natural. Legacy exception syntax also reduces accessibility for modern Python readers.