当前位置: 首页>>代码示例>>Python>>正文


Python asyncio.SafeChildWatcher方法代码示例

本文整理汇总了Python中asyncio.SafeChildWatcher方法的典型用法代码示例。如果您正苦于以下问题:Python asyncio.SafeChildWatcher方法的具体用法?Python asyncio.SafeChildWatcher怎么用?Python asyncio.SafeChildWatcher使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在asyncio的用法示例。


在下文中一共展示了asyncio.SafeChildWatcher方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_get_child_watcher_thread

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def test_get_child_watcher_thread(self):

        def f():
            policy.set_event_loop(policy.new_event_loop())

            self.assertIsInstance(policy.get_event_loop(),
                                  asyncio.AbstractEventLoop)
            watcher = policy.get_child_watcher()

            self.assertIsInstance(watcher, asyncio.SafeChildWatcher)
            self.assertIsNone(watcher._loop)

            policy.get_event_loop().close()

        policy = self.create_policy()

        th = threading.Thread(target=f)
        th.start()
        th.join() 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:21,代码来源:test_unix_events.py

示例2: setup_test_loop

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def setup_test_loop(loop_factory=asyncio.new_event_loop):
    """Create and return an asyncio.BaseEventLoop instance.

    The caller should also call teardown_test_loop, once they are done
    with the loop.
    """
    loop = loop_factory()
    asyncio.set_event_loop(loop)
    if sys.platform != "win32":
        policy = asyncio.get_event_loop_policy()
        watcher = asyncio.SafeChildWatcher()
        watcher.attach_loop(loop)
        policy.set_child_watcher(watcher)
    return loop 
开发者ID:Eyepea,项目名称:aiosip,代码行数:16,代码来源:pytest_plugin.py

示例3: test_read_all_from_pipe_reader

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def test_read_all_from_pipe_reader(self):
        # See asyncio issue 168.  This test is derived from the example
        # subprocess_attach_read_pipe.py, but we configure the
        # StreamReader's limit so that twice it is less than the size
        # of the data writter.  Also we must explicitly attach a child
        # watcher to the event loop.

        code = """\
import os, sys
fd = int(sys.argv[1])
os.write(fd, b'data')
os.close(fd)
"""
        rfd, wfd = os.pipe()
        args = [sys.executable, '-c', code, str(wfd)]

        pipe = open(rfd, 'rb', 0)
        reader = asyncio.StreamReader(loop=self.loop, limit=1)
        protocol = asyncio.StreamReaderProtocol(reader, loop=self.loop)
        transport, _ = self.loop.run_until_complete(
            self.loop.connect_read_pipe(lambda: protocol, pipe))

        watcher = asyncio.SafeChildWatcher()
        watcher.attach_loop(self.loop)
        try:
            asyncio.set_child_watcher(watcher)
            create = asyncio.create_subprocess_exec(*args,
                                                    pass_fds={wfd},
                                                    loop=self.loop)
            proc = self.loop.run_until_complete(create)
            self.loop.run_until_complete(proc.wait())
        finally:
            asyncio.set_child_watcher(None)

        os.close(wfd)
        data = self.loop.run_until_complete(reader.read(-1))
        self.assertEqual(data, b'data') 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:39,代码来源:test_streams.py

示例4: setUp

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def setUp(self):
            super().setUp()
            watcher = asyncio.SafeChildWatcher()
            watcher.attach_loop(self.loop)
            asyncio.set_child_watcher(watcher) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:7,代码来源:test_events.py

示例5: waitpid

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def waitpid(self, pid, flags):
        if isinstance(self.watcher, asyncio.SafeChildWatcher) or pid != -1:
            self.assertGreater(pid, 0)
        try:
            if pid < 0:
                return self.zombies.popitem()
            else:
                return pid, self.zombies.pop(pid)
        except KeyError:
            pass
        if self.running:
            return 0, 0
        else:
            raise ChildProcessError() 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:16,代码来源:test_unix_events.py

