forked from python-gitlab/python-gitlab
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprotocol.py
More file actions
28 lines (22 loc) · 705 Bytes
/
protocol.py
File metadata and controls
28 lines (22 loc) · 705 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from __future__ import annotations
import abc
from typing import Any, Protocol
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder # type: ignore
class BackendResponse(Protocol):
@abc.abstractmethod
def __init__(self, response: requests.Response) -> None: ...
class Backend(Protocol):
@abc.abstractmethod
def http_request(
self,
method: str,
url: str,
json: dict[str, Any] | bytes | None,
data: dict[str, Any] | MultipartEncoder | None,
params: Any | None,
timeout: float | None,
verify: bool | str | None,
stream: bool | None,
**kwargs: Any,
) -> BackendResponse: ...