A :class:`~urllib3.fields.RequestField` factory from old-style tuple parameters. Supports constructing :class:`~urllib3.fields.RequestField` from parameter of key/value strings AND key/filetuple. A filetuple is a (filename, data, MIME type) tuple where the MIME type
(
cls,
fieldname: str,
value: _TYPE_FIELD_VALUE_TUPLE,
header_formatter: typing.Callable[[str, _TYPE_FIELD_VALUE], str] | None = None,
)
| 198 | |
| 199 | @classmethod |
| 200 | def from_tuples( |
| 201 | cls, |
| 202 | fieldname: str, |
| 203 | value: _TYPE_FIELD_VALUE_TUPLE, |
| 204 | header_formatter: typing.Callable[[str, _TYPE_FIELD_VALUE], str] | None = None, |
| 205 | ) -> RequestField: |
| 206 | """ |
| 207 | A :class:`~urllib3.fields.RequestField` factory from old-style tuple parameters. |
| 208 | |
| 209 | Supports constructing :class:`~urllib3.fields.RequestField` from |
| 210 | parameter of key/value strings AND key/filetuple. A filetuple is a |
| 211 | (filename, data, MIME type) tuple where the MIME type is optional. |
| 212 | For example:: |
| 213 | |
| 214 | 'foo': 'bar', |
| 215 | 'fakefile': ('foofile.txt', 'contents of foofile'), |
| 216 | 'realfile': ('barfile.txt', open('realfile').read()), |
| 217 | 'typedfile': ('bazfile.bin', open('bazfile').read(), 'image/jpeg'), |
| 218 | 'nonamefile': 'contents of nonamefile field', |
| 219 | |
| 220 | Field names and filenames must be unicode. |
| 221 | """ |
| 222 | filename: str | None |
| 223 | content_type: str | None |
| 224 | data: _TYPE_FIELD_VALUE |
| 225 | |
| 226 | if isinstance(value, tuple): |
| 227 | if len(value) == 3: |
| 228 | filename, data, content_type = value |
| 229 | else: |
| 230 | filename, data = value |
| 231 | content_type = guess_content_type(filename) |
| 232 | else: |
| 233 | filename = None |
| 234 | content_type = None |
| 235 | data = value |
| 236 | |
| 237 | request_param = cls( |
| 238 | fieldname, data, filename=filename, header_formatter=header_formatter |
| 239 | ) |
| 240 | request_param.make_multipart(content_type=content_type) |
| 241 | |
| 242 | return request_param |
| 243 | |
| 244 | def _render_part(self, name: str, value: _TYPE_FIELD_VALUE) -> str: |
| 245 | """ |