code: def _make_request(self, opener, request, timeout=None):
          
          timeout = timeout or self.timeout
          try:
              return opener.open(request, timeout=timeout)
          except HTTPError as err:
              exc = handle_error(err)
              exc.__cause__ = None
              raise exc
docs: Make the API call and return the response. This is separated into
             it's own function, so we can mock it easily for testing.
  
          :param opener:
          :type opener:
          :param request: url payload to request
          :type request: urllib.Request object
          :param timeout: timeout value or None
          :type timeout: float
          :return: urllib response