Skip to content

Collect complete reverse-reading blocks after short reads - #669

Open
ShahadatTest wants to merge 1 commit into
mahmoud:masterfrom
ShahadatTest:fix/reverse-lines-short-reads
Open

ShahadatTest wants to merge 1 commit into
mahmoud:masterfrom
ShahadatTest:fix/reverse-lines-short-reads

Conversation

@ShahadatTest

Copy link
Copy Markdown

The change

reverse_iter_lines assumes read(n) fills each requested block. A seekable reader returning shorter nonempty chunks silently loses portions of lines because the next iteration moves to the preceding block. Complete each block with further reads before splitting it, stopping on EOF; the ordinary full-read path remains direct.

Eight regressions fail before the fix, covering text/bytes readers, two block sizes and trailing/no trailing newline. This handles short reads within reverse_iter_lines; #646 addresses a different class, MultiFileReader.

Validation on Windows:

  • Python 3.12 full unit suite and module doctests: 782 passed, 1 skipped, 22 subtests passed in 8.01s.
  • Python 3.10 focused regressions and affected module doctests: 8 passed in 0.11s.
  • New-test Flake8, basic source error checks, Python 3.7 syntax parsing and diff checks pass. Other interpreter/platform matrices were not run.

The backstory

Earlier contribution: #665. This was found during source inspection and controlled local probes; no personal application use or human review is claimed.

AI assistance

  • Harness/tooling: OpenAI Codex.
  • Model: GPT-6.
  • Original user prompt: new 20ta koro (make 20 new contributions). Codex investigated the bug, checked existing work and policies, implemented and tested the change, and prepared this PR.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant