in osci/crawlers/github/rest.py [0:0]
def __get_limits(headers) -> RequestsLimit:
"""Parse limits from response header"""
def __parse_int(value: str) -> Optional[int]:
"""Parse int if not None"""
try:
return int(value)
except Exception as ex:
log.warning(f'Error parse `{value}` to int. Exception: {ex}')
return
def __parse_datetime(value: str) -> Optional[datetime.datetime]:
"""Parse datetime if not None"""
value = __parse_int(value)
if value is None:
return
try:
return datetime.datetime.fromtimestamp(value)
except Exception as ex:
log.warning(f'Error parse `{value}` to datetime. Exception: {ex}')
return
return RequestsLimit(requests_limit=__parse_int(headers.get('X-RateLimit-Limit')),
requests_remaining=__parse_int(headers.get('X-RateLimit-Remaining')),
limit_reset_time=__parse_datetime(headers.get('X-RateLimit-Reset')))