Spaces:
Running
Running
"""asyncio exceptions.""" | |
__all__ = ('CancelledError', 'InvalidStateError', 'TimeoutError', | |
'IncompleteReadError', 'LimitOverrunError', | |
'SendfileNotAvailableError') | |
class CancelledError(BaseException): | |
"""The Future or Task was cancelled.""" | |
class TimeoutError(Exception): | |
"""The operation exceeded the given deadline.""" | |
class InvalidStateError(Exception): | |
"""The operation is not allowed in this state.""" | |
class SendfileNotAvailableError(RuntimeError): | |
"""Sendfile syscall is not available. | |
Raised if OS does not support sendfile syscall for given socket or | |
file type. | |
""" | |
class IncompleteReadError(EOFError): | |
""" | |
Incomplete read error. Attributes: | |
- partial: read bytes string before the end of stream was reached | |
- expected: total number of expected bytes (or None if unknown) | |
""" | |
def __init__(self, partial, expected): | |
r_expected = 'undefined' if expected is None else repr(expected) | |
super().__init__(f'{len(partial)} bytes read on a total of ' | |
f'{r_expected} expected bytes') | |
self.partial = partial | |
self.expected = expected | |
def __reduce__(self): | |
return type(self), (self.partial, self.expected) | |
class LimitOverrunError(Exception): | |
"""Reached the buffer limit while looking for a separator. | |
Attributes: | |
- consumed: total number of to be consumed bytes. | |
""" | |
def __init__(self, message, consumed): | |
super().__init__(message) | |
self.consumed = consumed | |
def __reduce__(self): | |
return type(self), (self.args[0], self.consumed) | |