feat: initial JSONLT implementation#4
Merged
Merged
Conversation
CodSpeed Performance ReportMerging #4 will degrade performance by 29.93%Comparing Summary
Benchmarks breakdown
|
tbhb
force-pushed
the
initial-implementation
branch
from
December 28, 2025 04:49
5804599 to
54451ab
Compare
Welcome to Codecov 🎉Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests. ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment Thanks for integrating Codecov - We've got you covered ☂️ |
tbhb
force-pushed
the
initial-implementation
branch
2 times, most recently
from
December 28, 2025 05:05
65393ef to
96af110
Compare
tbhb
force-pushed
the
initial-implementation
branch
from
December 28, 2025 05:14
96af110 to
4fc3049
Compare
On Windows, LockFileEx prevents renaming to a locked file. Move atomic_replace calls outside lock contexts in clear() and compact() methods. Simplify file creation cases since atomic_replace handles races via temp file pattern.
Windows doesn't support opening directories with os.open(). Skip the directory fsync step on Windows since NTFS handles atomic renames differently. Also fix test_repr to use path.name to avoid Windows path separator differences in assertions.
Same fix as table repr test - use path.name to avoid Windows path separator differences between str(path) and repr(path).
The greenlet dependency can't be built on Windows with free-threaded Python 3.14t. Mutation testing with cosmic-ray is only run on Linux anyway.
Regenerate lockfile after adding sys_platform != 'win32' constraint to cosmic-ray. This removes Windows-specific wheels for cosmic-ray's transitive dependencies.
Refactor Table class to use FileSystem protocol for better testability: - Add _filesystem.py with FileSystem protocol and RealFileSystem implementation - Inject FileSystem dependency into Table via _fs parameter - Create FakeFileSystem test double for edge case testing Add comprehensive tests for previously uncovered code paths: - Surrogate pair validation in encoding - append_lines function in writer module - Header serialization edge cases - Transaction repr and edge cases - Table filesystem error handling paths Mark legitimately untestable code with pragma comments: - Protocol method stubs (abstract definitions) - Defensive unreachable code paths - Windows-specific lock implementation
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.
Summary
Test plan