(
self,
cnx: HTTPRequestsConnectionClass | HTTPSRequestsConnectionClass | None,
verb: str,
url: str,
parameters: dict[str, str] | None,
requestHeaders: dict[str, str] | None,
input: T | None,
encode: Callable[[T], tuple[str, Any]],
stream: bool = False,
follow_302_redirect: bool = False,
)
| 1179 | raise ValueError("requestMemoryBlobAndCheck() Expected a str, should never happen") |
| 1180 | |
| 1181 | def __requestEncode( |
| 1182 | self, |
| 1183 | cnx: HTTPRequestsConnectionClass | HTTPSRequestsConnectionClass | None, |
| 1184 | verb: str, |
| 1185 | url: str, |
| 1186 | parameters: dict[str, str] | None, |
| 1187 | requestHeaders: dict[str, str] | None, |
| 1188 | input: T | None, |
| 1189 | encode: Callable[[T], tuple[str, Any]], |
| 1190 | stream: bool = False, |
| 1191 | follow_302_redirect: bool = False, |
| 1192 | ) -> tuple[int, dict[str, Any], str | object]: |
| 1193 | assert verb in ["HEAD", "GET", "POST", "PATCH", "PUT", "DELETE"] |
| 1194 | if parameters is None: |
| 1195 | parameters = {} |
| 1196 | if requestHeaders is None: |
| 1197 | requestHeaders = {} |
| 1198 | |
| 1199 | if self.__auth is not None: |
| 1200 | self.__auth.authentication(requestHeaders) |
| 1201 | requestHeaders["User-Agent"] = self.__userAgent |
| 1202 | |
| 1203 | url = self.__makeAbsoluteUrl(url) |
| 1204 | url = Requester.add_parameters_to_url(url, parameters) |
| 1205 | |
| 1206 | encoded_input = None |
| 1207 | if input is not None: |
| 1208 | requestHeaders["Content-Type"], encoded_input = encode(input) |
| 1209 | |
| 1210 | self.NEW_DEBUG_FRAME(requestHeaders) |
| 1211 | |
| 1212 | status, responseHeaders, output = self.__requestRaw( |
| 1213 | cnx, verb, url, requestHeaders, encoded_input, stream=stream, follow_302_redirect=follow_302_redirect |
| 1214 | ) |
| 1215 | |
| 1216 | if Consts.headerRateRemaining in responseHeaders and Consts.headerRateLimit in responseHeaders: |
| 1217 | self.rate_limiting = ( |
| 1218 | # ints expected but sometimes floats returned: https://github.com/PyGithub/PyGithub/pull/2697 |
| 1219 | int(float(responseHeaders[Consts.headerRateRemaining])), |
| 1220 | int(float(responseHeaders[Consts.headerRateLimit])), |
| 1221 | ) |
| 1222 | if Consts.headerRateReset in responseHeaders: |
| 1223 | # ints expected but sometimes floats returned: https://github.com/PyGithub/PyGithub/pull/2697 |
| 1224 | self.rate_limiting_resettime = int(float(responseHeaders[Consts.headerRateReset])) |
| 1225 | |
| 1226 | if Consts.headerOAuthScopes in responseHeaders: |
| 1227 | self.oauth_scopes = responseHeaders[Consts.headerOAuthScopes].split(", ") |
| 1228 | |
| 1229 | self.DEBUG_ON_RESPONSE(status, responseHeaders, output if isinstance(output, str) else "stream") |
| 1230 | |
| 1231 | return status, responseHeaders, output |
| 1232 | |
| 1233 | def __requestRaw( |
| 1234 | self, |
no test coverage detected