Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Google Sheets report loses columns with duplicate headers or long rows

Open Beginner friendly
#58 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
90/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
python
Domain
data

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

bug connector good first issue

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
  • zip stops 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ldbumble/taskuary

All issues in ldbumble/taskuary

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.