|
8 | 8 |
|
9 | 9 | import requests |
10 | 10 | import requests.utils |
11 | | -from requests_toolbelt.multipart.encoder import MultipartEncoder # type: ignore |
12 | 11 |
|
13 | 12 | import gitlab |
14 | 13 | import gitlab.config |
@@ -637,38 +636,6 @@ def _check_redirects(result: requests.Response) -> None: |
637 | 636 | ) |
638 | 637 | ) |
639 | 638 |
|
640 | | - @staticmethod |
641 | | - def _prepare_send_data( |
642 | | - files: Optional[Dict[str, Any]] = None, |
643 | | - post_data: Optional[Union[Dict[str, Any], bytes]] = None, |
644 | | - raw: bool = False, |
645 | | - ) -> Tuple[ |
646 | | - Optional[Union[Dict[str, Any], bytes]], |
647 | | - Optional[Union[Dict[str, Any], MultipartEncoder]], |
648 | | - str, |
649 | | - ]: |
650 | | - if files: |
651 | | - if post_data is None: |
652 | | - post_data = {} |
653 | | - else: |
654 | | - # booleans does not exists for data (neither for MultipartEncoder): |
655 | | - # cast to string int to avoid: 'bool' object has no attribute 'encode' |
656 | | - if TYPE_CHECKING: |
657 | | - assert isinstance(post_data, dict) |
658 | | - for k, v in post_data.items(): |
659 | | - if isinstance(v, bool): |
660 | | - post_data[k] = str(int(v)) |
661 | | - post_data["file"] = files.get("file") |
662 | | - post_data["avatar"] = files.get("avatar") |
663 | | - |
664 | | - data = MultipartEncoder(post_data) |
665 | | - return (None, data, data.content_type) |
666 | | - |
667 | | - if raw and post_data: |
668 | | - return (None, post_data, "application/octet-stream") |
669 | | - |
670 | | - return (post_data, None, "application/json") |
671 | | - |
672 | 639 | def http_request( |
673 | 640 | self, |
674 | 641 | verb: str, |
@@ -746,7 +713,9 @@ def http_request( |
746 | 713 | retry_transient_errors = self.retry_transient_errors |
747 | 714 |
|
748 | 715 | # We need to deal with json vs. data when uploading files |
749 | | - json, data, content_type = self._prepare_send_data(files, post_data, raw) |
| 716 | + json, data, content_type = self.http_backend.prepare_send_data( |
| 717 | + files, post_data, raw |
| 718 | + ) |
750 | 719 | opts["headers"]["Content-type"] = content_type |
751 | 720 |
|
752 | 721 | cur_retries = 0 |
|
0 commit comments