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

core: support custom request/response classes (#1205)

* core: support custom request/response classes

* Move to `httpie.models`, prefix with `Requests`
This commit is contained in:
Batuhan Taskaya
2021-11-25 02:45:39 +03:00
committed by GitHub
parent c000886546
commit ef62fc11bf
4 changed files with 46 additions and 15 deletions

View File

@@ -1,4 +1,7 @@
from typing import Iterable
import requests
from enum import Enum, auto
from typing import Iterable, Union
from urllib.parse import urlsplit
from .utils import split_cookies, parse_content_type_header
@@ -118,3 +121,20 @@ class HTTPRequest(HTTPMessage):
# Happens with JSON/form request data parsed from the command line.
body = body.encode()
return body or b''
RequestsMessage = Union[requests.PreparedRequest, requests.Response]
class RequestsMessageKind(Enum):
REQUEST = auto()
RESPONSE = auto()
def infer_requests_message_kind(message: RequestsMessage) -> RequestsMessageKind:
if isinstance(message, requests.PreparedRequest):
return RequestsMessageKind.REQUEST
elif isinstance(message, requests.Response):
return RequestsMessageKind.RESPONSE
else:
raise TypeError(f"Unexpected message type: {type(message).__name__}")