mit_opencourseware.bulk_import ============================== .. py:module:: mit_opencourseware.bulk_import Attributes ---------- .. autoapisummary:: mit_opencourseware.bulk_import.MIT_OCW_BASE_URL mit_opencourseware.bulk_import.MIT_OCW_TOPICS_INDEX_URL mit_opencourseware.bulk_import.MIT_OCW_TOPIC_URL_PREFIX mit_opencourseware.bulk_import.DEFAULT_QUERY mit_opencourseware.bulk_import.DEFAULT_LIMIT mit_opencourseware.bulk_import.logger mit_opencourseware.bulk_import.plugin mit_opencourseware.bulk_import.here Functions --------- .. autoapisummary:: mit_opencourseware.bulk_import._status_code_from_http_error mit_opencourseware.bulk_import._normalize_course_url mit_opencourseware.bulk_import._normalized_query mit_opencourseware.bulk_import._text_matches_query mit_opencourseware.bulk_import._dedupe_strings mit_opencourseware.bulk_import._topic_labels mit_opencourseware.bulk_import._listing_matches_query mit_opencourseware.bulk_import._course_matches_query mit_opencourseware.bulk_import._names_from_value mit_opencourseware.bulk_import._extract_json_ld_course_values mit_opencourseware.bulk_import.parse_course_page mit_opencourseware.bulk_import._fetch_json_list mit_opencourseware.bulk_import._fetch_text mit_opencourseware.bulk_import.fetch_topic_index mit_opencourseware.bulk_import.fetch_topic_course_listings mit_opencourseware.bulk_import._collect_unique_course_listings mit_opencourseware.bulk_import.fetch_course_details mit_opencourseware.bulk_import.search_courses mit_opencourseware.bulk_import.bulk_translate mit_opencourseware.bulk_import.bulk_import Module Contents --------------- .. py:data:: MIT_OCW_BASE_URL :value: 'https://ocw.mit.edu' .. py:data:: MIT_OCW_TOPICS_INDEX_URL :value: 'https://ocw.mit.edu/courses/find-by-topic/topics.json' .. py:data:: MIT_OCW_TOPIC_URL_PREFIX :value: 'https://ocw.mit.edu/courses/find-by-topic/' .. py:data:: DEFAULT_QUERY :value: 'python' .. py:data:: DEFAULT_LIMIT :value: 50 .. py:data:: logger .. py:data:: plugin .. py:function:: _status_code_from_http_error(exc: httpx.HTTPError) -> str | int .. py:function:: _normalize_course_url(href: str) -> str .. py:function:: _normalized_query(query: str) -> str .. py:function:: _text_matches_query(query: str, *values: str) -> bool .. py:function:: _dedupe_strings(values: list[str]) -> list[str] .. py:function:: _topic_labels(listing: server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWCourseListing) -> list[str] .. py:function:: _listing_matches_query(listing: server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWCourseListing, query: str) -> bool .. py:function:: _course_matches_query(course: server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWCourse, query: str) -> bool .. py:function:: _names_from_value(value: object) -> list[str] .. py:function:: _extract_json_ld_course_values(payload: object) -> tuple[str, str, list[str]] .. py:function:: parse_course_page(html: str, listing: server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWCourseListing) -> server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWCourse .. py:function:: _fetch_json_list(httpx_async_client: httpx.AsyncClient, url: str) -> list[dict[str, object]] :async: .. py:function:: _fetch_text(httpx_async_client: httpx.AsyncClient, url: str) -> str :async: .. py:function:: fetch_topic_index(httpx_async_client: httpx.AsyncClient) -> list[server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWTopicIndexItem] :async: .. py:function:: fetch_topic_course_listings(httpx_async_client: httpx.AsyncClient, topic_file: str) -> list[server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWCourseListing] :async: .. py:function:: _collect_unique_course_listings(httpx_async_client: httpx.AsyncClient) -> list[server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWCourseListing] :async: .. py:function:: fetch_course_details(httpx_async_client: httpx.AsyncClient, listing: server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWCourseListing) -> server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWCourse :async: .. py:function:: search_courses(query: str = DEFAULT_QUERY, limit: int = DEFAULT_LIMIT) -> list[server.plugins.mit_opencourseware.mit_opencourseware_models.MITOCWCourse] :async: .. py:function:: bulk_translate(courses: list[dict]) -> collections.abc.Iterator[server.plugins.ome_plugin.EducationResource] .. py:function:: bulk_import(query: str = DEFAULT_QUERY, limit: int = DEFAULT_LIMIT, cache_path: pathlib.Path | None = None) -> list[dict] Fetch MIT OpenCourseWare courses matching a query and return OME cards. .. py:data:: here