Handle py3.14+ incompats as test skips

Since we're devving subints we require the 3.14+ stdlib API
and a couple compiled libs don't support it yet, namely:
- `cffi`, which we're only using for the `.ipc._linux` eventfd
  stuff (now factored into `hotbaud` anyway).
- `greenback`, which requires `greenlet` which doesn't seem to be
  wheeled yet
  * on nixos the sdist build was failing due to lack of `g++` which
    i don't care to figure out rn since we don't need `.devx` stuff
    immediately for this subints prototype.
  * [ ] we still need to adjust any dependent suites to skip.

Adjust `test_ringbuf` to skip on import failure.

Also project wide,
- pin us to py 3.13+ in prep for last-2-minor-version policy.
- drop `msgspec>=0.20.0`, the first release with py3.14 support.

(cherry picked from commit d2ea8aa2de)
trionics_start_or_cancel
Gud Boi 2026-04-17 13:26:19 -04:00
parent 54a694d452
commit 4b63b7f1cc
2 changed files with 15 additions and 2 deletions

View File

@ -21,6 +21,9 @@ from tractor._testing.samples import (
# XXX, in case you want to melt your cores, comment this skip line XD
pytestmark = pytest.mark.skip
# XXX `cffi` dun build on py3.14 yet..
cffi = pytest.importorskip("cffi")
@tractor.context
async def child_read_shm(

View File

@ -17,10 +17,20 @@
Linux specifics, for now we are only exposing EventFD
'''
import os
import errno
import os
import sys
try:
import cffi
except ImportError as ie:
if sys.version_info < (3, 14):
ie.add_note(
f'The `cffi` pkg has no 3.14 support yet.\n'
)
raise ie
import trio
ffi = cffi.FFI()