Sample

Dorn/python/17

Human rating uses the original dataset scale.

DatasetDorn
Human3.4
Lines49

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
6.1Δ 50.1
Scalabrino0.5190–1; higher is more readable
45.3Δ 10.9
Dorn0.6220–1; higher is more readable
54.0Δ 2.2
Mi0.560–1; higher is more readable
59.1Δ 2.8
LLOC32Logical lines; fewer is more readable
8.2Δ 48.1
DeepSeek V4 Pro5.330–20; mean of three runs
12.8Δ 43.5
GPT-6.1 Sol13.330–20; mean of three runs
34.7Δ 21.6
BTTF0.4150–1; higher is more readable
26.2Δ 30.1
Human3.41–5; original rating
56.3

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.2640.323−87.131
Source linesThe number of non-empty source lines.49+19.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.212−7.818

Intercept 8.87 + feature contributions = -66.479 (log-odds).
Score = sigmoid(-66.479) = 0.

Score0.519

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.50−0.734
Indentation frequencyHow rapidly indentation changes from line to line.39+0.612
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.84+0.551
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.39−0.474
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.48.894+0.274
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.83.98+0.108
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.088+0.092

Intercept 0.07 + feature contributions = 0.498 (log-odds).
Score = sigmoid(0.498) = 0.622.

Score0.56
Score32
Run 1

The code suffers from multiple readability issues. The structure is tangled, mixing unrelated operations (fixing libraries, copying aspell dictionaries, applying fixes, writing logs) within a single function without clear separation. Nesting is moderate but contributes to confusion, particularly with the deeply indented aspell copying block that handles multiple concerns. Intent is often ambiguous: variable names like 'fix', 'stripFW', and 'log' lack descriptive clarity, and the relinkOld function contains only commented-out shell code and a pass statement, making its purpose unclear. The code is unnecessarily verbose in places, with excessive log string concatenation and manual file writing that could be simplified. Action granularity is inconsistent—some lines perform multiple operations while others are unnecessarily split across lines. The reading flow is disorganized, jumping between different tasks without logical transitions or helper function extraction. Magic values like '/opt/local/share/aspell' and inline comments referencing issue numbers ('#7371') further obscure understanding. The commented-out shell code in relinkOld is particularly problematic as it suggests incomplete refactoring.

Run 2

The code suffers from inconsistent indentation, unclear variable names, and mixed responsibilities. The first loop condenses multiple actions per iteration (deletion, boolean checks, library moving) into a single conditional block, reducing readability. The aspell block nests multiple operations but uses confusing comments and hardcoded paths. The createSymlinks function is relatively clear but changes directories globally, adding hidden state changes. The final function contains dead code (commented-out shell commands) and a placeholder 'pass', providing no functionality. Reading flow is disrupted by the lack of section separation and inconsistent formatting. Overall, while individual lines are understandable, the structure lacks cohesion and clear intent, making the code difficult to follow.

Run 3

This code has significant readability issues. The structure is somewhat logical (steps 3.5-5) but suffers from inconsistent indentation and old Python 2 syntax throughout. Nesting is moderate but the conditionals in the first loop create unnecessary complexity with the delete-on-iteration pattern. Intent is fairly clear from comments but variable names like 'stripFW' and 'lnk/tar' are cryptic. The code is verbose in places - file writing could use a context manager - and the aspell section has a redundant existence check that suggests confusion. Multiple actions are crammed into single lines (e.g., extend + moveLibrary call). Comments reference shell commands and hacked solutions, indicating unclear purpose. The 'relinkOld' function is dead code with commented-out shell script, making the file feel like a work-in-progress rather than maintainable code.

Run 1

Code Structure: Numbered steps and separate functions provide organization, but dictionary copying is embedded in the main workflow, and relinkOld is an unfinished stub containing obsolete commented code. Nesting: Mostly shallow, with modest nesting in the dictionary-copy section. Clarity of intent: Comments and API calls explain the overall purpose, but abbreviated names such as lnk, tar, and stripFW, inconsistent capitalization, and missing context reduce clarity. Code length: Generally concise, though repeated path construction, redundant existence checks, and commented-out shell code add clutter. Action granularity: Each line generally performs one action, making operations easy to distinguish. Reading flow: The sequential copy, fix, and logging stages read naturally; inconsistent spacing, legacy Python syntax, and the trailing stub interrupt the flow.

Run 2

Code Structure: Sequential bundling steps and a separate symlink function provide reasonable organization, but the commented-out relinkOld stub adds clutter. Nesting: Mostly shallow, with moderate nesting in the dictionary-copy section. Clarity of intent: Step comments and descriptive operations explain the overall purpose, although abbreviations such as lnk, tar, and stripFW require interpretation. Code length: Generally concise, but redundant destination checks, repeated path expressions, and obsolete comments increase length unnecessarily. Action granularity: Statements generally perform one action per line, making individual operations easy to follow. Reading flow: The numbered steps establish a natural progression, but inconsistent spacing, legacy Python syntax, and the transition from a partial enclosing function to standalone functions interrupt readability.

Run 3

Code Structure: Sequential packaging steps and a separate symlink helper provide logical organization, but the unfinished relinkOld function and commented shell code add clutter. Nesting: Mostly shallow, with moderate nesting in the dictionary-copy block. Clarity of intent: Step comments and descriptive method names explain the main workflow, while abbreviations such as lnk, tar, and stripFW, inconsistent naming, and missing context reduce clarity. Code length: Generally concise, though repeated path expressions, redundant destination checks, and dead comments could be simplified. Action granularity: Each line generally performs one action, making individual operations easy to follow. Reading flow: The numbered steps create a natural progression, but the transition into helper functions and the unused stub interrupt it. Legacy Python syntax and inconsistent spacing also make the snippet less approachable.