示例6: create_watcher

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def create_watcher(self):
        return asyncio.SafeChildWatcher() 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:4,代码来源:test_unix_events.py

示例7: test_get_child_watcher

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def test_get_child_watcher(self):
        policy = self.create_policy()
        self.assertIsNone(policy._watcher)

        watcher = policy.get_child_watcher()
        self.assertIsInstance(watcher, asyncio.SafeChildWatcher)

        self.assertIs(policy._watcher, watcher)

        self.assertIs(watcher, policy.get_child_watcher())
        self.assertIsNone(watcher._loop) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:13,代码来源:test_unix_events.py

示例8: install

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def install(gtk=False):
    """Set the default event loop policy.

    Call this as early as possible to ensure everything has a reference to the
    correct event loop.

    Set ``gtk`` to True if you intend to use Gtk in your application.

    If ``gtk`` is True and Gtk is not available, will raise `ValueError`.

    Note that this class performs some monkey patching of asyncio to ensure
    correct functionality.
    """

    if gtk:
        from .gtk import GtkEventLoopPolicy
        policy = GtkEventLoopPolicy()
    else:
        from .glib_events import GLibEventLoopPolicy
        policy = GLibEventLoopPolicy()

    # There are some libraries that use SafeChildWatcher directly (which is
    # completely reasonable), so we have to ensure that it is our version. I'm
    # sorry, I know this isn't great but it's basically the best that we have.
    from .glib_events import GLibChildWatcher
    asyncio.SafeChildWatcher = GLibChildWatcher
    asyncio.set_event_loop_policy(policy) 
开发者ID:pychess,项目名称:pychess,代码行数:29,代码来源:utils.py

示例9: _check_unix

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def _check_unix(self):
        if not hasattr(asyncio, "SafeChildWatcher"):
            raise NotImplementedError 
开发者ID:Martiusweb,项目名称:asynctest,代码行数:5,代码来源:case.py

示例10: get_child_watcher

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def get_child_watcher(self):
        self._check_unix()
        if self.loop:
            if self.watcher is None:
                self.watcher = asyncio.SafeChildWatcher()
                self.watcher.attach_loop(self.loop)

            return self.watcher
        else:
            return self.original_policy.get_child_watcher() 
开发者ID:Martiusweb,项目名称:asynctest,代码行数:12,代码来源:case.py

示例11: test_read_all_from_pipe_reader

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import SafeChildWatcher [as 别名]
def test_read_all_from_pipe_reader(self):
        # See Tulip issue 168.  This test is derived from the example
        # subprocess_attach_read_pipe.py, but we configure the
        # StreamReader's limit so that twice it is less than the size
        # of the data writter.  Also we must explicitly attach a child
        # watcher to the event loop.

        code = """\
import os, sys
fd = int(sys.argv[1])
os.write(fd, b'data')
os.close(fd)
"""
        rfd, wfd = os.pipe()
        args = [sys.executable, '-c', code, str(wfd)]

        pipe = open(rfd, 'rb', 0)
        reader = asyncio.StreamReader(loop=self.loop, limit=1)
        protocol = asyncio.StreamReaderProtocol(reader, loop=self.loop)
        transport, _ = self.loop.run_until_complete(
            self.loop.connect_read_pipe(lambda: protocol, pipe))

        watcher = asyncio.SafeChildWatcher()
        watcher.attach_loop(self.loop)
        try:
            asyncio.set_child_watcher(watcher)
            create = asyncio.create_subprocess_exec(*args,
                                                    pass_fds={wfd},
                                                    loop=self.loop)
            proc = self.loop.run_until_complete(create)
            self.loop.run_until_complete(proc.wait())
        finally:
            asyncio.set_child_watcher(None)

        os.close(wfd)
        data = self.loop.run_until_complete(reader.read(-1))
        self.assertEqual(data, b'data') 
开发者ID:hhstore,项目名称:annotated-py-projects,代码行数:39,代码来源:test_streams.py


注:本文中的asyncio.SafeChildWatcher方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。