Sample
pyint-60732fa299d3-I11
Split eligible integer literals into pairs of short-named intermediate variables
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Dorn | 0.705 | 0–1; higher is more readable |
| Mi | 0.495 | 0–1; higher is more readable |
| LLOC | 19 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 15 | 0–20; mean of three runs |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs |
| BTTF | 0.74 | 0–1; higher is more readable |
Views
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. | 722.67 | −23.848 |
| 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. | 4.687 | −7.03 |
Intercept 8.87 + feature contributions = -10.409 (log-odds).
Score = sigmoid(-10.409) = 0.
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.043 | +0.522 |
| 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. | 75.9 | +0.45 |
| 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. | 29 | +0.266 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 30 | −0.026 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 28.896 | −0.006 |
Intercept 0.07 + feature contributions = 0.87 (log-odds).
Score = sigmoid(0.87) = 0.705.
| Score | 0.495 |
|---|
| Score | 19 |
|---|
Run 1
The code imports many modules that are not used within the provided snippet, which adds clutter and obscures the actual functionality. The class definition is short and follows a standard validator pattern, which is good, but the purpose is only clear if the reader knows the BaseValidator API. The message uses ngettext_lazy correctly for pluralization, but the string format is verbose. The nesting is minimal and each method contains a single action, which supports readability. Overall, the structure is logical but the unused imports and lack of surrounding context reduce clarity. The code is concise in length, but the presence of irrelevant imports makes it less readable than it could be. Action granularity is appropriate, and reading flow is natural once the validator pattern is understood.
Run 2
The code is generally readable despite some minor concerns. It has clear logical organization, with imports grouped logically and a single class definition with clear method names. Nesting is flat, with no complex control structures. Intent is fairly clear—a Django validator class for minimum length—though some context (like BaseValidator's definition) is missing. Code length is concise; no unnecessary repetition. Action granularity is good, with one meaningful operation per line in methods. Reading flow is natural: imports, class decorator, class definition, methods. Minor deductions: the missing BaseValidator import could confuse readers, and some imported names (ipaddress, math, re, Path, urlsplit, MAX_URL_LENGTH, regex helpers) appear unused, slightly obscuring purpose. Overall, the code is well-structured and easy to follow.
Run 3
The code is well-structured and readable. It clearly separates imports, class decorator, class definition, and methods. Indentation is consistent, and nesting is minimal. The intent is evident: define a custom validator. Method names are self-explanatory; the `compare` and `clean` methods are each short and do one thing. The use of Django's `ngettext_lazy` is idiomatic. While the repeated import lines add length, they follow standard Python/Django conventions. Overall, the code is concise, flat, and easy to follow.
Run 1
Code Structure: The validator is logically organized, with class metadata followed by small methods, although BaseValidator is not defined or imported in the snippet and most imports are unused. Nesting: Minimal nesting makes the code easy to scan. Clarity of intent: The class name, error message, and straightforward comparison clearly convey minimum-length validation; generic parameter names slightly reduce clarity. Code length: The implementation is concise, but unnecessary imports add clutter. Action granularity: Each method performs one clear action, with no compound statements. Reading flow: The progression from message and error code to comparison and length extraction is natural, and the multiline message remains readable.
Run 2
Code Structure: Imports and a focused validator class are logically organized, though BaseValidator is not defined or imported in the snippet and several imports are unused. Nesting: Minimal nesting makes the code easy to scan. Clarity of intent: The class name, validation message, and simple methods clearly convey minimum-length validation; generic parameter names slightly reduce clarity. Code length: Concise implementation, with unnecessary imports adding clutter. Action granularity: Each method performs one clear operation, and statements are cleanly separated. Reading flow: The progression from class metadata to comparison and length calculation is natural, although understanding the complete validation behavior requires familiarity with BaseValidator.
Run 3
Code Structure: The validator class logically groups its message, error code, comparison, and length calculation, though BaseValidator is not defined or imported in the snippet. Nesting: Minimal nesting makes the code easy to scan. Clarity of intent: MinLengthValidator, min_length, and the validation message clearly communicate purpose; generic parameter names a, b, and x are less descriptive. Code length: The implementation is concise, but numerous unused imports add clutter. Action granularity: Each statement performs a single action, and the multiline message is cleanly formatted. Reading flow: Class metadata followed by short methods provides a natural progression, although the unrelated imports slightly distract.