Source code for nokey.education.university_domains_and_names

import requests_cache
from .. helperFuncs import make_request as mr

[docs] class UniversityDomainsAndNames: """ A class to interact with the University Domains and Names API. Attributes: base_url: The base url for the University Domains and Names API. about: A short description of the API. """ def __init__(self, use_caching=False, cache_name="university_cache", backend="sqlite", expire_after=3600): self.base_url = "http://universities.hipolabs.com/search?" self.about = "This API accesses a list of universities and their domain names." if use_caching: requests_cache.install_cache(cache_name, backend=backend, expire_after=expire_after)
[docs] def get_docs_url(self): """ Returns the url for the University Domains and Names API documentation. Args: None Returns: string: URL for API documentation. """ return "https://github.com/Hipo/university-domains-list"
[docs] def get_university_name_and_domain(self, name, country, offset=None, limit=None): """ Returns university names and domains for the given parameters. Args: name (str): Whole or partial name of university in question. country (str): Country of university in question. offset (int): Optional pagination parameter to limit search. Defaults to None. limit (int): Optional pagination parameter to limit number of results. Defaults to None. Returns: dict: List containing universities matching parameters with their respective domains. """ if offset is not None and limit is not None: endpoint = f"name={name}&country={country}&offset={offset}&limit={limit}" elif offset is not None: endpoint = f"name={name}&country={country}&offset={offset}" elif limit is not None: endpoint = f"name={name}&country={country}&limit={limit}" else: endpoint = f"name={name}&country={country}" return mr.make_request(self.base_url+endpoint)
[docs] def update_list(self): """ Forces a refresh of the API, since the API won't automatically update the dataset if it changes. Args: None Returns: dict: An updated, refreshed list of the university dataset. """ endpoint = "update" return mr.make_request(self.base_url+endpoint)