def _init_session(cls, session=None): # type: (Optional[Session]) -> Session """Initialise the given session and load class cookies to its jar. Arguments: session (~requests.Session, optional): a `requests` session, or `None` to create a new one. Returns: ~requests.Session: an initialised session instance. """ session = session or Session() # Load cookies session.cookies = LWPCookieJar( cls._cachefs.getsyspath(cls._COOKIE_FILE)) try: typing.cast(FileCookieJar, session.cookies).load() except IOError: pass typing.cast(FileCookieJar, session.cookies).clear_expired_cookies() return session