a æ…Y ã@s„ddlmZddlZddlmZddlmZddlmZddl m Z ddl m Z e  d ¡d Zd d „Zd d„Zdd„Zddd„ZdS)é)Úabsolute_importN)Úuuid4)ÚBytesIOé)Úsix)Úb)Ú RequestFieldzutf-8écCstƒjS)zN Our embarrassingly-simple replacement for mimetools.choose_boundary. )rÚhex©r r úI/Users/ymaher/Downloads/lambdas_org/requests/packages/urllib3/filepost.pyÚchoose_boundarysr ccsJt|tƒrt |¡}nt|ƒ}|D]"}t|tƒr8|Vq"tj|ŽVq"dS)z† Iterate over fields. Supports list of (k, v) tuples and dicts, and lists of :class:`~urllib3.fields.RequestField`. N)Ú isinstanceÚdictrÚ iteritemsÚiterrÚ from_tuples)ÚfieldsÚiÚfieldr r r Úiter_field_objectss   rcCs,t|tƒrdd„t |¡DƒSdd„|DƒS)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. css|]\}}||fVqdS©Nr ©Ú.0ÚkÚvr r r Ú 6óziter_fields..css|]\}}||fVqdSrr rr r r r8r)rrrr)rr r r Ú iter_fields)s rcCs¸tƒ}|durtƒ}t|ƒD]p}| td|ƒ¡t|ƒ | ¡¡|j}t|t ƒr\t |ƒ}t|t j ƒrxt|ƒ |¡n | |¡| d¡q| td|ƒ¡t d|ƒ}|  ¡|fS)aJ Encode a dictionary of ``fields`` using the multipart/form-data MIME format. :param fields: Dictionary of fields or list of (key, :class:`~urllib3.fields.RequestField`). :param boundary: If not specified, then a random boundary will be generated using :func:`mimetools.choose_boundary`. Nz--%s s z--%s-- z multipart/form-data; boundary=%s)rr rÚwriterÚwriterÚrender_headersÚdatarÚintÚstrrÚ text_typeÚgetvalue)rÚboundaryÚbodyrr"Ú content_typer r r Úencode_multipart_formdata;s       r*)N)Ú __future__rÚcodecsÚuuidrÚiorÚpackagesrZ packages.sixrrrÚlookupr r rrr*r r r r Ús