docs: def get_session(key=None, username=None, password=None, cache=True,
                  cache_expiry=datetime.timedelta(days=7), cookie_path=COOKIE_PATH, backend='memory',
                  version=VERSION_GLOBAL):
      """Get Voobly API session."""
      class VooblyAuth(AuthBase):  # pylint: disable=too-few-public-methods
          """Voobly authorization storage."""
  
          def __init__(self, key, username, password, cookie_path, version):
              """Init."""
              self.key = key
              self.username = username
              self.password = password
              self.cookie_path = cookie_path
              self.base_url = BASE_URLS[version]
  
          def __call__(self, r):
              """Call is no-op."""
              return r
  
      if version not in BASE_URLS:
          raise ValueError('unsupported voobly version')
  
      session = requests.session()
      if cache:
          session = requests_cache.core.CachedSession(expire_after=cache_expiry, backend=backend)
      session.auth = VooblyAuth(key, username, password, cookie_path, version)
      if os.path.exists(cookie_path):
          _LOGGER.info("cookie found at: %s", cookie_path)
          session.cookies = _load_cookies(cookie_path)
      return session