|
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