old_contents: """
  patch for py25 socket to work with http://pypi.python.org/pypi/ssl/
  copy-paste from py2.6 stdlib socket.py
  https://gist.github.com/zed/1347055
  """
  import socket
  
  _GLOBAL_DEFAULT_TIMEOUT = getattr(socket, '_GLOBAL_DEFAULT_TIMEOUT', object())
  def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT,
                        source_address=None):
      """Connect to *address* and return the socket object.
  
      Convenience function.  Connect to *address* (a 2-tuple ``(host,
      port)``) and return the socket object.  Passing the optional
      *timeout* parameter will set the timeout on the socket instance
      before attempting to connect.  If no *timeout* is supplied, the
      global default timeout setting returned by :func:`getdefaulttimeout`
      is used.
      """
  
      host, port = address
      err = None
      for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
          af, socktype, proto, canonname, sa = res
          sock = None
          try:
              sock = socket.socket(af, socktype, proto)
              if timeout is not _GLOBAL_DEFAULT_TIMEOUT:
                  sock.settimeout(timeout)
              if source_address:
                  sock.bind(source_address)
              sock.connect(sa)
              return sock
  
          except socket.error:
              err = sys.exc_info()[1]
              if sock is not None:
                  sock.close()
  
      if err is not None:
          raise err
      else:
          raise socket.error("getaddrinfo returns an empty list")
  
new_contents: """
  patch for py25 socket to work with http://pypi.python.org/pypi/ssl/
  copy-paste from py2.6 stdlib socket.py
  https://gist.github.com/zed/1347055
  """
  import socket
  import sys
  
  _GLOBAL_DEFAULT_TIMEOUT = getattr(socket, '_GLOBAL_DEFAULT_TIMEOUT', object())
  def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT,
                        source_address=None):
      """Connect to *address* and return the socket object.
  
      Convenience function.  Connect to *address* (a 2-tuple ``(host,
      port)``) and return the socket object.  Passing the optional
      *timeout* parameter will set the timeout on the socket instance
      before attempting to connect.  If no *timeout* is supplied, the
      global default timeout setting returned by :func:`getdefaulttimeout`
      is used.
      """
  
      host, port = address
      err = None
      for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
          af, socktype, proto, canonname, sa = res
          sock = None
          try:
              sock = socket.socket(af, socktype, proto)
              if timeout is not _GLOBAL_DEFAULT_TIMEOUT:
                  sock.settimeout(timeout)
              if source_address:
                  sock.bind(source_address)
              sock.connect(sa)
              return sock
  
          except socket.error:
              err = sys.exc_info()[1]
              if sock is not None:
                  sock.close()
  
      if err is not None:
          raise err
      else:
          raise socket.error("getaddrinfo returns an empty list")
  
subject: add missing sys import