fix: Properly set separating lines in summary#6
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 9 9
Lines 703 704 +1
=========================================
+ Hits 703 704 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
...umns/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Fixes a formatting bug in Diffly’s summary “Columns” section where row separators could disappear when a column is hidden (and thus has zero top-change entries), even though other columns still show top changes.
Changes:
- Adjusted column-summary rendering so separators are driven by whether any column will display top changes, instead of the current row’s top-change count.
- Added a hidden-columns fixture generator + updated snapshot fixtures reflecting the new separator behavior.
- Updated the Summary user guide notebook output for the hidden-columns example.
Reviewed changes
Copilot reviewed 53 out of 53 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| diffly/summary.py | Fixes separator insertion logic in the “Columns” section when top changes are present globally but absent for specific rows (e.g., hidden columns). |
| docs/guides/features/summary.ipynb | Updates documentation output to include the missing horizontal separator in the hidden-columns example. |
| tests/summary/fixtures/hidden_columns/test_hidden_columns.py | Adds a fixture generator covering the hidden-columns failure case. |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_True_top_True_slim_True_sample_rows_True_sample_pk_True.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_True_top_True_slim_True_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False_hidden.txt | Adds/updates “hidden columns” snapshot variant (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_True_top_False_slim_True_sample_rows_True_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_True_top_False_slim_True_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_True_top_False_slim_False_sample_rows_True_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_True_top_False_slim_False_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_False_top_True_slim_True_sample_rows_True_sample_pk_True.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_False_top_True_slim_True_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_False_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_False_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_False_top_False_slim_True_sample_rows_True_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_False_top_False_slim_True_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_False_top_False_slim_False_sample_rows_True_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_True_perfect_False_top_False_slim_False_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=True). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_True_top_True_slim_True_sample_rows_True_sample_pk_True.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_True_top_True_slim_True_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False_hidden.txt | Adds/updates “hidden columns” snapshot variant (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_True_top_False_slim_True_sample_rows_True_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_True_top_False_slim_True_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_True_top_False_slim_False_sample_rows_True_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_True_top_False_slim_False_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_False_top_True_slim_True_sample_rows_True_sample_pk_True.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_False_top_True_slim_True_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_False_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_False_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_False_top_False_slim_True_sample_rows_True_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_False_top_False_slim_True_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_False_top_False_slim_False_sample_rows_True_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/hidden_columns/gen/pretty_False_perfect_False_top_False_slim_False_sample_rows_False_sample_pk_False.txt | Updated snapshot output for hidden-columns fixture (pretty=False). |
| tests/summary/fixtures/many_pk_columns/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/many_pk_columns/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/many_pk_columns/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/many_pk_columns/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/lost_rows_only/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/lost_rows_only/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/lost_rows_only/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/lost_rows_only/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/gained_rows_only/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/gained_rows_only/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/gained_rows_only/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/gained_rows_only/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/equal_non_empty_different_columns/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/equal_non_empty_different_columns/gen/pretty_True_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/equal_non_empty_different_columns/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_True_sample_pk_True.txt | Updates snapshots due to adjusted separator rendering. |
| tests/summary/fixtures/equal_non_empty_different_columns/gen/pretty_False_perfect_True_top_True_slim_False_sample_rows_False_sample_pk_False.txt | Updates snapshots due to adjusted separator rendering. |
Comments suppressed due to low confidence (1)
tests/summary/fixtures/hidden_columns/test_hidden_columns.py:16
prettyis parametrized but not used; the test loops over[True, False]and writes both outputs on every run, so the parametrization causes duplicate work and repeated writes. Consider either using theprettyparameter directly (like other fixture generator tests) or removing the parametrization and keeping the loop, so the test runs only once.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Motivation
See #5. There was no line below
loyalty_card_idas this specific row had zero change counts.Changes