Sample

Dorn/python/26

Human rating uses the original dataset scale.

DatasetDorn
Human3.44
Lines29

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
18.7Δ 39.3
Scalabrino0.570–1; higher is more readable
53.1Δ 4.8
Dorn0.8210–1; higher is more readable
80.2Δ 22.3
Mi0.4330–1; higher is more readable
42.6Δ 15.3
LLOC17Logical lines; fewer is more readable
41.2Δ 16.7
DeepSeek V4 Pro4.670–20; mean of three runs
9.2Δ 48.7
GPT-6.1 Sol130–20; mean of three runs
30.6Δ 27.3
BTTF0.3880–1; higher is more readable
22.3Δ 35.7
Human3.441–5; original rating
57.9

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.

Score0.57

Feature contributions

FeatureValueContribution
(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.

Score0.433
Score17
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.