code: def basic_auth_handler(url, method, timeout, headers, data, username=None, password=None):
      
  
      def handle():
          """Handler that implements HTTP Basic Auth.
          """
          if username is not None and password is not None:
              auth_value = '{0}:{1}'.format(username, password).encode('utf-8')
              auth_token = base64.b64encode(auth_value)
              auth_header = b'Basic ' + auth_token
              headers.append(['Authorization', auth_header])
          default_handler(url, method, timeout, headers, data)()
  
      return handle
docs: Handler that implements HTTP/HTTPS connections with Basic Auth.
  
      Sets auth headers using supplied 'username' and 'password', if set.
      Used by the push_to_gateway functions. Can be re-used by other handlers.