forked from goodboy/tractor
				
			mypy fixes
							parent
							
								
									1710b642a5
								
							
						
					
					
						commit
						c375a2d028
					
				| 
						 | 
					@ -17,6 +17,7 @@ from ._discovery import get_arbiter, find_actor, wait_for_actor
 | 
				
			||||||
from ._actor import Actor, _start_actor, Arbiter
 | 
					from ._actor import Actor, _start_actor, Arbiter
 | 
				
			||||||
from ._trionics import open_nursery
 | 
					from ._trionics import open_nursery
 | 
				
			||||||
from ._state import current_actor
 | 
					from ._state import current_actor
 | 
				
			||||||
 | 
					from . import _state
 | 
				
			||||||
from ._exceptions import RemoteActorError, ModuleNotExposed
 | 
					from ._exceptions import RemoteActorError, ModuleNotExposed
 | 
				
			||||||
from ._debug import breakpoint, post_mortem
 | 
					from ._debug import breakpoint, post_mortem
 | 
				
			||||||
from . import msg
 | 
					from . import msg
 | 
				
			||||||
| 
						 | 
					@ -24,6 +25,8 @@ from . import _spawn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__all__ = [
 | 
					__all__ = [
 | 
				
			||||||
 | 
					    'breakpoint',
 | 
				
			||||||
 | 
					    'post_mortem',
 | 
				
			||||||
    'current_actor',
 | 
					    'current_actor',
 | 
				
			||||||
    'find_actor',
 | 
					    'find_actor',
 | 
				
			||||||
    'get_arbiter',
 | 
					    'get_arbiter',
 | 
				
			||||||
| 
						 | 
					@ -51,7 +54,7 @@ async def _main(
 | 
				
			||||||
    name: Optional[str] = None,
 | 
					    name: Optional[str] = None,
 | 
				
			||||||
    start_method: Optional[str] = None,
 | 
					    start_method: Optional[str] = None,
 | 
				
			||||||
    debug_mode: bool = False,
 | 
					    debug_mode: bool = False,
 | 
				
			||||||
    **kwargs: typing.Dict[str, typing.Any],
 | 
					    **kwargs,
 | 
				
			||||||
) -> typing.Any:
 | 
					) -> typing.Any:
 | 
				
			||||||
    """Async entry point for ``tractor``.
 | 
					    """Async entry point for ``tractor``.
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -249,7 +249,7 @@ class Actor:
 | 
				
			||||||
        self._parent_chan: Optional[Channel] = None
 | 
					        self._parent_chan: Optional[Channel] = None
 | 
				
			||||||
        self._forkserver_info: Optional[
 | 
					        self._forkserver_info: Optional[
 | 
				
			||||||
            Tuple[Any, Any, Any, Any, Any]] = None
 | 
					            Tuple[Any, Any, Any, Any, Any]] = None
 | 
				
			||||||
        self._actoruid2nursery: Dict[str, 'ActorNursery'] = {}  # noqa
 | 
					        self._actoruid2nursery: Dict[str, 'ActorNursery'] = {}  # type: ignore
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def wait_for_peer(
 | 
					    async def wait_for_peer(
 | 
				
			||||||
        self, uid: Tuple[str, str]
 | 
					        self, uid: Tuple[str, str]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@ import bdb
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
from functools import partial
 | 
					from functools import partial
 | 
				
			||||||
from contextlib import asynccontextmanager
 | 
					from contextlib import asynccontextmanager
 | 
				
			||||||
from typing import Awaitable, Tuple, Optional, Callable
 | 
					from typing import Awaitable, Tuple, Optional, Callable, AsyncIterator
 | 
				
			||||||
# import signal
 | 
					# import signal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from async_generator import aclosing
 | 
					from async_generator import aclosing
 | 
				
			||||||
| 
						 | 
					@ -22,9 +22,9 @@ try:
 | 
				
			||||||
    # wtf: only exported when installed in dev mode?
 | 
					    # wtf: only exported when installed in dev mode?
 | 
				
			||||||
    import pdbpp
 | 
					    import pdbpp
 | 
				
			||||||
except ImportError:
 | 
					except ImportError:
 | 
				
			||||||
    # pdbpp is installed in regular mode...
 | 
					    # pdbpp is installed in regular mode...it monkey patches stuff
 | 
				
			||||||
    import pdb
 | 
					    import pdb
 | 
				
			||||||
    assert pdb.xpm, "pdbpp is not installed?"
 | 
					    assert pdb.xpm, "pdbpp is not installed?"  # type: ignore
 | 
				
			||||||
    pdbpp = pdb
 | 
					    pdbpp = pdb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log = get_logger(__name__)
 | 
					log = get_logger(__name__)
 | 
				
			||||||
| 
						 | 
					@ -45,7 +45,7 @@ _debug_lock = trio.StrictFIFOLock()
 | 
				
			||||||
# XXX: set by the current task waiting on the root tty lock
 | 
					# XXX: set by the current task waiting on the root tty lock
 | 
				
			||||||
# and must be cancelled if this actor is cancelled via message
 | 
					# and must be cancelled if this actor is cancelled via message
 | 
				
			||||||
# otherwise deadlocks with the parent actor may ensure
 | 
					# otherwise deadlocks with the parent actor may ensure
 | 
				
			||||||
_debugger_request_cs: trio.CancelScope = None
 | 
					_debugger_request_cs: Optional[trio.CancelScope] = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TractorConfig(pdbpp.DefaultConfig):
 | 
					class TractorConfig(pdbpp.DefaultConfig):
 | 
				
			||||||
| 
						 | 
					@ -117,7 +117,7 @@ class PdbwTeardown(pdbpp.Pdb):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@asynccontextmanager
 | 
					@asynccontextmanager
 | 
				
			||||||
async def _acquire_debug_lock(uid: Tuple[str, str]) -> None:
 | 
					async def _acquire_debug_lock(uid: Tuple[str, str]) -> AsyncIterator[None]:
 | 
				
			||||||
    """Acquire a actor local FIFO lock meant to mutex entry to a local
 | 
					    """Acquire a actor local FIFO lock meant to mutex entry to a local
 | 
				
			||||||
    debugger entry point to avoid tty clobbering by multiple processes.
 | 
					    debugger entry point to avoid tty clobbering by multiple processes.
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
| 
						 | 
					@ -158,7 +158,7 @@ pdbpp.pdb.Pdb.sigint_handler = handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async def _hijack_stdin_relay_to_child(
 | 
					async def _hijack_stdin_relay_to_child(
 | 
				
			||||||
    subactor_uid: Tuple[str, str]
 | 
					    subactor_uid: Tuple[str, str]
 | 
				
			||||||
) -> None:
 | 
					) -> AsyncIterator[str]:
 | 
				
			||||||
    # TODO: when we get to true remote debugging
 | 
					    # TODO: when we get to true remote debugging
 | 
				
			||||||
    # this will deliver stdin data
 | 
					    # this will deliver stdin data
 | 
				
			||||||
    log.warning(f"Actor {subactor_uid} is WAITING on stdin hijack lock")
 | 
					    log.warning(f"Actor {subactor_uid} is WAITING on stdin hijack lock")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,14 +1,14 @@
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
Per process state
 | 
					Per process state
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
from typing import Optional
 | 
					from typing import Optional, Dict, Any
 | 
				
			||||||
from collections import Mapping
 | 
					from collections import Mapping
 | 
				
			||||||
import multiprocessing as mp
 | 
					import multiprocessing as mp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import trio
 | 
					import trio
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_current_actor: Optional['Actor'] = None  # type: ignore
 | 
					_current_actor: Optional['Actor'] = None  # type: ignore
 | 
				
			||||||
_runtime_vars = {
 | 
					_runtime_vars: Dict[str, Any] = {
 | 
				
			||||||
    '_debug_mode': False,
 | 
					    '_debug_mode': False,
 | 
				
			||||||
    '_is_root': False,
 | 
					    '_is_root': False,
 | 
				
			||||||
    '_root_mailbox': (None, None)
 | 
					    '_root_mailbox': (None, None)
 | 
				
			||||||
| 
						 | 
					@ -54,7 +54,7 @@ def debug_mode() -> bool:
 | 
				
			||||||
    """Bool determining if "debug mode" is on which enables
 | 
					    """Bool determining if "debug mode" is on which enables
 | 
				
			||||||
    remote subactor pdb entry on crashes.
 | 
					    remote subactor pdb entry on crashes.
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    return _runtime_vars['_debug_mode']
 | 
					    return bool(_runtime_vars['_debug_mode'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def is_root_process() -> bool:
 | 
					def is_root_process() -> bool:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue