MCPcopy
hub / github.com/urllib3/urllib3 / from_tuples

Method from_tuples

src/urllib3/fields.py:200–242  ·  view source on GitHub ↗

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,
    )

Source from the content-addressed store, hash-verified

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 """

Callers 3

test_from_tuplesMethod · 0.80
iter_field_objectsFunction · 0.80

Calls 2

guess_content_typeFunction · 0.85
make_multipartMethod · 0.80

Tested by 2

test_from_tuplesMethod · 0.64