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

Delimiter sniffing in the loaders has uncovered edge cases (quoted fields, stray quotes, empty samples)

Closed Beginner friendly
#964 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
79/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
javascript, python
Domain
data, testing

Research direction

Read faircode/loaders.py at _logical_row_delimiter_counts() and _sniff_delimiter(), then review the existing cases in tests/test_loaders.py. Add table driven cases for empty samples, quote boundaries, stray quotes, ties, quoted delimiters and single column input, and feed the same inputs to E.sniffDelimiter in a parity test. Done means the edge cases are covered and Python and web results agree.

Written by the indexing model from the issue text.

Description

enhancement good first issue

Where: faircode/loaders.py _logical_row_delimiter_counts() / _sniff_delimiter() (lines 107, 119, 130, 137, 142), tests/test_loaders.py.

Current gap: the logic that counts delimiters per logical row (so a quoted newline does not split a row) and picks the delimiter has branches no test reaches: an empty sample, a quote that closes at the end of the sample, a stray quote, and the tie-breaking when two delimiters score the same. The web engine has its own sniffDelimiter and the two are meant to agree.

Repro:

$ python3 -m pytest tests -q -m "not slow" --cov=faircode.loaders --cov-report=term-missing | grep "loaders.py"
faircode/loaders.py ... 92% ... 58-59, 107, 119, 130, 137, 142

Suggested approach: table-driven tests of _sniff_delimiter over those inputs (comma, tab, semicolon, pipe, ties, quoted delimiters, a single column), with the same inputs fed to E.sniffDelimiter in a parity test.

Dominant language
HTML
Stars
47
Forks
45
Avg merge
2h 55m
Merged PRs (30d)
54

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 yakew7/Fair-Code

All issues in yakew7/Fair-Code

Similar issues

More Data Engineering issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.