|
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, |
@@ -197,7 +197,7 @@ def search_professors( |
197 | 197 | """Search professors by name (TeacherSearchResultsPageQuery).""" |
198 | 198 | query_var: Dict[str, Any] = {"text": query} |
199 | 199 | if school_id is not None: |
200 | | - query_var["schoolID"] = school_id |
| 200 | + query_var["schoolID"] = _school_node_id(school_id) |
201 | 201 |
|
202 | 202 | data = self.raw_query({ |
203 | 203 | "operationName": "TeacherSearchResultsPageQuery", |
@@ -250,7 +250,7 @@ def list_professors_for_school( |
250 | 250 | ) -> ProfessorSearchResult: |
251 | 251 | """List professors at a school. Wrapper around :meth:`search_professors`.""" |
252 | 252 | return self.search_professors( |
253 | | - query=query or "", |
| 253 | + query=query if query else " ", |
254 | 254 | school_id=str(school_id), |
255 | 255 | page_size=page_size, |
256 | 256 | cursor=cursor, |
@@ -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