o d @sddlmZddlZddlZddlZddlmZddlmZddl m Z ddl m Z e dd Zd d Zd d ZddZdddZdS))absolute_importN)BytesIO) RequestField)six)bzutf-8cCs$ttd}tjs|d}|S)zN Our embarrassingly-simple replacement for mimetools.choose_boundary. ascii)binasciihexlifyosurandomrPY2decode)boundaryrk/private/var/folders/v1/_jykv66s6qd26_69j1njbrl80000gr/T/pip-target-p1gutpg6/lib/python/urllib3/filepost.pychoose_boundarys rccsLt|tr t|}nt|}|D]}t|tr|Vqtj|VqdS)z Iterate over fields. Supports list of (k, v) tuples and dicts, and lists of :class:`~urllib3.fields.RequestField`. N) isinstancedictr iteritemsiterr from_tuples)fieldsifieldrrriter_field_objectss   rcCs,t|trddt|DSdd|DS)a- .. deprecated:: 1.6 Iterate over fields. The addition of :class:`~urllib3.fields.RequestField` makes this function obsolete. Instead, use :func:`iter_field_objects`, which returns :class:`~urllib3.fields.RequestField` objects. Supports list of (k, v) tuples and dicts. cs|] \}}||fVqdSNr.0kvrrr :ziter_fields..csrrrr rrrr$<r%)rrrr)rrrr iter_fields-s r&cCst}|dur t}t|D]8}|td|t|||j}t|t r.t |}t|t j rs