Compare commits
5 Commits
e904af679b
...
84a888f381
Author | SHA1 | Date |
---|---|---|
|
84a888f381 | |
|
c1141c1f66 | |
|
bfa31f94c4 | |
|
8040ae6994 | |
|
08ac89b807 |
|
@ -46,6 +46,7 @@ dependencies = [
|
|||
# typed IPC msging
|
||||
"msgspec>=0.19.0",
|
||||
"cffi>=1.17.1",
|
||||
"bidict>=0.23.1",
|
||||
]
|
||||
|
||||
# ------ project ------
|
||||
|
|
|
@ -50,8 +50,8 @@ if __name__ == "__main__":
|
|||
args = parser.parse_args()
|
||||
|
||||
subactor = Actor(
|
||||
args.uid[0],
|
||||
uid=args.uid[1],
|
||||
name=args.uid[0],
|
||||
uuid=args.uid[1],
|
||||
loglevel=args.loglevel,
|
||||
spawn_method="trio"
|
||||
)
|
||||
|
|
|
@ -107,6 +107,10 @@ class Portal:
|
|||
# point.
|
||||
self._expect_result_ctx: Context|None = None
|
||||
self._streams: set[MsgStream] = set()
|
||||
|
||||
# TODO, this should be PRIVATE (and never used publicly)! since it's just
|
||||
# a cached ref to the local runtime instead of calling
|
||||
# `current_actor()` everywhere.. XD
|
||||
self.actor: Actor = current_actor()
|
||||
|
||||
@property
|
||||
|
@ -504,8 +508,12 @@ class LocalPortal:
|
|||
return it's result.
|
||||
|
||||
'''
|
||||
obj = self.actor if ns == 'self' else importlib.import_module(ns)
|
||||
func = getattr(obj, func_name)
|
||||
obj = (
|
||||
self.actor
|
||||
if ns == 'self'
|
||||
else importlib.import_module(ns)
|
||||
)
|
||||
func: Callable = getattr(obj, func_name)
|
||||
return await func(**kwargs)
|
||||
|
||||
|
||||
|
|
|
@ -595,8 +595,17 @@ class MsgStream(trio.abc.Channel):
|
|||
trio.ClosedResourceError,
|
||||
trio.BrokenResourceError,
|
||||
BrokenPipeError,
|
||||
) as trans_err:
|
||||
if hide_tb:
|
||||
) as _trans_err:
|
||||
trans_err = _trans_err
|
||||
if (
|
||||
hide_tb
|
||||
and
|
||||
self._ctx.chan._exc is trans_err
|
||||
# ^XXX, IOW, only if the channel is marked errored
|
||||
# for the same reason as whatever its underlying
|
||||
# transport raised, do we keep the full low-level tb
|
||||
# suppressed from the user.
|
||||
):
|
||||
raise type(trans_err)(
|
||||
*trans_err.args
|
||||
) from trans_err
|
||||
|
|
|
@ -478,7 +478,6 @@ async def attach_to_ringbuf_stream(
|
|||
yield trio.StapledStream(sender, receiver)
|
||||
|
||||
|
||||
|
||||
class RingBuffBytesSender(trio.abc.SendChannel[bytes]):
|
||||
'''
|
||||
In order to guarantee full messages are received, all bytes
|
||||
|
@ -522,7 +521,6 @@ class RingBuffBytesSender(trio.abc.SendChannel[bytes]):
|
|||
if self._batch_msg_len == self.batch_size:
|
||||
await self.flush()
|
||||
|
||||
|
||||
async def aclose(self) -> None:
|
||||
await self._sender.aclose()
|
||||
|
||||
|
|
|
@ -50,7 +50,10 @@ if _USE_POSIX:
|
|||
try:
|
||||
import numpy as np
|
||||
from numpy.lib import recfunctions as rfn
|
||||
import nptyping
|
||||
# TODO ruff complains with,
|
||||
# warning| F401: `nptyping` imported but unused; consider using
|
||||
# `importlib.util.find_spec` to test for availability
|
||||
import nptyping # noqa
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
|
|
@ -157,7 +157,10 @@ class MsgpackTransport(MsgTransport):
|
|||
|
||||
) -> None:
|
||||
self.stream = stream
|
||||
self._laddr, self._raddr = self.get_stream_addrs(stream)
|
||||
(
|
||||
self._laddr,
|
||||
self._raddr,
|
||||
) = self.get_stream_addrs(stream)
|
||||
|
||||
# create read loop instance
|
||||
self._aiter_pkts = self._iter_packets()
|
||||
|
|
|
@ -76,7 +76,7 @@ def transport_from_stream(
|
|||
'''
|
||||
transport = None
|
||||
if isinstance(stream, trio.SocketStream):
|
||||
sock = stream.socket
|
||||
sock: socket.socket = stream.socket
|
||||
match sock.family:
|
||||
case socket.AF_INET | socket.AF_INET6:
|
||||
transport = 'tcp'
|
||||
|
|
11
uv.lock
11
uv.lock
|
@ -11,6 +11,15 @@ wheels = [
|
|||
{ url = "https://files.pythonhosted.org/packages/89/aa/ab0f7891a01eeb2d2e338ae8fecbe57fcebea1a24dbb64d45801bfab481d/attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308", size = 63397 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bidict"
|
||||
version = "0.23.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/9a/6e/026678aa5a830e07cd9498a05d3e7e650a4f56a42f267a53d22bcda1bdc9/bidict-0.23.1.tar.gz", hash = "sha256:03069d763bc387bbd20e7d49914e75fc4132a41937fa3405417e1a5a2d006d71", size = 29093 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/99/37/e8730c3587a65eb5645d4aba2d27aae48e8003614d6aaf15dda67f702f1f/bidict-0.23.1-py3-none-any.whl", hash = "sha256:5dae8d4d79b552a71cbabc7deb25dfe8ce710b17ff41711e13010ead2abfc3e5", size = 32764 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cffi"
|
||||
version = "1.17.1"
|
||||
|
@ -349,6 +358,7 @@ name = "tractor"
|
|||
version = "0.1.0a6.dev0"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "bidict" },
|
||||
{ name = "cffi" },
|
||||
{ name = "colorlog" },
|
||||
{ name = "msgspec" },
|
||||
|
@ -371,6 +381,7 @@ dev = [
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "bidict", specifier = ">=0.23.1" },
|
||||
{ name = "cffi", specifier = ">=1.17.1" },
|
||||
{ name = "colorlog", specifier = ">=6.8.2,<7" },
|
||||
{ name = "msgspec", specifier = ">=0.19.0" },
|
||||
|
|
Loading…
Reference in New Issue