code: def _carbon(host, port):
      '''
      Context manager to ensure the clean creation and destruction of a socket.
  
      host
          The IP or hostname of the carbon server
      port
          The port that carbon is listening on
      '''
      carbon_sock = None
  
      try:
          carbon_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM,
                                      socket.IPPROTO_TCP)
  
          carbon_sock.connect((host, port))
      except socket.error as err:
          log.error('Error connecting to %s:%s, %s', host, port, err)
          raise
      else:
          log.debug('Connected to carbon')
          yield carbon_sock
      finally:
          if carbon_sock is not None:
              # Shut down and close socket
              log.debug('Destroying carbon socket')
  
              carbon_sock.shutdown(socket.SHUT_RDWR)
              carbon_sock.close(f _carbon(host, port):
      '''
      Context manager to ensure the clean creation and destruction of a socket.
  
      host
          The IP or hostname of the carbon server
      port
          The port that carbon is listening on
      '''
      carbon_sock = None
  
      try:
          carbon_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM,
                                      socket.IPPROTO_TCP)
  
          carbon_sock.connect((host, port))
      except socket.error as err:
          log.error('Error connecting to %s:%s, %s', host, port, err)
          raise
      else:
          log.debug('Connected to carbon')
          yield carbon_sock
      finally:
          if carbon_sock is not None:
              # Shut down and close socket
              log.debug('Destroying carbon socket')
  
              carbon_sock.shutdown(socket.SHUT_RDWR)
              carbon_sock.close()
docs: Context manager to ensure the clean creation and destruction of a socket.
  
      host
          The IP or hostname of the carbon server
      port
          The port that carbon is listening on