Sample
Dorn/python/26
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 18.7Δ 39.3 |
| Scalabrino | 0.57 | 0–1; higher is more readable | 53.1Δ 4.8 |
| Dorn | 0.821 | 0–1; higher is more readable | 80.2Δ 22.3 |
| Mi | 0.433 | 0–1; higher is more readable | 42.6Δ 15.3 |
| LLOC | 17 | Logical lines; fewer is more readable | 41.2Δ 16.7 |
| DeepSeek V4 Pro | 4.67 | 0–20; mean of three runs | 9.2Δ 48.7 |
| GPT-6.1 Sol | 13 | 0–20; mean of three runs | 30.6Δ 27.3 |
| BTTF | 0.388 | 0–1; higher is more readable | 22.3Δ 35.7 |
| Human | 3.44 | 1–5; original rating | 57.9 |
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. | 1479.331 | −48.818 |
| Source linesThe number of non-empty source lines. | 29 | +11.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. | 5.335 | −8.003 |
Intercept 8.87 + feature contributions = -36.351 (log-odds).
Score = sigmoid(-36.351) = 0.
| Score | 0.57 |
|---|
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. | 66.9 | +0.832 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 66.9 | +0.275 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 30 | −0.026 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 21 | −0.011 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 28.809 | −0.007 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.097 | −0.005 |
Intercept 0.07 + feature contributions = 1.526 (log-odds).
Score = sigmoid(1.526) = 0.821.
| Score | 0.433 |
|---|
| Score | 17 |
|---|
Run 1
The code is poorly readable due to several issues. The first block appears detached from any function context and lacks indentation consistency. It performs multiple actions without clear separation or comments explaining the workflow. The second function, createSymlinks, is somewhat clearer but relies on print statements for logging and changes directories without context or error handling. The third function, relinkOld, is essentially dead code containing only a comment block and a pass statement, providing no executable logic. Overall, the code lacks logical organization, has inconsistent indentation, unclear purpose, and fails to follow Python best practices such as using context managers for file operations and proper function structure. The mixture of dead code, shell-like comments, and abrupt transitions makes it difficult to follow the intended flow.
Run 2
The code suffers from several readability issues. Structure is fragmented: a loop and logging block appear before the function definition, suggesting missing context. Nesting is minimal but flow is disorganized. Clarity of intent is poor—`fixes`, `log`, and `links` are ambiguous, and the commented shell code adds noise. Code length is moderate but includes large commented blocks. Action granularity is mixed; `os.symlink(tar, os.path.basename(lnk))` combines two operations, while other lines are single-purpose. Reading flow is disrupted by abrupt function starts and print statements interleaved with filesystem changes. The `relinkOld` function is essentially a stub with dead code, making it unclear. Overall, the code is difficult to follow due to missing surrounding context and unclear naming.
Run 3
The code exhibits multiple readability issues. There is no surrounding function or class context for the first block, making its purpose unclear. It mixes indentation levels with tabs and spaces inconsistently. The 'relinkOld' function contains commented-out shell code and a 'pass' statement, indicating incomplete or dead code. Naming conventions are inconsistent (e.g., 'file', 'log', 'e', 'lnk', 'tar'), obscuring intent. The logging and symlink operations are procedural and lack helper functions, leading to repetitive file handling. Reading flow is interrupted by print debugging statements and missing docstrings. The overall structure is fragmented and lacks modularity. While individual lines are short, the lack of organization, unclear purpose, and incomplete sections significantly harm readability.
Run 1
Code Structure: Named functions separate symlink creation and legacy relinking, but the opening fragment lacks context and the commented-out stub adds clutter. Nesting: Shallow loops keep control flow easy to follow. Clarity of intent: Function names and the logging comment convey purpose, though abbreviated variables such as lnk, tar, and e, plus inconsistent naming styles, reduce clarity. Code length: Active code is concise, but the inactive shell-script block and excess blank lines are unnecessary. Action granularity: Statements generally perform one action per line, making operations easy to distinguish. Reading flow: Execution proceeds naturally within each section, but repeated path expressions, process-wide directory changes, and the transition into an unfinished legacy function interrupt the flow.
Run 2
Code Structure: Functions separate symlink creation and relinking, but the opening fragment lacks context and relinkOld is an unused stub dominated by commented shell code. Nesting: Shallow loops keep the code easy to scan. Clarity of intent: Function names and logging statements communicate the main operations, though abbreviations such as lnk, tar, and e, uppercase parameters, and legacy code reduce clarity. Code length: Active code is concise, but excessive whitespace and the commented-out implementation add clutter. Action granularity: Each line generally performs one action, although repeated path expressions make some statements visually busy. Reading flow: Operations proceed naturally from applying fixes to logging and from changing directories to creating symlinks, but the incomplete opening, inconsistent naming and spacing, and obsolete stub interrupt the flow.
Run 3
Code Structure: Functions separate symlink creation and relinking, but the opening fragment lacks context and relinkOld is an unused-looking stub. Nesting: Shallow loops keep the code easy to follow. Clarity of intent: Function names and straightforward operations convey purpose, although abbreviated variables such as lnk, tar, and e, uppercase parameters, and commented shell code reduce clarity. Code length: The active code is concise, but the commented-out implementation and excessive blank lines add clutter. Action granularity: Each statement generally performs one action, making individual steps easy to scan. Reading flow: Logging and symlink operations follow natural sequences, but inconsistent formatting, legacy Python syntax, and the transition from an incomplete fragment to standalone functions interrupt the flow.