[Python-Dev] PEP 446: issue with sockets

Victor Stinner victor.stinner at gmail.com
Wed Aug 21 01:57:32 CEST 2013


2013/8/21 Victor Stinner <victor.stinner at gmail.com>:
> Should I add a portable helper to the
> socket module (socket.get/set_inheritable)?

Add the two following functions to the socket module:

def get_inheritable(sock):
    if os.name == 'nt':
        return os.get_handle_inheritable(sock.fileno())
    else:
        return os.get_inheritable(sock.fileno())

def set_inheritable(sock, inheritable):
    if os.name == 'nt':
        os.set_handle_inheritable(sock.fileno(), inheritable)
    else:
        os.set_inheritable(sock.fileno(), inheritable)

Usage: socket.get_inheritable(sock) and socket.set_inheritable(sock, True)

> Or add 2 methods to the socket class?

Add the two following methods to the socket class:

    def get_inheritable(self):
        if os.name == 'nt':
            return os.get_handle_inheritable(self.fileno())
        else:
            return os.get_inheritable(self.fileno())

    def set_inheritable(self, inheritable):
        if os.name == 'nt':
            os.set_handle_inheritable(self.fileno(), inheritable)
        else:
            os.set_inheritable(self.fileno(), inheritable)

Usage: s.get_inheritable() and sock.set_inheritable(True)

Victor


More information about the Python-Dev mailing list