You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: lower minimum Python version to 3.10
Replace asyncio.TaskGroup (Python 3.11+) in tests/test_notifier.py with
asyncio.ensure_future and asyncio.gather, which are compatible with
Python 3.10. Update requires-python in pyproject.toml and add 3.10 to
the CI test matrix.
Co-authored-by: Cursor <cursoragent@cursor.com>
* ci: skip examples on 3.10 lane and harden test cleanup
- Lower examples/*/pyproject.toml requires-python to >=3.10 so the
workspace lockfile resolves on 3.10 (uv unifies requires-python across
workspace members; any member at >=3.11 forces the lock to refuse 3.10).
Example sources still target 3.11+ at runtime; they are not installed
or type-checked on the 3.10 CI lane.
- ci.yml: on the 3.10 matrix entry, sync without --all-packages and run
pyright scoped to fishjam/ so the 3.11+ examples never reach the 3.10
venv. 3.11+ lanes are unchanged.
- tests/test_notifier.py: wrap each async test in try/finally with
asyncio.gather(*, return_exceptions=True) so background tasks are
always cancelled and awaited, restoring the auto-cleanup semantics
asyncio.TaskGroup provided. Replace the inconsistent
try/except CancelledError pattern in two tests.
- uv.lock regenerated against the new workspace constraint.
* tests: replace asyncio.timeout(0) with await + suppress(CancelledError)
asyncio.timeout is 3.11+. After task.cancel(), awaiting the task raises
CancelledError once cancellation propagates; suppressing it is equivalent
to the previous TimeoutError-via-timeout(0) idiom and works on 3.10.
---------
Co-authored-by: flochtililoch <flochtililoch@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
0 commit comments