You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Clarify the different offset handling of iter_rows() and to_python() in the README and iterator docstring. For cells C3/D3, the iterator yields two blank rows of width two before the data, while to_python(skip_empty_area=False) retains the leading columns as well.
Explain how the second item of sheet.start identifies the column offset for a non-empty sheet. Closes#177.
Evidence
A synthetic C3/D3 workbook reproduces the documented behaviour with the published 0.8.2 Windows wheel.
Windows Python 3.12: pytest tests/test_base.py -q passed all 34 cases with the released wheel; mypy and stubtest also passed.
Linux Python 3.12.14 with pandas 3.0.6: compiled the current extension with pip install -e ., then pytest reported 51 passed and one existing expected failure for the OdfReader timedelta case.
pre-commit run --all-files passed every hook, including Rust formatting, Clippy, mypy and stubtest. Whitespace checks pass, and the checked Linux patch matches this PR exactly.
The stub's parsed structure is identical after removing docstrings.
Risk
This is a reversible documentation change affecting the README and iterator docstring. The offset explanation is checked against the current Rust source and the released wheel.
Unverified
Rust unit tests, the full Windows suite, and the remaining Python/OS and PyEmscripten combinations were not run. Upstream CI awaits maintainer approval.
CI workflow maintenance
Use Ubuntu 24.04 for the affected Linux jobs. Keep the existing event, permission and test-matrix contracts.
Pin the computed Linux runner fallback while preserving explicit, Windows and macOS selections.
Evidence
The previous head reported 24 matching action-runtime or runner annotations. Actionlint reports no new diagnostics against the previous workflow files; existing diagnostics remain. The Git whitespace check passes.
Risk
Action or runner upgrades can affect CI behaviour. The workflow changes can be reverted.
Unverified
Hosted CI observed at 2026-10-17T11:24:12Z for 998777d: 2 skipped, 32 success. No action-runtime or Ubuntu-label annotations were reported. Application tests were not run locally for these workflow changes.
Summary by CodeRabbit
Documentation
Clarified how iter_rows() handles leading empty rows and columns, including how to locate the first included column.
Documented that to_python() skips empty areas by default, and that skip_empty_area=False preserves the row and column offsets.
Chores
Updated Linux CI jobs to use Ubuntu 24.04; other operating systems retain their existing runner defaults.
No actionable comments were generated in the recent review. 🎉
ℹ️ Recent review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Advanced
Run ID: b078ee3f-1a21-42f0-855b-3cf5872d5522
📥 Commits
Reviewing files that changed from the base of the PR and between 8f92b06 and 998777d.
📒 Files selected for processing: 1
.github/workflows/CI.yml
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.
📝 Walkthrough
The README and iter_rows() docstring now describe how iteration handles leading empty rows and columns. The CI workflow selects Ubuntu 24.04 for Linux runners.
The documentation states that iter_rows() includes leading empty rows but omits columns before the used range. It describes the column offset from sheet.start and identifies to_python(skip_empty_area=False) as the option to retain both offsets.
CI jobs use Ubuntu 24.04 for Linux runners. Explicit matrix runner values take precedence, and non-Linux jobs retain their operating system’s -latest runner.
The documentation accurately describes sparse-sheet offsets, and no actionable merge risk is established by the supplied runner changes.
Pre-merge checks: 4 · 1
Failed checks: 1 warning
Check name
Status
Explanation
Resolution
Out of Scope Changes check
The workflow changes replace ubuntu-latest with ubuntu-24.04 and change runner fallback selection. These changes do not implement or support the documentation requirement in issue #177.
Remove the unrelated .github/workflows/CI.yml changes from this pull request, or link them to a separate issue and submit them separately.
Passed checks: 4 passed
Check name
Status
Explanation
Linked Issues check
Issue #177 permits documentation clarification. README.md and CalamineSheet.iter_rows documentation explain the leading row and column offsets, the C3/D3 example, and the difference from `to_p…
Docstring Coverage
Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 1 files. (1 skipped: 1 …
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title clearly and concisely describes the main change: documentation that clarifies column offsets for the row iterator.
Full details: Linked Issues check
Explanation
Issue #177 permits documentation clarification. README.md and CalamineSheet.iter_rows documentation explain the leading row and column offsets, the C3/D3 example, and the difference from to_python(skip_empty_area=False). The reported checks support the documented behavior.
Full details: Docstring Coverage
Explanation
Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 1 files. (1 skipped: 1 unsupported.)
Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
Create a new PR
Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
A rabbit reads the rows with care And notes which columns start elsewhere The README tells the offsets right Ubuntu runners join the flight The carrots wait; the checks are green A tidy patch for sheets unseen
Comment @coderabbitai help to get the list of available commands.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Clarify the different offset handling of
iter_rows()andto_python()in the README and iterator docstring. For cells C3/D3, the iterator yields two blank rows of width two before the data, whileto_python(skip_empty_area=False)retains the leading columns as well.Explain how the second item of
sheet.startidentifies the column offset for a non-empty sheet. Closes #177.Evidence
pytest tests/test_base.py -qpassed all 34 cases with the released wheel; mypy and stubtest also passed.pip install -e ., thenpytestreported 51 passed and one existing expected failure for the OdfReader timedelta case.pre-commit run --all-filespassed every hook, including Rust formatting, Clippy, mypy and stubtest. Whitespace checks pass, and the checked Linux patch matches this PR exactly.Risk
This is a reversible documentation change affecting the README and iterator docstring. The offset explanation is checked against the current Rust source and the released wheel.
Unverified
Rust unit tests, the full Windows suite, and the remaining Python/OS and PyEmscripten combinations were not run. Upstream CI awaits maintainer approval.
CI workflow maintenance
Use Ubuntu 24.04 for the affected Linux jobs. Keep the existing event, permission and test-matrix contracts.
Pin the computed Linux runner fallback while preserving explicit, Windows and macOS selections.
Evidence
The previous head reported 24 matching action-runtime or runner annotations. Actionlint reports no new diagnostics against the previous workflow files; existing diagnostics remain. The Git whitespace check passes.
Risk
Action or runner upgrades can affect CI behaviour. The workflow changes can be reverted.
Unverified
Hosted CI observed at 2026-10-17T11:24:12Z for 998777d: 2 skipped, 32 success. No action-runtime or Ubuntu-label annotations were reported. Application tests were not run locally for these workflow changes.
Summary by CodeRabbit
iter_rows()handles leading empty rows and columns, including how to locate the first included column.to_python()skips empty areas by default, and thatskip_empty_area=Falsepreserves the row and column offsets.