Sample

pyint-54916ca8dfb8-I12

Inline all eligible single-use intermediate local variables

Matched original source

Lines84

Scores

MethodScoreScale
Posnett00–1; higher is more readable
Dorn0.5730–1; higher is more readable
Mi0.7690–1; higher is more readable
LLOC36Logical lines; fewer is more readable
DeepSeek V4 Pro17.330–20; mean of three runs
GPT-6.1 Sol180–20; mean of three runs
BTTF0.4140–1; higher is more readable

Views

Source code

from functools import total_ordering from ._funcs import astuple from ._make import attrib, attrs @total_ordering @attrs(eq=False, order=False, slots=True, frozen=True) class VersionInfo: """ A version object that can be compared to tuple of length 1--4: >>> attr.VersionInfo(19, 1, 0, "final") <= (19, 2) True >>> attr.VersionInfo(19, 1, 0, "final") < (19, 1, 1) True >>> vi = attr.VersionInfo(19, 2, 0, "final") >>> vi < (19, 1, 1) False >>> vi < (19,) False >>> vi == (19, 2,) True >>> vi == (19, 2, 1) False .. versionadded:: 19.2 """ year = attrib(type=int) minor = attrib(type=int) micro = attrib(type=int) releaselevel = attrib(type=str) @classmethod def _from_version_string(cls, s): """ Parse *s* and return a _VersionInfo. """ v = s.split(".") if len(v) == 3: v.append("final") return cls( year=int(v[0]), minor=int(v[1]), micro=int(v[2]), releaselevel=v[3] ) def _ensure_tuple(self, other): """ Ensure *other* is a tuple of a valid length. Returns a possibly transformed *other* and ourselves as a tuple of the same length as *other*. """ if self.__class__ is other.__class__: other = astuple(other) if not isinstance(other, tuple): raise NotImplementedError if not (1 <= len(other) <= 4): raise NotImplementedError return astuple(self)[: len(other)], other def __eq__(self, other): try: us, them = self._ensure_tuple(other) except NotImplementedError: return NotImplemented return us == them def __lt__(self, other): try: us, them = self._ensure_tuple(other) except NotImplementedError: return NotImplemented # Since alphabetically "dev0" < "final" < "post1" < "post2", we don't # have to do anything special with releaselevel for now. return us < them def __hash__(self): return hash((self.year, self.minor, self.micro, self.releaselevel))

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.1843.139−60.824
Source linesThe number of non-empty source lines.84+33.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.465−6.698

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

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.85−1.973
Indentation frequencyHow rapidly indentation changes from line to line.57+1.234
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.57−0.887
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.83.862+0.762
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.78.953+0.469
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.78.965+0.321
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.066+0.299

Intercept 0.07 + feature contributions = 0.295 (log-odds).
Score = sigmoid(0.295) = 0.573.

Score0.769
Score36
Run 1

The code is highly readable with a clear logical structure: class definition, attributes, classmethod, helper, then dunder comparisons. Nesting is minimal (try-except with a single if-guard). Intent is explicit through descriptive method and variable names. Code length is concise without unnecessary verbosity. Each line generally performs one action, enhancing clarity. The reading flow is natural due to consistent organization and docstrings explaining non-obvious logic.

Run 2

The code is highly readable. It has a clear class structure with a focused responsibility: version representation and comparison. The `@attrs` and `@total_ordering` decorators simplify the class, avoiding boilerplate. Nesting is minimal—only necessary try/except blocks and one conditional. Intent is well-communicated through descriptive method names and docstrings with examples. The code is concise: methods are short and use helper functions (`_ensure_tuple`) to avoid repetition. Action granularity is mostly one action per line, with clean attribute assignments. The reading flow is logical, moving from class definition to parsing, validation, and comparison. Minor notes: `_from_version_string` has a hardcoded append of 'final' without obvious domain context, and `_ensure_tuple` mixes validation and transformation, but these are acceptable. Overall, the code is exemplary in clarity and maintainability.

Run 3

The code is well-structured and highly readable. The VersionInfo class uses clear class-level attributes and a logical grouping of methods. Nesting is shallow, with try/except blocks kept concise. Each method has a clear purpose, aided by docstrings and examples. Action granularity is generally one action per line, though the _from_version_string return statement packs multiple int conversions into one line, slightly reducing readability. The reading flow is natural, following class definition, attributes, constructor, helper, and comparison operators. Minor deductions for the slightly dense return statement and reliance on decorators/imports that may not be immediately obvious to unfamiliar readers, but overall the code is clear and maintainable.

Run 1

Code Structure: Well-organized class with distinct parsing, normalization, comparison, and hashing methods; shared comparison logic avoids duplication. Nesting: Shallow conditionals and straightforward try/except blocks make execution easy to follow. Clarity of intent: Descriptive method names, docstrings, examples, and the release-level comment explain behavior clearly, though abbreviated variables such as s and v and the exception-based unsupported-type signaling add minor ambiguity. Code length: Compact implementation with useful documentation and little unnecessary repetition. Action granularity: Statements generally perform one action per line; the constructor's multiple keyword arguments remain readable. Reading flow: Fields precede helper methods and comparison operations in a natural sequence. Minor distractions include the docstring referring to _VersionInfo rather than VersionInfo and reliance on decorator-generated behavior.

Run 2

Code Structure: The class is logically organized, with fields, parsing, shared comparison validation, comparison methods, and hashing clearly separated. Nesting: Shallow conditionals and short try/except blocks keep complexity low. Clarity of intent: Descriptive method names, docstrings, examples, and the release-level comment explain behavior well; abbreviated variables such as s and v slightly reduce clarity. Using NotImplementedError for internal control flow is less intuitive. Code length: Methods are concise, and shared validation avoids substantial duplication; the lengthy class docstring provides useful examples. Action granularity: Statements generally perform one action per line, with compact constructor arguments remaining readable. Reading flow: The progression from data definition through construction and comparison is natural and consistent, though understanding generated behavior requires familiarity with attrs and total_ordering.

Run 3

Code Structure: Well organized into a single cohesive class, with shared comparison preparation extracted into a helper. Nesting: Shallow conditionals and straightforward try/except blocks keep complexity low. Clarity of intent: Descriptive fields, docstrings, comparison examples, and a release-ordering comment explain the behavior clearly; abbreviated names such as s and v slightly reduce clarity. Code length: Concise overall, with useful documentation and minimal duplication between comparison methods. Action granularity: Statements generally perform one action each, and formatting separates operations cleanly. Reading flow: Fields, parsing, normalization, comparisons, and hashing follow a natural progression. Minor readability drawbacks include using NotImplementedError for internal control flow, requiring familiarity with attrs decorators, and a docstring referring to _VersionInfo rather than VersionInfo.