當前位置: 首頁>>代碼示例>>Python>>正文


Python asyncio.InvalidStateError方法代碼示例

本文整理匯總了Python中asyncio.InvalidStateError方法的典型用法代碼示例。如果您正苦於以下問題:Python asyncio.InvalidStateError方法的具體用法?Python asyncio.InvalidStateError怎麽用?Python asyncio.InvalidStateError使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在asyncio的用法示例。


在下文中一共展示了asyncio.InvalidStateError方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: future_set_exception_unless_cancelled

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def future_set_exception_unless_cancelled(
    future: "Union[futures.Future[_T], Future[_T]]", exc: BaseException
) -> None:
    """Set the given ``exc`` as the `Future`'s exception.

    If the Future is already canceled, logs the exception instead. If
    this logging is not desired, the caller should explicitly check
    the state of the Future and call ``Future.set_exception`` instead of
    this wrapper.

    Avoids ``asyncio.InvalidStateError`` when calling ``set_exception()`` on
    a cancelled `asyncio.Future`.

    .. versionadded:: 6.0

    """
    if not future.cancelled():
        future.set_exception(exc)
    else:
        app_log.error("Exception after Future was cancelled", exc_info=exc) 
開發者ID:opendevops-cn,項目名稱:opendevops,代碼行數:22,代碼來源:concurrent.py

示例2: future_set_exc_info

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def future_set_exc_info(
    future: "Union[futures.Future[_T], Future[_T]]",
    exc_info: Tuple[
        Optional[type], Optional[BaseException], Optional[types.TracebackType]
    ],
) -> None:
    """Set the given ``exc_info`` as the `Future`'s exception.

    Understands both `asyncio.Future` and the extensions in older
    versions of Tornado to enable better tracebacks on Python 2.

    .. versionadded:: 5.0

    .. versionchanged:: 6.0

       If the future is already cancelled, this function is a no-op.
       (previously ``asyncio.InvalidStateError`` would be raised)

    """
    if exc_info[1] is None:
        raise Exception("future_set_exc_info called with no exception")
    future_set_exception_unless_cancelled(future, exc_info[1]) 
開發者ID:opendevops-cn,項目名稱:opendevops,代碼行數:24,代碼來源:concurrent.py

示例3: get_transport

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def get_transport(self, transport: str) -> ClientTransport:
        """Look up initialized client transport methods.

        Args:
            transport: Name of the transport.

        Returns:
            A :class:`ClientTransport` NamedTuple for the specified transport.

        Raises:
            KeyError: If the specified transport was not provided when calling
                :meth:`__init__`.
            asyncio.InvalidStateError: If PT has not yet started, or if the
                transport is not yet initialized.
            RuntimeError: If the PT returned an error while initializing the
                specified transport.
        """
        self._check_running()
        return self._transports[transport].result() 
開發者ID:twisteroidambassador,項目名稱:ptadapter,代碼行數:21,代碼來源:adapters.py

示例4: _ping_interval

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def _ping_interval(self):
        while True:
            await asyncio.sleep(self.options["ping_interval"], loop=self._loop)
            if not self.is_connected:
                continue
            try:
                self._pings_outstanding += 1
                if self._pings_outstanding > self.options[
                        "max_outstanding_pings"]:
                    await self._process_op_err(ErrStaleConnection)
                    return
                await self._send_ping()
            except asyncio.CancelledError:
                break
            # except asyncio.InvalidStateError:
            #     pass 
開發者ID:nats-io,項目名稱:nats.py,代碼行數:18,代碼來源:client.py

示例5: _complete_future

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def _complete_future(self, ray_object_id):
        # TODO(ilr): Consider race condition between popping from the
        # waiting_dict and as_future appending to the waiting_dict's list.
        logger.debug(
            "Completing plasma futures for object id {}".format(ray_object_id))
        if ray_object_id not in self._waiting_dict:
            return
        obj = self._worker.get_objects([ray_object_id], timeout=0)[0]
        futures = self._waiting_dict.pop(ray_object_id)
        for fut in futures:
            try:
                fut.set_result(obj)
            except asyncio.InvalidStateError:
                # Avoid issues where process_notifications
                # and check_immediately both get executed
                logger.debug("Failed to set result for future {}."
                             "Most likely already set.".format(fut)) 
