K2LL33D SHELL

 Apache/2.4.7 (Ubuntu)
 Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64
 uid=33(www-data) gid=33(www-data) groups=33(www-data)
 safemode : OFF
 MySQL: ON | Perl: ON | cURL: OFF | WGet: ON
  >  / usr / lib / python2.7 / dist-packages / urllib3 /
server ip : 104.21.89.46

your ip : 172.69.130.130

H O M E


Filename/usr/lib/python2.7/dist-packages/urllib3/filepost.py
Size2.43 kb
Permissionrw-r--r--
Ownerroot : root
Create time27-Apr-2025 09:56
Last modified23-Feb-2014 22:58
Last accessed06-Jul-2025 10:37
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
# urllib3/filepost.py
# Copyright 2008-2013 Andrey Petrov and contributors (see CONTRIBUTORS.txt)
#
# This module is part of urllib3 and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php

import codecs
import mimetypes

from uuid import uuid4
from io import BytesIO

import six
from six import b
from .fields import RequestField

writer = codecs.lookup('utf-8')[3]


def choose_boundary():
"""
Our embarassingly-simple replacement for mimetools.choose_boundary.
"""
return uuid4().hex


def iter_field_objects(fields):
"""
Iterate over fields.

Supports list of (k, v) tuples and dicts, and lists of
:class:`~urllib3.fields.RequestField`.

"""
if isinstance(fields, dict):
i = six.iteritems(fields)
else:
i = iter(fields)

for field in i:
if isinstance(field, RequestField):
yield field
else:
yield RequestField.from_tuples(*field)


def iter_fields(fields):
"""
Iterate over fields.

.. deprecated ::

The addition of `~urllib3.fields.RequestField` makes this function
obsolete. Instead, use :func:`iter_field_objects`, which returns
`~urllib3.fields.RequestField` objects, instead.

Supports list of (k, v) tuples and dicts.

"""
if isinstance(fields, dict):
return ((k, v) for k, v in six.iteritems(fields))

return ((k, v) for k, v in fields)


def encode_multipart_formdata(fields, boundary=None):
"""
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`.
"""
body = BytesIO()
if boundary is None:
boundary = choose_boundary()

for field in iter_field_objects(fields):
body.write(b('--%s\r\n' % (boundary)))

writer(body).write(field.render_headers())
data = field.data

if isinstance(data, int):
data = str(data) # Backwards compatibility

if isinstance(data, six.text_type):
writer(body).write(data)
else:
body.write(data)

body.write(b'\r\n')

body.write(b('--%s--\r\n' % (boundary)))

content_type = str('multipart/form-data; boundary=%s' % boundary)

return body.getvalue(), content_type