Skip to content

Al/python/feat/batch measurements - #810

Draft
alexluck-sift wants to merge 3 commits into
mainfrom
al/python/feat/batch-measurements
Draft

alexluck-sift wants to merge 3 commits into
mainfrom
al/python/feat/batch-measurements

Conversation

@alexluck-sift

Copy link
Copy Markdown
Collaborator

No description provided.

Move caller_stacklevel out of the public errors module. mkdocs publishes
non-underscore names from there, and a stack-walking utility is not an error
type; it now sits beside the other generic helpers in _internal/util.

Add SiftIgnoredInputWarning so filterwarnings can target an unknown model
field and a no-op update without promoting every other Sift warning.

Stop fabricating an entity when a live no-op update has nothing to return.
_skip_empty_update now hands back a simulated response only on the log and
simulate paths, and raises otherwise. The fabricated entity carried
_simulated=True, which the pytest plugin reads to resolve the report link, so
a caller passing an ID string could not tell it from a real read.

Return from the unknown-key validator before sorting the field names, so the
path where every key is known does no extra work.
A test-results log records one CreateTestMeasurement line per measurement, and
replay sent one request for each. Measurements are the bulk of a log, so a
large log took one round trip per measurement to upload.

Replay now coalesces a run of consecutive measurement lines into one
CreateTestMeasurements call. A run ends at the next non-measurement line, at
the size guard, or at the end of the log, so lines still reach the server in
log order and the cursor advances by the whole run once its call returns.

On a 13,631-line log this takes the requests from 13,628 to 4,021, and the
upload from about 12 minutes to about 3.5 at a 53ms round trip. The sidecar is
written once per run rather than once per line, which cuts its cost with them.

The log format does not change, so a log written by an earlier version gets the
same speedup. Step creates and updates still take one request each.
@alexluck-sift
alexluck-sift changed the base branch from main to al/python/fix/pytest-update-with-no-mask October 1, 2026 00:40
@alexluck-sift
alexluck-sift added this pull request to stack #811 October 1, 2026 00:40
Base automatically changed from al/python/fix/pytest-update-with-no-mask to main October 1, 2026 16:55

This branch has not been deployed

No deployments
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