開發者ID:ray-project,項目名稱:ray,代碼行數:19,代碼來源:async_plasma.py

示例6: test_exception

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def test_exception(self):
        exc = RuntimeError()
        f = asyncio.Future(loop=self.loop)
        self.assertRaises(asyncio.InvalidStateError, f.exception)

        # StopIteration cannot be raised into a Future - CPython issue26221
        self.assertRaisesRegex(TypeError, "StopIteration .* cannot be raised",
                               f.set_exception, StopIteration)

        f.set_exception(exc)
        self.assertFalse(f.cancelled())
        self.assertTrue(f.done())
        self.assertRaises(RuntimeError, f.result)
        self.assertEqual(f.exception(), exc)
        self.assertRaises(asyncio.InvalidStateError, f.set_result, None)
        self.assertRaises(asyncio.InvalidStateError, f.set_exception, None)
        self.assertFalse(f.cancel()) 
開發者ID:ShikyoKira,項目名稱:Project-New-Reign---Nemesis-Main,代碼行數:19,代碼來源:test_futures.py

示例7: test_exception

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def test_exception(self):
        exc = RuntimeError()
        f = self._new_future(loop=self.loop)
        self.assertRaises(asyncio.InvalidStateError, f.exception)

        # StopIteration cannot be raised into a Future - CPython issue26221
        self.assertRaisesRegex(TypeError, "StopIteration .* cannot be raised",
                               f.set_exception, StopIteration)

        f.set_exception(exc)
        self.assertFalse(f.cancelled())
        self.assertTrue(f.done())
        self.assertRaises(RuntimeError, f.result)
        self.assertEqual(f.exception(), exc)
        self.assertRaises(asyncio.InvalidStateError, f.set_result, None)
        self.assertRaises(asyncio.InvalidStateError, f.set_exception, None)
        self.assertFalse(f.cancel()) 
開發者ID:bkerler,項目名稱:android_universal,代碼行數:19,代碼來源:test_futures.py

示例8: _set_reply

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def _set_reply(self, correlation_id, msg):
        if correlation_id in self._futures:
            try:
                self._futures[correlation_id].set_result(msg)
            except asyncio.InvalidStateError as e:
                LOGGER.error(
                    'Attempting to set result on already-resolved future: %s',
                    str(e)) 
開發者ID:hyperledger,項目名稱:sawtooth-core,代碼行數:10,代碼來源:messaging.py

示例9: _fail_reply

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def _fail_reply(self, correlation_id, err):
        if correlation_id in self._futures and \
                not self._futures[correlation_id].done():
            try:
                self._futures[correlation_id].set_exception(err)
            except asyncio.InvalidStateError as e:
                LOGGER.error(
                    'Attempting to set exception on already-resolved future: '
                    '%s',
                    str(e)) 
開發者ID:hyperledger,項目名稱:sawtooth-core,代碼行數:12,代碼來源:messaging.py

示例10: future_set_result_unless_cancelled

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def future_set_result_unless_cancelled(
    future: "Union[futures.Future[_T], Future[_T]]", value: _T
) -> None:
    """Set the given ``value`` as the `Future`'s result, if not cancelled.

    Avoids ``asyncio.InvalidStateError`` when calling ``set_result()`` on
    a cancelled `asyncio.Future`.

    .. versionadded:: 5.0
    """
    if not future.cancelled():
        future.set_result(value) 
開發者ID:opendevops-cn,項目名稱:opendevops,代碼行數:14,代碼來源:concurrent.py

