Home / File/ server.py — requests Source File

server.py — requests Source File

Architecture documentation for server.py, a python file in the requests codebase. 4 imports, 2 dependents.

File python CoreAPI VerbHandlers 4 imports 2 dependents 1 functions 2 classes

Entity Profile

Dependency Diagram

graph LR
  1299f040_d82e_36bb_76ee_892d203f2f6a["server.py"]
  b006b4a1_ec19_c51f_ab37_63777bd33b0c["select"]
  1299f040_d82e_36bb_76ee_892d203f2f6a --> b006b4a1_ec19_c51f_ab37_63777bd33b0c
  81807cb8_22b9_a4ae_c8b0_91ee147c8a3a["socket"]
  1299f040_d82e_36bb_76ee_892d203f2f6a --> 81807cb8_22b9_a4ae_c8b0_91ee147c8a3a
  d4c9b75a_57ea_9b07_1986_5bd0fc134387["ssl"]
  1299f040_d82e_36bb_76ee_892d203f2f6a --> d4c9b75a_57ea_9b07_1986_5bd0fc134387
  d04f5b22_a751_5438_e937_aa8b0666d15e["threading"]
  1299f040_d82e_36bb_76ee_892d203f2f6a --> d04f5b22_a751_5438_e937_aa8b0666d15e
  48561d17_8bd1_bf20_5710_ec3053a534d2["test_lowlevel.py"]
  48561d17_8bd1_bf20_5710_ec3053a534d2 --> 1299f040_d82e_36bb_76ee_892d203f2f6a
  6cf98a23_4f9c_9f92_66f0_e3af57898d30["test_testserver.py"]
  6cf98a23_4f9c_9f92_66f0_e3af57898d30 --> 1299f040_d82e_36bb_76ee_892d203f2f6a
  style 1299f040_d82e_36bb_76ee_892d203f2f6a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import select
import socket
import ssl
import threading


def consume_socket_content(sock, timeout=0.5):
    chunks = 65536
    content = b""

    while True:
        more_to_read = select.select([sock], [], [], timeout)[0]
        if not more_to_read:
            break

        new_content = sock.recv(chunks)
        if not new_content:
            break

        content += new_content

    return content


class Server(threading.Thread):
    """Dummy server using for unit testing"""

    WAIT_EVENT_TIMEOUT = 5

    def __init__(
        self,
        handler=None,
        host="localhost",
        port=0,
        requests_to_handle=1,
        wait_to_close_event=None,
    ):
        super().__init__()

        self.handler = handler or consume_socket_content
        self.handler_results = []

        self.host = host
        self.port = port
        self.requests_to_handle = requests_to_handle

        self.wait_to_close_event = wait_to_close_event
        self.ready_event = threading.Event()
        self.stop_event = threading.Event()

    @classmethod
    def text_response_server(cls, text, request_timeout=0.5, **kwargs):
        def text_response_handler(sock):
            request_content = consume_socket_content(sock, timeout=request_timeout)
            sock.send(text.encode("utf-8"))

            return request_content

        return Server(text_response_handler, **kwargs)

// ... (117 more lines)

Domain

Subdomains

Classes

Dependencies

  • select
  • socket
  • ssl
  • threading

Frequently Asked Questions

What does server.py do?
server.py is a source file in the requests codebase, written in python. It belongs to the CoreAPI domain, VerbHandlers subdomain.
What functions are defined in server.py?
server.py defines 1 function(s): consume_socket_content.
What does server.py depend on?
server.py imports 4 module(s): select, socket, ssl, threading.
What files import server.py?
server.py is imported by 2 file(s): test_lowlevel.py, test_testserver.py.
Where is server.py in the architecture?
server.py is located at tests/testserver/server.py (domain: CoreAPI, subdomain: VerbHandlers, directory: tests/testserver).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free