feat(db-python): read-side bindings with type registry and annotations - #82
Open
EnriqueParodi wants to merge 1 commit into
Open
feat(db-python): read-side bindings with type registry and annotations#82EnriqueParodi wants to merge 1 commit into
EnriqueParodi wants to merge 1 commit into
Conversation
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 16, 2026 16:24
2738b1e to
f49a9a7
Compare
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
from
August 16, 2026 16:24
5b25282 to
3d68fd2
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 16, 2026 17:04
f49a9a7 to
751d7b5
Compare
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
2 times, most recently
from
August 16, 2026 17:26
740f0aa to
d111b42
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
2 times, most recently
from
August 16, 2026 20:05
f6e22c6 to
e1114f6
Compare
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
from
August 16, 2026 20:05
d111b42 to
1dacf1e
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 17, 2026 07:13
e1114f6 to
5bb1d7d
Compare
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
from
August 17, 2026 07:13
1dacf1e to
4335c87
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 17, 2026 07:46
5bb1d7d to
bdfa58e
Compare
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
from
August 17, 2026 07:46
4335c87 to
1da23a4
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 18, 2026 22:27
bdfa58e to
9e5bd31
Compare
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
2 times, most recently
from
August 19, 2026 07:42
4fb9677 to
c7479da
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 19, 2026 07:42
9e5bd31 to
567004c
Compare
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
4 times, most recently
from
August 19, 2026 17:01
d9c66fc to
1e7ef49
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 19, 2026 17:01
567004c to
548c5d2
Compare
EnriqueParodi
marked this pull request as ready for review
August 19, 2026 17:03
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
from
August 19, 2026 19:05
1e7ef49 to
c83d794
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 19, 2026 19:05
548c5d2 to
9794fd5
Compare
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
from
August 19, 2026 21:21
c83d794 to
376955b
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
2 times, most recently
from
August 20, 2026 11:26
4f43ff8 to
1525d2f
Compare
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
from
August 20, 2026 11:26
376955b to
0b8c2ba
Compare
pybind11 bindings for sen::db so a Python script can open a recording, walk a cursor and reflect on every payload through the same type system the recorder used. Read-side only, and the CMake side rides on SEN_BUILD_PY rather than adding another option.
EnriqueParodi
force-pushed
the
feat/jsonrpc-ts-client
branch
from
August 20, 2026 21:03
0b8c2ba to
0eeb2fe
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 20, 2026 21:03
1525d2f to
1e1f837
Compare
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.
pybind11 bindings for sen::db that let a Python script open a recording,
walk a cursor, and reflect on every payload through the same type system
the recorder used.
Surface:
process can open several recordings independently.
via getattr so unknown names raise AttributeError fast).
timestamp; entry.payload is a tagged union dispatched by isinstance.
the recorder's stable id (renamed from the ambiguous .id).
ergonomic reasons (the class-shape alternative was rejected).
asCustomType so the same reflection path covers it.
Correctness commitments:
(previously could silently truncate / accept negatives).
collisions between unrelated types in different recordings were
reachable).
cursor advance.
pointers if a second Input opens the same recording shape).
TypeRegistryPy cached on the module, std::filesystem in headers.
Testing:
cursor, asserts on the reflected types. Catches "file deleted but
module still compiles" cases that pure C++ build verification misses.
per-element-with rule).
Documentation:
(a small Python script that opens a recording and aggregates
per-class state, runs as written).