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

šŸ› needs: inf / nan accepted in a number field and written Infinity / NaN by hash, fingerprint and needs.json

Open
#2,217 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
15/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
json, python
Domain
data

Research direction

This is a contract decision, not a code change yet. The payload names the number field, the hash and fingerprint kinds, and needs.json as the places where inf/nan leak out as Python Infinity/NaN tokens. Start by reading how each of those paths serializes numbers, then wait for a maintainer to choose between refusing these values with a finding and defining their text. Done means one agreed contract, mirrored in useblocks/ubcode#4068.

Written by the indexing model from the issue text.

Description

bug pkg: sphinx-needs
What

A number field accepts inf and nan as authored values and as a default, and the hash / fingerprint kinds (and needs.json) then write Python's Infinity / NaN tokens — valid for Python's json, not for JSON itself, so a strict reader (and ubCode, whose JSON writer refuses them) cannot read the file, and the digest text is one no other tool can reproduce.

ubCode's side of the same input is useblocks/ubcode#4068 (the default is dropped and an authored nan is exported as 0, silently). Both tools should agree on one contract.

Do

Decide: refuse inf / nan in a number field with a finding (my recommendation: JSON has no such numbers, and the derived-values contract wants byte-identical digests), or define their text. Then mirror in ubCode.

Dominant language
Python
Stars
309
Forks
103
Avg merge
11h 26m
Merged PRs (30d)
118

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

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 useblocks/sphinx-needs

All issues in useblocks/sphinx-needs

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.