Skip to content

fix: no OverflowError at the datetime range ends - #22

Merged
tobixen merged 1 commit into
mainfrom
fix/overflow-extreme-dates
Oct 14, 2026
Merged

tobixen merged 1 commit into
mainfrom
fix/overflow-extreme-dates

Conversation

@tobixen

@tobixen tobixen commented Oct 14, 2026

Copy link
Copy Markdown
Member

Commit message:

Within a day of datetime.min / datetime.max, a value cannot be moved
into the process or a pytz time zone (OverflowError, or ValueError for
naive values), nor shifted by a duration. So a full-range search
failed outside UTC, and one component dated in year 1 or 9999 broke
every time-range search over its calendar. Keep such values in their
own time zone and saturate the arithmetic. When a search bound is
near an end, narrow the recurrence expansion window by the longest
occurrence plus a day; ordinary searches are expanded as before.

Fixes #19

Prompt: What? Issue #19 sounds serious ... [based on a quick reading of the title alone, in shock since I just released 1.2.0 - however, this is not a bug impacting real world users]
Followup-Prompt: Just make a PR and skip releasing 1.2.1 as for now

Assisted-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
Reviewed-by: Tobias Brox tobias@redpill-linpro.com

🤖 Generated with Claude Code

Within a day of datetime.min / datetime.max, a value cannot be moved
into the process or a pytz time zone (OverflowError, or ValueError for
naive values), nor shifted by a duration.  So a full-range search
failed outside UTC, and one component dated in year 1 or 9999 broke
every time-range search over its calendar.  Keep such values in their
own time zone and saturate the arithmetic.  When a search bound is
near an end, narrow the recurrence expansion window by the longest
occurrence plus a day; ordinary searches are expanded as before.

Fixes #19

Prompt: What?  Issue #19 sounds serious ... [based on a quick reading of the title alone, in shock since I just released 1.2.0 - however, this is not a bug impacting real world users]
Followup-Prompt: Just make a PR and skip releasing 1.2.1 as for now

Assisted-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
@tobixen
tobixen merged commit e8e1b89 into main Oct 14, 2026
12 checks passed
@tobixen
tobixen deleted the fix/overflow-extreme-dates branch October 14, 2026 16:21
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.

OverflowError on a datetime.min..datetime.max search outside UTC

1 participant