Current Path: > > opt > cloudlinux > venv > lib64 > python3.11 > site-packages > urllib3
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
contrib | Directory | - | - | |
util | Directory | - | - | |
__init__.py | File | 5307 bytes | April 17 2025 13:10:58. | |
_base_connection.py | File | 5651 bytes | April 17 2025 13:10:58. | |
_collections.py | File | 16817 bytes | April 17 2025 13:10:58. | |
_request_methods.py | File | 7756 bytes | April 17 2025 13:10:58. | |
_version.py | File | 98 bytes | April 17 2025 13:10:58. | |
connection.py | File | 33830 bytes | April 17 2025 13:10:58. | |
connectionpool.py | File | 42961 bytes | April 17 2025 13:10:58. | |
exceptions.py | File | 9385 bytes | April 17 2025 13:10:58. | |
fields.py | File | 11026 bytes | April 17 2025 13:10:58. | |
filepost.py | File | 2395 bytes | April 17 2025 13:10:58. | |
poolmanager.py | File | 22648 bytes | April 17 2025 13:10:58. | |
py.typed | File | 93 bytes | April 17 2025 13:10:58. | |
response.py | File | 40092 bytes | April 17 2025 13:10:58. |
from __future__ import annotations import binascii import codecs import os import typing from io import BytesIO from .fields import _TYPE_FIELD_VALUE_TUPLE, RequestField writer = codecs.lookup("utf-8")[3] _TYPE_FIELDS_SEQUENCE = typing.Sequence[ typing.Union[typing.Tuple[str, _TYPE_FIELD_VALUE_TUPLE], RequestField] ] _TYPE_FIELDS = typing.Union[ _TYPE_FIELDS_SEQUENCE, typing.Mapping[str, _TYPE_FIELD_VALUE_TUPLE], ] def choose_boundary() -> str: """ Our embarrassingly-simple replacement for mimetools.choose_boundary. """ return binascii.hexlify(os.urandom(16)).decode() def iter_field_objects(fields: _TYPE_FIELDS) -> typing.Iterable[RequestField]: """ Iterate over fields. Supports list of (k, v) tuples and dicts, and lists of :class:`~urllib3.fields.RequestField`. """ iterable: typing.Iterable[RequestField | tuple[str, _TYPE_FIELD_VALUE_TUPLE]] if isinstance(fields, typing.Mapping): iterable = fields.items() else: iterable = fields for field in iterable: if isinstance(field, RequestField): yield field else: yield RequestField.from_tuples(*field) def encode_multipart_formdata( fields: _TYPE_FIELDS, boundary: str | None = None ) -> tuple[bytes, str]: """ 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`). Values are processed by :func:`urllib3.fields.RequestField.from_tuples`. :param boundary: If not specified, then a random boundary will be generated using :func:`urllib3.filepost.choose_boundary`. """ body = BytesIO() if boundary is None: boundary = choose_boundary() for field in iter_field_objects(fields): body.write(f"--{boundary}\r\n".encode("latin-1")) writer(body).write(field.render_headers()) data = field.data if isinstance(data, int): data = str(data) # Backwards compatibility if isinstance(data, str): writer(body).write(data) else: body.write(data) body.write(b"\r\n") body.write(f"--{boundary}--\r\n".encode("latin-1")) content_type = f"multipart/form-data; boundary={boundary}" return body.getvalue(), content_type
SILENT KILLER Tool