Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

agriconnect / meinheld   python

Repository URL to install this package:

/ patch.py

# Copyright (c) 2009-2010 Denis Bilenko. See LICENSE for details.
import sys

noisy = True

__all__ = [
            'patch_all',
            'patch_socket',
          ]

def patch_socket(aggressive=False):
    """Replace the standard socket object with meinheld's cooperative sockets.
    """
    from meinheld import msocket
    _socket = __import__('socket')
    _socket.patched = True
    _socket.socket = msocket.socket
    _socket.SocketType = msocket.SocketType
    if hasattr(msocket, 'socketpair'):
        _socket.socketpair = msocket.socketpair
    if hasattr(msocket, 'fromfd'):
        _socket.fromfd = msocket.fromfd

# def patch_ssl():
    # try:
        # _ssl = __import__('ssl')
    # except ImportError:
        # return
    # from meinheld.ssl import SSLSocket, wrap_socket, get_server_certificate, sslwrap_simple
    # _ssl.SSLSocket = SSLSocket
    # _ssl.wrap_socket = wrap_socket
    # _ssl.get_server_certificate = get_server_certificate
    # _ssl.sslwrap_simple = sslwrap_simple



def patch_all(socket=True, aggressive=True):
    """Do all of the default monkey patching (calls every other function in this module."""
    # order is important
    if socket:
        patch_socket(aggressive=aggressive)
    # if ssl:
        # patch_ssl()