Internal API Reference ********************** mitogen.core ============ Side Class ---------- .. autoclass:: mitogen.core.Side :members: Stream Classes -------------- .. autoclass:: mitogen.core.BasicStream :members: .. autoclass:: mitogen.core.Stream :members: .. autoclass:: mitogen.master.Stream :members: .. autoclass:: mitogen.ssh.Stream :members: Other Stream Subclasses ----------------------- .. autoclass:: mitogen.core.IoLogger :members: .. autoclass:: mitogen.core.Waker :members: ExternalContext Class --------------------- .. class:: mitogen.core.ExternalContext External context implementation. .. attribute:: broker The :py:class:`mitogen.core.Broker` instance. .. attribute:: context The :py:class:`mitogen.core.Context` instance. .. attribute:: channel The :py:class:`mitogen.core.Channel` over which :py:data:`CALL_FUNCTION` requests are received. .. attribute:: stdout_log The :py:class:`mitogen.core.IoLogger` connected to ``stdout``. .. attribute:: importer The :py:class:`mitogen.core.Importer` instance. .. attribute:: stdout_log The :py:class:`IoLogger` connected to ``stdout``. .. attribute:: stderr_log The :py:class:`IoLogger` connected to ``stderr``. mitogen.master ============== .. class:: mitogen.master.ProcessMonitor Install a :py:data:`signal.SIGCHLD` handler that generates callbacks when a specific child process has exitted. .. method:: add (pid, callback) Add a callback function to be notified of the exit status of a process. :param int pid: Process ID to be notified of. :param callback: Function invoked as `callback(status)`, where `status` is the raw exit status of the child process. Blocking I/O Functions ---------------------- These functions exist to support the blocking phase of setting up a new context. They will eventually be replaced with asynchronous equivalents. .. function:: mitogen.master.iter_read(fd, deadline=None) Return a generator that arranges for up to 4096-byte chunks to be read at a time from the file descriptor `fd` until the generator is destroyed. :param fd: File descriptor to read from. :param deadline: If not ``None``, an absolute UNIX timestamp after which timeout should occur. :raises mitogen.core.TimeoutError: Attempt to read beyond deadline. :raises mitogen.core.StreamError: Attempt to read past end of file. .. function:: mitogen.master.write_all (fd, s, deadline=None) Arrange for all of bytestring `s` to be written to the file descriptor `fd`. :param int fd: File descriptor to write to. :param bytes s: Bytestring to write to file descriptor. :param float deadline: If not ``None``, an absolute UNIX timestamp after which timeout should occur. :raises mitogen.core.TimeoutError: Bytestring could not be written entirely before deadline was exceeded. :raises mitogen.core.StreamError: File descriptor was disconnected before write could complete. Helper Functions ---------------- .. function:: mitogen.core.io_op (func, \*args) When connected over a TTY (i.e. sudo), disconnection of the remote end is signalled by EIO, rather than an empty read like sockets or pipes. Ideally this will be replaced later by a 'goodbye' message to avoid reading from a disconnected endpoint, allowing for more robust error reporting. When connected over a socket (e.g. mitogen.master.create_child()), ECONNRESET may be triggered by any read or write. .. function:: mitogen.master.create_child (\*args) Create a child process whose stdin/stdout is connected to a socket, returning `(pid, socket_obj)`. .. function:: mitogen.master.tty_create_child (\*args) Return a file descriptor connected to the master end of a pseudo-terminal, whose slave end is connected to stdin/stdout/stderr of a new child process. The child is created such that the pseudo-terminal becomes its controlling TTY, ensuring access to /dev/tty returns a new file descriptor open on the slave end. :param list args: :py:func:`os.execl` argument list. :returns: `(pid, fd)` .. function:: mitogen.master.get_child_modules (path, fullname) Return the canonical names of all submodules of a package `module`. :param str path: Path to the module's source code on disk, or some PEP-302-recognized equivalent. Usually this is the module's ``__file__`` attribute, but is specified explicitly to avoid loading the module. :param str fullname: The module's canonical name. This is the module's ``__name__`` attribute, but is specified explicitly to avoid loading the module. :return: List of canonical submodule names. .. autofunction:: mitogen.master.minimize_source (source) Remove comments and docstrings from Python `source`, preserving line numbers and syntax of empty blocks. :param str source: The source to minimize. :returns str: The minimized source.