|
13 | 13 | from typing import Any, Dict, Iterator, List, Mapping, Optional, Tuple |
14 | 14 |
|
15 | 15 | from .config import RMPClientConfig |
16 | | -from .errors import ParsingError |
| 16 | +from .errors import HttpError, ParsingError, RetryError, RMPAPIError |
17 | 17 | from .http import HttpClient, HttpClientContext |
18 | 18 | from .models import ( |
19 | 19 | CompareSchoolsResult, |
@@ -351,9 +351,12 @@ def get_professor_ratings_page( |
351 | 351 | after = first.next_cursor if first.has_next_page else None |
352 | 352 |
|
353 | 353 | while after is not None: |
354 | | - nxt = self._fetch_professor_ratings_page( |
355 | | - professor_id, after=after, first=100, course_filter=course_filter |
356 | | - ) |
| 354 | + try: |
| 355 | + nxt = self._fetch_professor_ratings_page( |
| 356 | + professor_id, after=after, first=100, course_filter=course_filter |
| 357 | + ) |
| 358 | + except (RMPAPIError, HttpError, RetryError): |
| 359 | + break |
357 | 360 | all_ratings.extend(nxt.ratings) |
358 | 361 | after = nxt.next_cursor if nxt.has_next_page else None |
359 | 362 |
|
@@ -459,7 +462,10 @@ def get_school_ratings_page( |
459 | 462 | after = first.next_cursor if first.has_next_page else None |
460 | 463 |
|
461 | 464 | while after is not None: |
462 | | - nxt = self._fetch_school_ratings_page(school_id, after=after, first=100) |
| 465 | + try: |
| 466 | + nxt = self._fetch_school_ratings_page(school_id, after=after, first=100) |
| 467 | + except (RMPAPIError, HttpError, RetryError): |
| 468 | + break |
463 | 469 | all_ratings.extend(nxt.ratings) |
464 | 470 | after = nxt.next_cursor if nxt.has_next_page else None |
465 | 471 |
|
|
0 commit comments