Skip to content

Loosen the whole-day float tolerance to 1e-8 - #53

Merged
dylanjm merged 1 commit into
anchored-oracle-cleanupfrom
float-tolerance
Oct 15, 2026
Merged

dylanjm merged 1 commit into
anchored-oracle-cleanupfrom
float-tolerance

Conversation

@j-bryan

@j-bryan j-bryan commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

Related to #38 (does not close it). Stacked on #52, in stack #51.

What changes

_FLOAT_TOLERANCE in dcaf/shared/time.py goes from 1e-12 to 1e-8. The tolerance decides whether a requested fractional period tail counts as a whole number of days, or as a partial day that is dropped with a PeriodTruncationWarning. 1e-8 days is under 1 ms (and 1e-8 of a year is about 0.3 s), which is still strict for a library whose base unit of time is the day.

What users will see: a requested tail within 1e-8 days of a whole day now rounds to that day with no warning.

Testing

Adds reference cases just inside (14 − 5e-9) and just outside (14 − 2e-8) the new tolerance to test_time_helpers.py. uv run ruff check, uv run ruff format --check, uv run mypy dcaf/, and uv run pytest pass (1015 tests).

🤖 Generated with Claude Code

@j-bryan
j-bryan added this pull request to stack #51 October 13, 2026 22:05
Fractional period tails within 1e-8 days of a whole day now round to that day instead of being
truncated with a PeriodTruncationWarning. 1e-8 days is under 1 ms, which is already strict for a
library whose base unit of time is the day.

Co-Authored-By: Claude <noreply@anthropic.com>

@dylanjm dylanjm left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good change.

@dylanjm
dylanjm merged commit 199fbf6 into main Oct 15, 2026
1 check passed
@dylanjm
dylanjm deleted the float-tolerance branch October 15, 2026 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants