Move namespace path type into `msg` mod
parent
2900ceb003
commit
c265f3f94e
|
@ -21,7 +21,6 @@ concurrency linked tasks running in disparate memory domains.
|
|||
'''
|
||||
from __future__ import annotations
|
||||
import importlib
|
||||
from pkgutil import resolve_name
|
||||
import inspect
|
||||
from typing import (
|
||||
Any, Optional,
|
||||
|
@ -38,6 +37,7 @@ from async_generator import asynccontextmanager
|
|||
from ._state import current_actor
|
||||
from ._ipc import Channel
|
||||
from .log import get_logger
|
||||
from .msg import NamespacePath
|
||||
from ._exceptions import (
|
||||
unpack_error,
|
||||
NoResult,
|
||||
|
@ -68,34 +68,6 @@ async def maybe_open_nursery(
|
|||
yield nursery
|
||||
|
||||
|
||||
class NamespacePath(str):
|
||||
'''
|
||||
A serializeable description of a (function) Python object location
|
||||
described by the target's module path and its namespace key.
|
||||
|
||||
'''
|
||||
def load_ref(self) -> object:
|
||||
return resolve_name(self)
|
||||
|
||||
def to_tuple(
|
||||
self,
|
||||
|
||||
) -> tuple[str, str]:
|
||||
ref = self.load_ref()
|
||||
return ref.__module__, getattr(ref, '__name__', '')
|
||||
|
||||
@classmethod
|
||||
def from_ref(
|
||||
cls,
|
||||
obj,
|
||||
|
||||
) -> NamespacePath:
|
||||
return cls(':'.join(
|
||||
(obj.__module__,
|
||||
obj.__name__,)
|
||||
))
|
||||
|
||||
|
||||
def _unwrap_msg(
|
||||
|
||||
msg: dict[str, Any],
|
||||
|
|
Loading…
Reference in New Issue