diff --git a/nest/nest.py b/nest/nest.py index a7100f8..cc9b3ba 100644 --- a/nest/nest.py +++ b/nest/nest.py @@ -1699,24 +1699,25 @@ def _handle_ratelimit(self, res, verb, url, data, retries = 0 while response.status_code == 429 and retries <= max_retries: retries += 1 - retry_after = response.headers['Retry-After'] + retry_after = response.headers.get('Retry-After') _LOGGER.info("Reach rate limit, retry (%d), after %s", retries, retry_after) # Default Retry Time wait = default_wait - try: - # Checks if retry_after is a number - wait = float(retry_after) - except ValueError: - # If not: + if retry_after is not None: try: - # Checks if retry_after is a HTTP date - now = datetime.datetime.now() - wait = (now - parse_time(retry_after)).total_seconds() + # Checks if retry_after is a number + wait = float(retry_after) except ValueError: - # Does nothing and uses default (shouldn't happen) - pass + # If not: + try: + # Checks if retry_after is a HTTP date + now = datetime.datetime.now() + wait = (now - parse_time(retry_after)).total_seconds() + except ValueError: + # Use default + pass _LOGGER.debug("Wait %d seconds.", wait) time.sleep(wait) diff --git a/setup.py b/setup.py index 1c98e93..c2a4d55 100755 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ # Bumping Minor means API bugfix or new functionality. # Bumping Micro means CLI change of any kind unless it is # significant enough to warrant a minor/major bump. -version = '4.0.4' +version = '4.0.5' setup(name='python-nest',