Skip to content

Commit

Permalink
gdrive: remove redundant _gdrive_retry function (#6831)
Browse files Browse the repository at this point in the history
  • Loading branch information
isidentical authored Oct 18, 2021
1 parent c08655a commit 9e57d1c
Showing 1 changed file with 1 addition and 31 deletions.
32 changes: 1 addition & 31 deletions dvc/fs/gdrive.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import threading
from urllib.parse import urlparse

from funcy import cached_property, retry, wrap_prop
from funcy import cached_property, wrap_prop

from dvc.exceptions import DvcException
from dvc.path_info import CloudURLInfo
Expand Down Expand Up @@ -34,36 +34,6 @@ def __init__(self, cred_location):
super().__init__(message)


def _gdrive_retry(func):
def should_retry(exc):
from pydrive2.files import ApiRequestError

if not isinstance(exc, ApiRequestError):
return False

error_code = exc.error.get("code", 0)
result = False
if 500 <= error_code < 600:
result = True

if error_code == 403:
result = exc.GetField("reason") in [
"userRateLimitExceeded",
"rateLimitExceeded",
]
if result:
logger.debug(f"Retrying GDrive API call, error: {exc}.")

return result

# 16 tries, start at 0.5s, multiply by golden ratio, cap at 20s
return retry(
16,
timeout=lambda a: min(0.5 * 1.618 ** a, 20),
filter_errors=should_retry,
)(func)


class GDriveURLInfo(CloudURLInfo):
def __init__(self, url):
super().__init__(url)
Expand Down

0 comments on commit 9e57d1c

Please sign in to comment.