Commits
Click on a commit to change the comparison rangefeat: initial JSONLT implementation fix: release lock before atomic_replace on Windows
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. fix: skip directory fsync on Windows
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. fix: use path.name in transaction repr tests for Windows
Same fix as table repr test - use path.name to avoid Windows
path separator differences between str(path) and repr(path). fix: exclude cosmic-ray on Windows
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. chore: update lockfile for Windows cosmic-ray exclusion
Regenerate lockfile after adding sys_platform != 'win32' constraint
to cosmic-ray. This removes Windows-specific wheels for cosmic-ray's
transitive dependencies. feat: improve test coverage from 90% to 96%
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