1
0
mirror of https://github.com/httpie/cli.git synced 2025-08-10 22:42:05 +02:00

Refine abstract methods and properties (#1118)

This commit is contained in:
Mickaël Schoentgen
2021-08-05 20:57:23 +02:00
committed by GitHub
parent da47e37c44
commit 11399dde76
2 changed files with 9 additions and 7 deletions

View File

@@ -1,32 +1,33 @@
from abc import ABCMeta, abstractmethod
from typing import Iterable, Optional
from urllib.parse import urlsplit
from .utils import split_cookies
class HTTPMessage:
class HTTPMessage(metaclass=ABCMeta):
"""Abstract class for HTTP messages."""
def __init__(self, orig):
self._orig = orig
@abstractmethod
def iter_body(self, chunk_size: int) -> Iterable[bytes]:
"""Return an iterator over the body."""
raise NotImplementedError()
@abstractmethod
def iter_lines(self, chunk_size: int) -> Iterable[bytes]:
"""Return an iterator over the body yielding (`line`, `line_feed`)."""
raise NotImplementedError()
@property
@abstractmethod
def headers(self) -> str:
"""Return a `str` with the message's headers."""
raise NotImplementedError()
@property
@abstractmethod
def encoding(self) -> Optional[str]:
"""Return a `str` with the message's encoding, if known."""
raise NotImplementedError()
@property
def body(self) -> bytes: