code: def defaultRetryPredicate(exception):
      
      return (isinstance(exception, (socket.error,
                                     socket.gaierror,
                                     HTTPException,
                                     requests.ConnectionError,
                                     requests.Timeout))
              or isinstance(exception, AzureException) and
              any(message in str(exception).lower() for message in (
                  "could not be completed within the specified time",
                  "service unavailable",
                  "server is busy")))
docs: >>> defaultRetryPredicate(socket.error())
      True
      >>> defaultRetryPredicate(socket.gaierror())
      True
      >>> defaultRetryPredicate(HTTPException())
      True
      >>> defaultRetryPredicate(requests.ConnectionError())
      True
      >>> defaultRetryPredicate(AzureException('x could not be completed within the specified time'))
      True
      >>> defaultRetryPredicate(AzureException('x service unavailable'))
      True
      >>> defaultRetryPredicate(AzureException('x server is busy'))
      True
      >>> defaultRetryPredicate(AzureException('x'))
      False
      >>> defaultRetryPredicate(RuntimeError())
      False