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 # XXX, in case you want to melt your cores, comment this skip line XD
pytestmark = pytest.mark.skip pytestmark = pytest.mark.skip
# XXX `cffi` dun build on py3.14 yet..
cffi = pytest.importorskip("cffi")
@tractor.context @tractor.context
async def child_read_shm( async def child_read_shm(

View File

@ -17,10 +17,20 @@
Linux specifics, for now we are only exposing EventFD Linux specifics, for now we are only exposing EventFD
''' '''
import os
import errno import errno
import os
import sys
try:
import cffi 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 import trio
ffi = cffi.FFI() ffi = cffi.FFI()