17db96d56Sopenharmony_ci"""asyncio exceptions.""" 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci__all__ = ('BrokenBarrierError', 57db96d56Sopenharmony_ci 'CancelledError', 'InvalidStateError', 'TimeoutError', 67db96d56Sopenharmony_ci 'IncompleteReadError', 'LimitOverrunError', 77db96d56Sopenharmony_ci 'SendfileNotAvailableError') 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ciclass CancelledError(BaseException): 117db96d56Sopenharmony_ci """The Future or Task was cancelled.""" 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ciTimeoutError = TimeoutError # make local alias for the standard exception 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_ci 177db96d56Sopenharmony_ciclass InvalidStateError(Exception): 187db96d56Sopenharmony_ci """The operation is not allowed in this state.""" 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ci 217db96d56Sopenharmony_ciclass SendfileNotAvailableError(RuntimeError): 227db96d56Sopenharmony_ci """Sendfile syscall is not available. 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci Raised if OS does not support sendfile syscall for given socket or 257db96d56Sopenharmony_ci file type. 267db96d56Sopenharmony_ci """ 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ciclass IncompleteReadError(EOFError): 307db96d56Sopenharmony_ci """ 317db96d56Sopenharmony_ci Incomplete read error. Attributes: 327db96d56Sopenharmony_ci 337db96d56Sopenharmony_ci - partial: read bytes string before the end of stream was reached 347db96d56Sopenharmony_ci - expected: total number of expected bytes (or None if unknown) 357db96d56Sopenharmony_ci """ 367db96d56Sopenharmony_ci def __init__(self, partial, expected): 377db96d56Sopenharmony_ci r_expected = 'undefined' if expected is None else repr(expected) 387db96d56Sopenharmony_ci super().__init__(f'{len(partial)} bytes read on a total of ' 397db96d56Sopenharmony_ci f'{r_expected} expected bytes') 407db96d56Sopenharmony_ci self.partial = partial 417db96d56Sopenharmony_ci self.expected = expected 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ci def __reduce__(self): 447db96d56Sopenharmony_ci return type(self), (self.partial, self.expected) 457db96d56Sopenharmony_ci 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ciclass LimitOverrunError(Exception): 487db96d56Sopenharmony_ci """Reached the buffer limit while looking for a separator. 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_ci Attributes: 517db96d56Sopenharmony_ci - consumed: total number of to be consumed bytes. 527db96d56Sopenharmony_ci """ 537db96d56Sopenharmony_ci def __init__(self, message, consumed): 547db96d56Sopenharmony_ci super().__init__(message) 557db96d56Sopenharmony_ci self.consumed = consumed 567db96d56Sopenharmony_ci 577db96d56Sopenharmony_ci def __reduce__(self): 587db96d56Sopenharmony_ci return type(self), (self.args[0], self.consumed) 597db96d56Sopenharmony_ci 607db96d56Sopenharmony_ci 617db96d56Sopenharmony_ciclass BrokenBarrierError(RuntimeError): 627db96d56Sopenharmony_ci """Barrier is broken by barrier.abort() call.""" 63