google.resumable_media.common

Common utilities for Google Media Downloads and Resumable Uploads.

Includes custom exception types, useful constants and shared helpers.

exception google.resumable_media.common.DataCorruption(response, *args)

Bases: Exception

Error class for corrupt media transfers.

Parameters:
  • response (object) – The HTTP response which caused the failure.
  • args (tuple) – The positional arguments typically passed to an exception class.
args
response = None

The HTTP response object that caused the failure.

Type:object
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception google.resumable_media.common.InvalidResponse(response, *args)

Bases: Exception

Error class for responses which are not in the correct state.

Parameters:
  • response (object) – The HTTP response which caused the failure.
  • args (tuple) – The positional arguments typically passed to an exception class.
args
response = None

The HTTP response object that caused the failure.

Type:object
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

google.resumable_media.common.MAX_CUMULATIVE_RETRY = 600.0

Maximum total sleep time allowed during retry process.

This is provided (10 minutes) as a default. When the cumulative sleep exceeds this limit, no more retries will occur.

Type:float
google.resumable_media.common.MAX_SLEEP = 64.0

Maximum amount of time allowed between requests.

Used during the retry process for sleep after a failed request. Chosen since it is the power of two nearest to one minute.

Type:float
google.resumable_media.common.PERMANENT_REDIRECT = 308

Permanent redirect status code.

It is used by Google services to indicate some (but not all) of a resumable upload has been completed.

http.client.PERMANENT_REDIRECT was added in Python 3.5, so can’t be used in a “general” code base.

For more information, see RFC 7238.

Type:int
class google.resumable_media.common.RetryStrategy(max_sleep=64.0, max_cumulative_retry=None, max_retries=None)

Bases: object

Configuration class for retrying failed requests.

At most one of max_cumulative_retry and max_retries can be specified (they are both caps on the total number of retries). If neither are specified, then max_cumulative_retry is set as MAX_CUMULATIVE_RETRY.

Parameters:
  • max_sleep (Optional [ float ]) – The maximum amount of time to sleep after a failed request. Default is MAX_SLEEP.
  • max_cumulative_retry (Optional [ float ]) – The maximum total amount of time to sleep during retry process.
  • max_retries (Optional [ int ]) – The number of retries to attempt.
max_sleep

Maximum amount of time allowed between requests.

Type:float
max_cumulative_retry

Maximum total sleep time allowed during retry process.

Type:Optional [ float ]
max_retries

The number retries to attempt.

Type:Optional [ int ]
Raises:ValueError – If both of max_cumulative_retry and max_retries are passed.
retry_allowed(total_sleep, num_retries)

Check if another retry is allowed.

Parameters:
  • total_sleep (float) – The amount of sleep accumulated by the caller.
  • num_retries (int) – The number of retries already attempted by the caller.
Returns:

Indicating if another retry is allowed (depending on either the cumulative sleep allowed or the maximum number of retries allowed.

Return type:

bool

google.resumable_media.common.TOO_MANY_REQUESTS = 429

Status code indicating rate-limiting.

http.client.TOO_MANY_REQUESTS was added in Python 3.3, so can’t be used in a “general” code base.

For more information, see RFC 6585.

Type:int
google.resumable_media.common.UPLOAD_CHUNK_SIZE = 262144

Chunks in a resumable upload must come in multiples of 256 KB.

Type:int