Builds form parameters. :param files: File parameters. :return: Form parameters with files.
(self, files: Dict[str, Union[str, bytes]])
| 508 | return "&".join(["=".join(map(str, item)) for item in new_params]) |
| 509 | |
| 510 | def files_parameters(self, files: Dict[str, Union[str, bytes]]): |
| 511 | """Builds form parameters. |
| 512 | |
| 513 | :param files: File parameters. |
| 514 | :return: Form parameters with files. |
| 515 | """ |
| 516 | params = [] |
| 517 | for k, v in files.items(): |
| 518 | if isinstance(v, str): |
| 519 | with open(v, 'rb') as f: |
| 520 | filename = os.path.basename(f.name) |
| 521 | filedata = f.read() |
| 522 | elif isinstance(v, bytes): |
| 523 | filename = k |
| 524 | filedata = v |
| 525 | else: |
| 526 | raise ValueError("Unsupported file value") |
| 527 | mimetype = ( |
| 528 | mimetypes.guess_type(filename)[0] |
| 529 | or 'application/octet-stream' |
| 530 | ) |
| 531 | params.append( |
| 532 | tuple([k, tuple([filename, filedata, mimetype])]) |
| 533 | ) |
| 534 | return params |
| 535 | |
| 536 | def select_header_accept(self, accepts: List[str]) -> Optional[str]: |
| 537 | """Returns `Accept` based on an array of accepts provided. |