Repository navigation
Document the migration, scope the library, bump to 0.2.0 - #4
Merged
Merged
Conversation
PyPI still serves 0.1.0 with an unbounded `pixeltable>=0.3.8`, so a fresh `pip install pixelmemory` resolves Pixeltable 0.7.6 and gets a package whose Document, Audio and Video memories raise on construction. #3 fixed the repo; this is what makes the fix reachable. Adds a "Migrating from 0.1.x" section covering the three caller-visible changes: Python 3.11+, the two renamed splitter parameter dataclasses, and search()/views() replacing the chunk_views/frame_views subscripts. The renames are called out as unavoidable, because those field names are passed straight through to Pixeltable's iterators and so are the API rather than a naming choice. Adds "When not to use pixelmemory". If the schema is fixed when you write the code, TableModel and FastAPIRouter do this natively and the wrapper is not earning anything; it is worth saying so rather than letting someone discover it later. What pixelmemory is actually for is a schema chosen at runtime, plus the multimodal ingest pipelines it wires in the right dependency order. The two grep gates now skip the migration section: a migration guide has to quote the old broken calls to show what replaces them, so scanning it for those calls failed. Verified the gates still fire on a violation injected outside that section. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The version bump left uv.lock recording 0.1.0. CI did not notice, because it ran a bare `uv sync`, which quietly rewrites the lock instead of failing. pixelagent's workflow uses --locked and caught the same drift immediately, so this adopts it: a lockfile that disagrees with pyproject.toml is now a red build rather than a silent fixup. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #3: the release prep.
Why this is needed
PyPI serves 0.1.0 with an unbounded
pixeltable>=0.3.8. A freshpip install pixelmemorytoday resolves Pixeltable 0.7.6 and gets a package whose Document, Audio and Video memories raise on construction. #3 fixed the repo; this is what makes the fix reachable.I have not published. That is yours to run when you are ready.
Migrating from 0.1.x
Three caller-visible changes documented: Python 3.11+, the two renamed splitter parameter dataclasses, and
search()/views()replacing thechunk_views/frame_viewssubscripts.The renames are called out as unavoidable rather than cosmetic — those field names go through
dataclasses.asdict()straight into Pixeltable's iterators, so they are the API, and the old names were the bug:chunk_duration_secdurationoverlap_secoverlapmin_chunk_duration_secmin_segment_durationhtml_skip_tagsskip_tagsNothing breaks on the
chunk_viewschange in practice: it is a list onresources, not a mapping onMemory, so those subscripts always raisedAttributeError.When not to use pixelmemory
The audit raised whether the wrapper still earns its keep, and I think it is worth saying out loud in the README rather than letting someone discover it three days in. If the schema is fixed when you write the code,
TableModel+FastAPIRouterdo this natively and the wrapper adds nothing.What pixelmemory is actually for: a schema chosen at runtime — a
Contextlist from a config file or a request — plus the multimodal ingest pipelines it wires in the right dependency order (audio → segments → transcription → sentences → embeddings; video → frames + captions).I would rather the README name its own limits than oversell.
One note on the test gates
The two grep gates from #3 now skip the migration section. A migration guide has to quote the old broken calls to show what replaces them, so scanning it for those calls failed — my own new section tripped them. I verified the gates still fire by injecting a violation outside that section, so this is a scoped exemption and not a disabled check.
28 tests, ruff clean.
🤖 Generated with Claude Code