mirror of
https://github.com/httpie/cli.git
synced 2024-11-28 18:53:21 +01:00
Refine abstract methods and properties (#1118)
This commit is contained in:
parent
da47e37c44
commit
11399dde76
@ -1,32 +1,33 @@
|
|||||||
|
from abc import ABCMeta, abstractmethod
|
||||||
from typing import Iterable, Optional
|
from typing import Iterable, Optional
|
||||||
from urllib.parse import urlsplit
|
from urllib.parse import urlsplit
|
||||||
|
|
||||||
from .utils import split_cookies
|
from .utils import split_cookies
|
||||||
|
|
||||||
|
|
||||||
class HTTPMessage:
|
class HTTPMessage(metaclass=ABCMeta):
|
||||||
"""Abstract class for HTTP messages."""
|
"""Abstract class for HTTP messages."""
|
||||||
|
|
||||||
def __init__(self, orig):
|
def __init__(self, orig):
|
||||||
self._orig = orig
|
self._orig = orig
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
def iter_body(self, chunk_size: int) -> Iterable[bytes]:
|
def iter_body(self, chunk_size: int) -> Iterable[bytes]:
|
||||||
"""Return an iterator over the body."""
|
"""Return an iterator over the body."""
|
||||||
raise NotImplementedError()
|
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
def iter_lines(self, chunk_size: int) -> Iterable[bytes]:
|
def iter_lines(self, chunk_size: int) -> Iterable[bytes]:
|
||||||
"""Return an iterator over the body yielding (`line`, `line_feed`)."""
|
"""Return an iterator over the body yielding (`line`, `line_feed`)."""
|
||||||
raise NotImplementedError()
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@abstractmethod
|
||||||
def headers(self) -> str:
|
def headers(self) -> str:
|
||||||
"""Return a `str` with the message's headers."""
|
"""Return a `str` with the message's headers."""
|
||||||
raise NotImplementedError()
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@abstractmethod
|
||||||
def encoding(self) -> Optional[str]:
|
def encoding(self) -> Optional[str]:
|
||||||
"""Return a `str` with the message's encoding, if known."""
|
"""Return a `str` with the message's encoding, if known."""
|
||||||
raise NotImplementedError()
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def body(self) -> bytes:
|
def body(self) -> bytes:
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
from abc import ABCMeta, abstractmethod
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
from typing import Callable, Iterable, Union
|
from typing import Callable, Iterable, Union
|
||||||
|
|
||||||
@ -24,7 +25,7 @@ class BinarySuppressedError(DataSuppressedError):
|
|||||||
message = BINARY_SUPPRESSED_NOTICE
|
message = BINARY_SUPPRESSED_NOTICE
|
||||||
|
|
||||||
|
|
||||||
class BaseStream:
|
class BaseStream(metaclass=ABCMeta):
|
||||||
"""Base HTTP message output stream class."""
|
"""Base HTTP message output stream class."""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
@ -50,9 +51,9 @@ class BaseStream:
|
|||||||
"""Return the headers' bytes."""
|
"""Return the headers' bytes."""
|
||||||
return self.msg.headers.encode('utf8')
|
return self.msg.headers.encode('utf8')
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
def iter_body(self) -> Iterable[bytes]:
|
def iter_body(self) -> Iterable[bytes]:
|
||||||
"""Return an iterator over the message body."""
|
"""Return an iterator over the message body."""
|
||||||
raise NotImplementedError()
|
|
||||||
|
|
||||||
def __iter__(self) -> Iterable[bytes]:
|
def __iter__(self) -> Iterable[bytes]:
|
||||||
"""Return an iterator over `self.msg`."""
|
"""Return an iterator over `self.msg`."""
|
||||||
|
Loading…
Reference in New Issue
Block a user