Skip to content

Point the OWID submodule at the date range fix - #70

Merged
jwrosewell merged 1 commit into
mainfrom
chore/owid-date-range
Aug 31, 2026
Merged

Point the OWID submodule at the date range fix#70
jwrosewell merged 1 commit into
mainfrom
chore/owid-date-range

Conversation

@jwrosewell

Copy link
Copy Markdown
Contributor

What changed

The owid-python submodule moves from 0944322 to 0a77e39e, the merged commit on main of the 51Degrees fork. That commit (SWAN-community/owid-python#3) refuses a version 2 or 3 minute count above 4,197,074,399 before the arithmetic, so a date past the end of the year 9999, where datetime stops, reports IMPLEMENTATION_CAPACITY_EXCEEDED instead of raising OverflowError. The four byte minute count of the wire format runs to 15 February 10186, and the same bytes read fine where the date type is wider, so the status is the runtime's limit and not a fault in the data. Nothing else changed in the library since the previous pin, which the hardening change (#68) set. The copy under fiftyone_pipeline_did/src/fiftyone_pipeline_did/_owid is made by ci/copy-owid-source.ps1 at build time and is not tracked, so the pin is the only library change in this repository.

In this repository:

  • FodIdParseStatus.IMPLEMENTATION_CAPACITY_EXCEEDED and the status table in fiftyone_pipeline_did/readme.md now say the status also covers such a date. The member already carried the same name and value as the OWID one, so the vocabulary test needed no change and the public API is unchanged.
  • tests/test_fodid.py gains two tests. A signed envelope whose minute count is 0xFFFFFFFF reports IMPLEMENTATION_CAPACITY_EXCEEDED through FodId.try_from_base64 and FodId.try_from_byte_array, with the OWID reader's own status checked first so the test shows where the status comes from, and FodId.from_base64 and FodId.from_byte_array raise OwidError naming the status for the same bytes.

Verification

  • ci/copy-owid-source.ps1 copied the source at 0a77e39e into the package.
  • tox -e py in fiftyone_pipeline_did: 143 passed, 2 skipped, no failures.
  • The two new tests were run by name and both passed.

Produced with AI assistance under James Rosewell's direction and needs human review.

owid-python moves from 0944322 to 0a77e39e, the merged commit on main
of the 51Degrees fork. That commit refuses a version 2 or 3 minute
count above 4,197,074,399, which is a date past the end of the year
9999 where datetime stops, before the arithmetic, so a read reports
IMPLEMENTATION_CAPACITY_EXCEEDED instead of raising OverflowError.
Nothing else changed in the library since the previous pin. The copy
under fiftyone_pipeline_did/_owid is made by ci/copy-owid-source.ps1
and is not tracked, so the pin is the only library change here.

FodIdParseStatus and the package readme now say that
IMPLEMENTATION_CAPACITY_EXCEEDED also covers such a date. The member
already carried the same name and value, so the vocabulary test and
the public API are unchanged.

test_fodid proves that a 51Did envelope with minute count 0xFFFFFFFF
reports that status through FodId.try_from_base64 and
FodId.try_from_byte_array, with the OWID reader's own status checked
first, and that FodId.from_base64 and FodId.from_byte_array raise
OwidError naming the status for the same bytes.
@jwrosewell
jwrosewell merged commit c93f549 into main Aug 31, 2026
1 check passed
@jwrosewell
jwrosewell deleted the chore/owid-date-range branch August 31, 2026 15:29
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.

1 participant