Set line length to 120 characters (#2599)

This commit is contained in:
Jirka Borovec
2023-07-13 17:37:20 +02:00
committed by GitHub
parent de80ff4b91
commit 13e178a3ab
192 changed files with 1455 additions and 4433 deletions
+30 -119
View File
@@ -63,20 +63,7 @@ import urllib.parse
from collections import defaultdict
from datetime import datetime, timezone
from io import IOBase
from typing import (
TYPE_CHECKING,
Any,
Callable,
Dict,
Generic,
ItemsView,
List,
Optional,
Tuple,
Type,
TypeVar,
Union,
)
from typing import TYPE_CHECKING, Any, Callable, Dict, Generic, ItemsView, List, Optional, Tuple, Type, TypeVar, Union
import requests
import requests.adapters
@@ -300,18 +287,14 @@ class Requester:
"""
if self.DEBUG_FLAG: # pragma no branch (Flag always set in tests)
new_frame = [requestHeader, None, None, None]
if (
self._frameCount < self.DEBUG_FRAME_BUFFER_SIZE - 1
): # pragma no branch (Should be covered)
if self._frameCount < self.DEBUG_FRAME_BUFFER_SIZE - 1: # pragma no branch (Should be covered)
self._frameBuffer.append(new_frame)
else:
self._frameBuffer[0] = new_frame # pragma no cover (Should be covered)
self._frameCount = len(self._frameBuffer) - 1
def DEBUG_ON_RESPONSE(
self, statusCode: int, responseHeader: Dict[str, Union[str, int]], data: str
):
def DEBUG_ON_RESPONSE(self, statusCode: int, responseHeader: Dict[str, Union[str, int]], data: str):
"""
Update current frame with response
Current frame index will be attached to responseHeader
@@ -325,9 +308,7 @@ class Requester:
responseHeader[self.DEBUG_HEADER_KEY] = self._frameCount
def check_me(self, obj: "GithubObject"):
if (
self.DEBUG_FLAG and self.ON_CHECK_ME is not None
): # pragma no branch (Flag always set in tests)
if self.DEBUG_FLAG and self.ON_CHECK_ME is not None: # pragma no branch (Flag always set in tests)
frame = None
if self.DEBUG_HEADER_KEY in obj._headers:
frame_index = obj._headers[self.DEBUG_HEADER_KEY]
@@ -341,9 +322,7 @@ class Requester:
#############################################################
_frameCount: int
__connectionClass: Union[
Type[HTTPRequestsConnectionClass], Type[HTTPSRequestsConnectionClass]
]
__connectionClass: Union[Type[HTTPRequestsConnectionClass], Type[HTTPSRequestsConnectionClass]]
__hostname: str
__authorizationHeader: Optional[str]
__last_requests: Dict[str, float]
@@ -452,11 +431,7 @@ class Requester:
headers: Optional[Dict[str, str]] = None,
input: Optional[Any] = None,
) -> Tuple[Dict[str, Any], Any]:
return self.__check(
*self.requestJson(
verb, url, parameters, headers, input, self.__customConnection(url)
)
)
return self.__check(*self.requestJson(verb, url, parameters, headers, input, self.__customConnection(url)))
def requestMultipartAndCheck(
self,
@@ -466,11 +441,7 @@ class Requester:
headers: Optional[Dict[str, Any]] = None,
input: Optional[Dict[str, str]] = None,
) -> Tuple[Dict[str, Any], Optional[Dict[str, Any]]]:
return self.__check(
*self.requestMultipart(
verb, url, parameters, headers, input, self.__customConnection(url)
)
)
return self.__check(*self.requestMultipart(verb, url, parameters, headers, input, self.__customConnection(url)))
def requestBlobAndCheck(
self,
@@ -479,15 +450,9 @@ class Requester:
parameters: Optional[Dict[str, str]] = None,
headers: Optional[Dict[str, str]] = None,
input: Optional[str] = None,
cnx: Optional[
Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]
] = None,
cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None,
) -> Tuple[Dict[str, Any], Dict[str, Any]]:
return self.__check(
*self.requestBlob(
verb, url, parameters, headers, input, self.__customConnection(url)
)
)
return self.__check(*self.requestBlob(verb, url, parameters, headers, input, self.__customConnection(url)))
def __check(
self,
@@ -503,18 +468,13 @@ class Requester:
def __customConnection(
self, url: str
) -> Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]]:
cnx: Optional[
Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]
] = None
cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None
if not url.startswith("/"):
o = urllib.parse.urlparse(url)
if (
o.hostname != self.__hostname
or (o.port and o.port != self.__port)
or (
o.scheme != self.__scheme
and not (o.scheme == "https" and self.__scheme == "http")
)
or (o.scheme != self.__scheme and not (o.scheme == "https" and self.__scheme == "http"))
): # issue80
if o.scheme == "http":
cnx = self.__httpConnectionClass(
@@ -544,15 +504,9 @@ class Requester:
exc = GithubException.GithubException
if status == 401 and message == "bad credentials":
exc = GithubException.BadCredentialsException
elif (
status == 401
and Consts.headerOTP in headers
and re.match(r".*required.*", headers[Consts.headerOTP])
):
elif status == 401 and Consts.headerOTP in headers and re.match(r".*required.*", headers[Consts.headerOTP]):
exc = GithubException.TwoFactorException
elif status == 403 and message.startswith(
"missing or invalid user agent string"
):
elif status == 403 and message.startswith("missing or invalid user agent string"):
exc = GithubException.BadUserAgentException
elif status == 403 and cls.isRateLimitError(message):
exc = GithubException.RateLimitExceededException
@@ -563,9 +517,7 @@ class Requester:
@classmethod
def isRateLimitError(cls, message: str) -> bool:
return cls.isPrimaryRateLimitError(message) or cls.isSecondaryRateLimitError(
message
)
return cls.isPrimaryRateLimitError(message) or cls.isSecondaryRateLimitError(message)
@classmethod
def isPrimaryRateLimitError(cls, message: str) -> bool:
@@ -607,9 +559,7 @@ class Requester:
parameters: Optional[Dict[str, Any]] = None,
headers: Optional[Dict[str, Any]] = None,
input: Optional[Any] = None,
cnx: Optional[
Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]
] = None,
cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None,
) -> Tuple[int, Dict[str, Any], str]:
def encode(input):
return "application/json", json.dumps(input)
@@ -623,9 +573,7 @@ class Requester:
parameters: Optional[Dict[str, Any]] = None,
headers: Optional[Dict[str, Any]] = None,
input: Optional[Dict[str, str]] = None,
cnx: Optional[
Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]
] = None,
cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None,
) -> Tuple[int, Dict[str, Any], str]:
def encode(input):
boundary = "----------------------------3c3ba8b523b2"
@@ -649,9 +597,7 @@ class Requester:
parameters: Optional[Dict[str, str]] = None,
headers: Optional[Dict[str, str]] = None,
input: Optional[str] = None,
cnx: Optional[
Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]
] = None,
cnx: Optional[Union[HTTPRequestsConnectionClass, HTTPSRequestsConnectionClass]] = None,
) -> Tuple[int, Dict[str, Any], str]:
if headers is None:
headers = {}
@@ -661,11 +607,7 @@ class Requester:
mime_type = headers["Content-Type"] # type: ignore
else:
guessed_type = mimetypes.guess_type(local_path)
mime_type = (
guessed_type[0]
if guessed_type[0] is not None
else Consts.defaultMediaType
)
mime_type = guessed_type[0] if guessed_type[0] is not None else Consts.defaultMediaType
f = open(local_path, "rb")
return mime_type, f
@@ -673,20 +615,14 @@ class Requester:
headers["Content-Length"] = str(os.path.getsize(input))
return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode)
def requestMemoryBlobAndCheck(
self, verb, url, parameters, headers, file_like, cnx=None
):
def requestMemoryBlobAndCheck(self, verb, url, parameters, headers, file_like, cnx=None):
# The expected signature of encode means that the argument is ignored.
def encode(_):
return headers["Content-Type"], file_like
if not cnx:
cnx = self.__customConnection(url)
return self.__check(
*self.__requestEncode(
cnx, verb, url, parameters, headers, file_like, encode
)
)
return self.__check(*self.__requestEncode(cnx, verb, url, parameters, headers, file_like, encode))
def __requestEncode(
self,
@@ -705,9 +641,7 @@ class Requester:
requestHeaders = {}
if self.__auth is not None:
requestHeaders[
"Authorization"
] = f"{self.__auth.token_type} {self.__auth.token}"
requestHeaders["Authorization"] = f"{self.__auth.token_type} {self.__auth.token}"
requestHeaders["User-Agent"] = self.__userAgent
url = self.__makeAbsoluteUrl(url)
@@ -719,14 +653,9 @@ class Requester:
self.NEW_DEBUG_FRAME(requestHeaders)
status, responseHeaders, output = self.__requestRaw(
cnx, verb, url, requestHeaders, encoded_input
)
status, responseHeaders, output = self.__requestRaw(cnx, verb, url, requestHeaders, encoded_input)
if (
Consts.headerRateRemaining in responseHeaders
and Consts.headerRateLimit in responseHeaders
):
if Consts.headerRateRemaining in responseHeaders and Consts.headerRateLimit in responseHeaders:
self.rate_limiting = (
int(responseHeaders[Consts.headerRateRemaining]),
int(responseHeaders[Consts.headerRateLimit]),
@@ -767,9 +696,7 @@ class Requester:
if isinstance(input, IOBase):
input.close()
self.__log(
verb, url, requestHeaders, input, status, responseHeaders, output
)
self.__log(verb, url, requestHeaders, input, status, responseHeaders, output)
if status == 202 and (
verb == "GET" or verb == "HEAD"
@@ -792,21 +719,15 @@ class Requester:
)
if o.path == url:
port = ":" + str(self.__port) if self.__port is not None else ""
requested_location = (
f"{self.__scheme}://{self.__hostname}{port}{url}"
)
requested_location = f"{self.__scheme}://{self.__hostname}{port}{url}"
raise RuntimeError(
f"Requested {requested_location} but server redirected to {location}, "
f"you may need to correct your Github server URL "
f"via base_url: Github(base_url=...)"
)
if self._logger.isEnabledFor(logging.INFO):
self._logger.info(
f"Following Github server redirection from {url} to {o.path}"
)
return self.__requestRaw(
original_cnx, verb, o.path, requestHeaders, input
)
self._logger.info(f"Following Github server redirection from {url} to {o.path}")
return self.__requestRaw(original_cnx, verb, o.path, requestHeaders, input)
return status, responseHeaders, output
finally:
@@ -824,16 +745,8 @@ class Requester:
last_request = max(requests) if requests else 0
last_write = max(writes) if writes else 0
next_request = (
(last_request + self.__seconds_between_requests)
if self.__seconds_between_requests
else 0
)
next_write = (
(last_write + self.__seconds_between_writes)
if self.__seconds_between_writes
else 0
)
next_request = (last_request + self.__seconds_between_requests) if self.__seconds_between_requests else 0
next_write = (last_write + self.__seconds_between_writes) if self.__seconds_between_writes else 0
next = next_request if verb == "GET" else max(next_request, next_write)
defer = max(next - datetime.now(timezone.utc).timestamp(), 0)
@@ -914,9 +827,7 @@ class Requester:
headersForRequest = requestHeaders.copy()
if "Authorization" in requestHeaders:
if requestHeaders["Authorization"].startswith("Basic"):
headersForRequest[
"Authorization"
] = "Basic (login and password removed)"
headersForRequest["Authorization"] = "Basic (login and password removed)"
elif requestHeaders["Authorization"].startswith("token"):
headersForRequest["Authorization"] = "token (oauth token removed)"
elif requestHeaders["Authorization"].startswith("Bearer"):