Translate our `args` into `requests.Request` keyword arguments.
(
env: Environment,
args: argparse.Namespace,
base_headers: HTTPHeadersDict = None,
request_body_read_callback=lambda chunk: chunk
)
| 323 | |
| 324 | |
| 325 | def make_request_kwargs( |
| 326 | env: Environment, |
| 327 | args: argparse.Namespace, |
| 328 | base_headers: HTTPHeadersDict = None, |
| 329 | request_body_read_callback=lambda chunk: chunk |
| 330 | ) -> dict: |
| 331 | """ |
| 332 | Translate our `args` into `requests.Request` keyword arguments. |
| 333 | |
| 334 | """ |
| 335 | files = args.files |
| 336 | # Serialize JSON data, if needed. |
| 337 | data = args.data |
| 338 | auto_json = data and not args.form |
| 339 | if (args.json or auto_json) and isinstance(data, dict): |
| 340 | data = json_dict_to_request_body(data) |
| 341 | |
| 342 | # Finalize headers. |
| 343 | headers = make_default_headers(args) |
| 344 | if base_headers: |
| 345 | headers.update(base_headers) |
| 346 | headers.update(args.headers) |
| 347 | if args.offline and args.chunked and 'Transfer-Encoding' not in headers: |
| 348 | # When online, we let requests set the header instead to be able more |
| 349 | # easily verify chunking is taking place. |
| 350 | headers['Transfer-Encoding'] = 'chunked' |
| 351 | headers = finalize_headers(headers) |
| 352 | |
| 353 | if (args.form and files) or args.multipart: |
| 354 | data, headers['Content-Type'] = get_multipart_data_and_content_type( |
| 355 | data=args.multipart_data, |
| 356 | boundary=args.boundary, |
| 357 | content_type=args.headers.get('Content-Type'), |
| 358 | ) |
| 359 | |
| 360 | return { |
| 361 | 'method': args.method.lower(), |
| 362 | 'url': args.url, |
| 363 | 'headers': headers, |
| 364 | 'data': prepare_request_body( |
| 365 | env, |
| 366 | data, |
| 367 | body_read_callback=request_body_read_callback, |
| 368 | chunked=args.chunked, |
| 369 | offline=args.offline, |
| 370 | content_length_header_value=headers.get('Content-Length'), |
| 371 | ), |
| 372 | 'auth': args.auth, |
| 373 | 'params': args.params.items(), |
| 374 | } |
| 375 | |
| 376 | |
| 377 | def ensure_path_as_is(orig_url: str, prepped_url: str) -> str: |
no test coverage detected