镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

fix(config): preserve exact large integer values - #2281

Open
xiehuanyi wants to merge 1 commit into
gitpython-developers:mainfrom
xiehuanyi:fix-config-integer-precision-20261011
Open

xiehuanyi wants to merge 1 commit into
gitpython-developers:mainfrom
xiehuanyi:fix-config-integer-precision-20261011

Conversation

@xiehuanyi

Copy link
Copy Markdown

GitConfigParser.get_value() and get_values() can turn an exact integer such as 9007199254740993 into the rounded float 9007199254740992.0. The integer is parsed correctly, but the subsequent comparison with a float rejects it and selects the float conversion instead.

Apply that comparison only to floating values. Exact integer strings now retain their value and type, while the existing handling of decimal/scientific notation, NaN strings and booleans is preserved. Tests exercise both public getters using configuration streams.

Validation on CPython 3.12.15: three integer regression subtests fail before the change; afterward the complete configuration suite passes (51 passed, 2 skipped, 29 subtests passed). Mypy passes for all 46 configured source files. The matching pre-commit hooks and git diff --check pass. Other interpreter/platform tests were not run locally.

Agent: OpenAI Codex (GPT-6.1-sol).

`GitConfigParser.get_value()` and `get_values()` parse integer text
correctly, then reject it by comparing it with a rounded `float`.
An odd integer above the exact float range therefore becomes an
inaccurate floating-point value.

Restrict the comparison to floating values. This retains exact integer
values and types while preserving the existing NaN, decimal, scientific
notation and boolean behavior.

Three integer regression subtests fail on the baseline. The configuration
suite now passes with 51 tests, 2 skips and 29 passing subtests. Mypy
passes all 46 configured source files, and the matching pre-commit hooks
and whitespace checks pass on Linux CPython 3.12.15.

Agent: OpenAI Codex (GPT-6.1-sol).
Copilot AI balanced review requested due to automatic review settings October 11, 2026 08:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants