def __get_limits()

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')))