Skip to content
Closed
Changes from 1 commit
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
0c14d52
py(deps[test]): Add pytest-asyncio
tony Jun 19, 2024
646a42f
notes(docs[plan]): Add asyncio implementation plan
tony Dec 29, 2025
2cea07d
AGENTS(docs[asyncio]): Add asyncio development guidelines
tony Dec 29, 2025
df022bc
_internal(feat[async_subprocess]): Add async subprocess wrapper
tony Dec 29, 2025
7ade5c3
notes(docs[plan]): Add verification command requirement
tony Dec 29, 2025
3fea3d8
_internal(fix[async_subprocess]): Fix mypy type errors and formatting
tony Dec 29, 2025
7cdb017
_internal(feat[async_run]): Add async subprocess execution with callb…
tony Dec 29, 2025
55b23c5
cmd/_async(feat[AsyncGit]): Add async git command class
tony Dec 29, 2025
391a418
sync/_async(feat[AsyncGitSync]): Add async repository synchronization
tony Dec 29, 2025
0e50a71
pytest_plugin(feat): Add async_git_repo fixture
tony Dec 29, 2025
7fe3aa6
tests(async_git): Add tests for async_git_repo fixture
tony Dec 29, 2025
3fe8f81
py(pytest): Filter pytest-asyncio deprecation warning
tony Dec 29, 2025
8fdde6d
notes(plan): Mark Phase 5 complete
tony Dec 29, 2025
c8d4f0f
cmd/_async(feat): Add AsyncHg command class
tony Dec 29, 2025
2d935b0
sync/_async(feat): Add AsyncHgSync sync class
tony Dec 29, 2025
ac6ffb5
_async(chore): Export AsyncHg and AsyncHgSync
tony Dec 29, 2025
1d87670
tests(async_hg): Add AsyncHg command tests
tony Dec 29, 2025
316e3c1
tests(async_hg): Add AsyncHgSync sync tests
tony Dec 29, 2025
85ee7d2
notes(plan): Mark Phase 6 complete
tony Dec 29, 2025
8c6eb7a
cmd/_async(feat[AsyncSvn]): Add async Subversion command class
tony Dec 29, 2025
1c77d8a
sync/_async(feat[AsyncSvnSync]): Add async SVN sync class
tony Dec 29, 2025
330e62b
_async(chore): Export AsyncSvn and AsyncSvnSync
tony Dec 29, 2025
5060613
tests(async_svn): Add AsyncSvn command tests
tony Dec 29, 2025
9bb2e2e
tests(async_svn): Add AsyncSvnSync sync tests
tony Dec 29, 2025
da77a13
notes(plan): Mark Phase 7 complete
tony Dec 29, 2025
6be6459
pytest_plugin(feat): Add asyncio to doctest_namespace
tony Dec 29, 2025
7d1e198
_internal(fix): Enable async doctests to run
tony Dec 29, 2025
12143ad
docs(AGENTS): Add doctest guidelines and requirements
tony Dec 29, 2025
6a8f22a
docs(AGENTS): Clarify +SKIP is not permitted
tony Dec 29, 2025
e9d85a5
cmd,sync/_async(fix): Enable async doctests to run
tony Dec 29, 2025
50066b2
docs(topics): Add asyncio guide
tony Dec 29, 2025
8b9227e
docs(README): Add async section
tony Dec 29, 2025
a4a1087
docs(quickstart,pytest-plugin): Add async examples
tony Dec 29, 2025
8a84ed2
docs(internals): Add async_run and async_subprocess docs
tony Dec 29, 2025
28dbb29
docs(cmd,sync): Add async variant references
tony Dec 29, 2025
7249c13
notes(plan): Mark Phase 8 complete
tony Dec 29, 2025
22927f0
chore(tmuxp): Update workspace config to use just instead of make
tony Dec 29, 2025
6e7cdf1
pytest_plugin(feat): Add caching to async fixtures
tony Dec 29, 2025
ad76e1d
pytest_plugin(fix): Wrap long docstring line to satisfy ruff E501
tony Dec 29, 2025
a8afe6e
pytest_plugin(feat): Add fixture performance optimization and profiling
tony Dec 30, 2025
0c3d1ca
pytest_plugin(feat): Optimize Mercurial fixtures with disk caching
tony Dec 30, 2025
adecbcd
pytest_plugin(feat): Add atomic locking for pytest-xdist compatibility
tony Dec 30, 2025
9993130
_internal(feat[file_lock]): Add typed, asyncio-friendly file locking …
tony Dec 30, 2025
85cb74e
docs(internals): Add file_lock module documentation
tony Dec 30, 2025
c9a9f74
tests(_internal[file_lock]): Add comprehensive tests for file locking…
tony Dec 30, 2025
7ab501d
pytest_plugin(refactor): Use _internal.file_lock for atomic initializ…
tony Dec 30, 2025
e468f02
pytest_plugin(fix): Add atomic_init to *_repo fixtures for race-free …
tony Dec 30, 2025
c4665d7
conftest(feat): Add fixture cache hit/miss tracking
tony Dec 30, 2025
4feb9af
pyproject(chore): Add benchmark pytest marker
tony Dec 30, 2025
02ba49c
tests(fixture_performance): Add copy benchmarks and SVN performance t…
tony Dec 30, 2025
4376b9a
_internal(feat[copy]): Add copytree_reflink for CoW-optimized directo…
tony Dec 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
_internal(feat[file_lock]): Add typed, asyncio-friendly file locking …
…module

why: Need portable, race-free file locking for pytest fixture coordination
and cross-process synchronization without external dependencies.

what:
- Add FileLock class using SoftFileLock pattern (os.O_CREAT | os.O_EXCL)
- Add AsyncFileLock wrapper with asyncio.sleep polling
- Add FileLockContext dataclass for lock state management
- Add AcquireReturnProxy/AsyncAcquireReturnProxy for context manager support
- Add atomic_init/async_atomic_init convenience functions for two-file pattern
- Add FileLockError, FileLockTimeout, FileLockStale picklable exceptions
- Support reentrant locking with lock counter
- Support stale lock detection with configurable timeout (default 5min)
- Full NumPy-style docstrings with working doctests
  • Loading branch information
tony committed Dec 30, 2025
commit 9993130c1705f973eea54628d77c5645f7432763
Loading