Skip to content

Refactor/tighten archive types#67

Merged
trbKnl merged 3 commits into
developmentfrom
refactor/tighten-archive-types
May 11, 2026
Merged

Refactor/tighten archive types#67
trbKnl merged 3 commits into
developmentfrom
refactor/tighten-archive-types

Conversation

@daniellemccool

Copy link
Copy Markdown

Define SeekableBinaryReader Protocol (read|seek|tell) and narrow the upload-path consumers (validate.validate_zip, ZipArchiveReader) to accept only this Protocol, with path strings no longer accepted. Renames the path_to_zip/zip_path parameters and the ZipArchiveReader.zip_path attribute to 'archive' for consistency.

Type narrowing makes the streaming invariant from extraction/AD0007 checkable at the typecheck layer (Pyright via 'pnpm typecheck:py'). CI doesn't currently run typecheck, so this is local code-review aid rather than a CI gate. If we combine it with the absence of materialize_file(), it's probably sufficient.

Tests are refactored to ues io.BytesIO fixrues instead of tmp_path string fixtures.

daniellemccool and others added 3 commits May 4, 2026 09:28
Adds a workflow that fires on push of any tag matching 'v*'. It takes that version's section from the changelog (everything between the version and the one underneath) and then creates a GitHub release using the text as the body. The release title is the tag name.

git push origin v.X.Y.Z is now the entire release flow. This does mean that future releases need to have '## vX.Y.Z - YYYY-MM-DD' format (although it can also be -- or an emdash, whatever, just make sure there's a proper semver and YMD format).
chore(ci): auto-create a GitHub release on tag push
…ader

Define SeekableBinaryReader Protocol (read|seek|tell) and narrow the upload-path consumers (validate.validate_zip, ZipArchiveReader) to accept only this Protocol, with path strings no longer accepted. Renames the path_to_zip/zip_path parameters and the ZipArchiveReader.zip_path attribute to 'archive' for consistency.

Type narrowing makes the streaming invariant from extraction/AD0007 checkable at the typecheck layer (Pyright via 'pnpm typecheck:py'). CI doesn't currently run typecheck, so this is local code-review aid rather than a CI gate. If we combine it with the absence of materialize_file(), it's probably sufficient.

Tests are refactored to ues io.BytesIO fixrues instead of tmp_path string fixtures.
@trbKnl

trbKnl commented May 8, 2026

Copy link
Copy Markdown
Collaborator

Allright? Is it all ready to be merged?

@trbKnl trbKnl merged commit f809034 into development May 11, 2026
1 check passed
@trbKnl trbKnl deleted the refactor/tighten-archive-types branch May 11, 2026 09:50
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