示例11: _check_not_started

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def _check_not_started(self) -> None:
        if self._process:
            raise asyncio.InvalidStateError('PT has already started') 
開發者ID:twisteroidambassador,項目名稱:ptadapter,代碼行數:5,代碼來源:adapters.py

示例12: _check_started

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def _check_started(self) -> None:
        if not self._process:
            raise asyncio.InvalidStateError('PT has not yet started') 
開發者ID:twisteroidambassador,項目名稱:ptadapter,代碼行數:5,代碼來源:adapters.py

示例13: _check_running

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def _check_running(self) -> None:
        self._check_started()
        if self._stopping:
            raise asyncio.InvalidStateError('PT is stopping or has stopped') 
開發者ID:twisteroidambassador,項目名稱:ptadapter,代碼行數:6,代碼來源:adapters.py

示例14: cancel_awaitable

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def cancel_awaitable(
        awaitable: Awaitable[Any],
        log: Logger,
        done_cb: Optional[Callable[[Awaitable[Any]], Any]] = None
) -> None:
    """
    Cancel a coroutine or a :class:`asyncio.Task`.

    Arguments:
        - `coroutine_or_task`: The coroutine or
          :class:`asyncio.Task` to be cancelled.
        - `done_cb`: An optional callback to be called once the task
          has been cancelled. Will be called immediately if
          `coroutine_or_task` is a coroutine.
    """
    if asyncio.iscoroutine(awaitable):
        coroutine = cast(Coroutine[Any, Any, None], awaitable)
        log.debug('Closing coroutine {}', coroutine)
        coroutine.close()
        if done_cb is not None:
            done_cb(coroutine)
    else:
        task = cast('asyncio.Task[None]', awaitable)
        # A cancelled task can still contain an exception, so we try to
        # fetch that first to avoid having the event loop's exception
        # handler yelling at us.
        try:
            exc = task.exception()
        except asyncio.CancelledError:
            log.debug('Already cancelled task {}', task)
        except asyncio.InvalidStateError:
            log.debug('Cancelling task {}', task)
            task.cancel()
        else:
            if exc is not None:
                log.debug('Ignoring completion of task {} with {}', task, task.result())
            else:
                log.debug('Ignoring exception of task {}: {}', task, repr(exc))
        if done_cb is not None:
            # noinspection PyTypeChecker
            task.add_done_callback(done_cb) 
開發者ID:saltyrtc,項目名稱:saltyrtc-server-python,代碼行數:43,代碼來源:util.py

示例15: _task_done_handler

# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import InvalidStateError [as 別名]
def _task_done_handler(self, task: 'asyncio.Task[None]') -> None:
        assert self._tasks is not None
        self._tasks_remaining -= 1
        self._log.debug('Task done (#tasks={}, #running={}), {}',
                        len(self._tasks), self._tasks_remaining, task)

        # A cancelled task can still contain an exception, so we try to
        # fetch that first to avoid having the event loop's exception
        # handler yelling at us.
        try:
            exc = task.exception()
        except asyncio.CancelledError:
            # We don't care about cancelled tasks unless it's the last one and no
            # exception has been set.
            self._log.debug('Task was cancelled')
            if self._tasks_remaining == 0 and not self._have_result:
                error = 'All tasks have been cancelled prior to an exception'
                self._set_result(Result(InternalError(error)))
                self._cancelled = True
            return
        except asyncio.InvalidStateError as exc_:
            # Err... what the... ?
            self._log.exception('Task done but not done... what the...', exc_)
            exc = exc_
        # Tasks may not ever return without an exception
        if exc is None:
            result = task.result()
            exc = InternalError('Task returned unexpectedly with {}: {}'.format(
                type(result), result))

        # Store the result and cancel all running tasks
        self._set_result(Result(exc))
        self._cancel() 
開發者ID:saltyrtc,項目名稱:saltyrtc-server-python,代碼行數:35,代碼來源:task.py


注:本文中的asyncio.InvalidStateError方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。