Google Sheets report loses columns with duplicate headers or long rows
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 90/100
Research direction
Start in taskuary/sheets.py at the header and row-to-dict conversion, then inspect the mocked Sheets test in tests/test_sheets_sharepoint.py. Run the focused test first, using the provided duplicate-header and longer-row input. Done means duplicate headers receive numbered suffixes and extra cells receive col keys, with the test passing.
Written by the indexing model from the issue text.
Description
The Google Sheets report loses a column when the header row has a duplicate, and drops cells when a data row is longer than the header.
Where: taskuary/sheets.py
head = [str(h) if str(h).strip() else f'col{i}' for i, h in enumerate(vals[0])]
rows = [dict(zip(head, r + [''] * (len(head) - len(r)))) for r in vals[1:]]
- headers
['Name', 'Name']become one dict key, so the first column's values vanish zipstops at the shorter list, so the extra cells of a long row vanish
Done when
- duplicate headers get a suffix:
Name,Name_2,Name_3 - extra cells get
col<i>keys (the naming blank headers already get)
Test - copy the mocked Sheets test in tests/test_sheets_sharepoint.py and feed it [['Name', 'Name', 'Qty'], ['a', 'b', '1', 'extra']].
Getting started: pip install -e ".[dev]", then python -m pytest -q (offline, a few seconds). UI work: cd website && npm ci && npm test. See CONTRIBUTING.md. One small PR with the change and its test is perfect.
- Dominant language
- Python
- Stars
- 116
- Forks
- 22
- Avg merge
- 1d 9m
- Merged PRs (30d)
- 11
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ldbumble/taskuary
-
enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
ldbumble/taskuary#70 · 1 comment ·
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
All issues in ldbumble/taskuary
Similar issues
-
pydanty:is-working
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
pydantic/pydantic-ai#8843 ·
Maintainers usually reply within 1 day
-
breaking change enhancement server
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
sktime/sktime#11310 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day