Source code for wolframclient.evaluation.cloud.server
# -*- coding: utf-8 -*-
from __future__ import absolute_import, print_function, unicode_literals
from wolframclient.utils import six
__all__ = ["WolframServer"]
[docs]class WolframServer(object):
    """ Represents the cloud server.
    Contains the authentication endpoints information, the API endpoint aka. the
    cloud base (`$CloudBase` in the Wolfram Language), and eventually the xauth
    consumer key and secret.
    """
    def __init__(
        self,
        cloudbase,
        request_token_endpoint,
        access_token_endpoint,
        xauth_consumer_key=None,
        xauth_consumer_secret=None,
        certificate=None,
    ):
        self.cloudbase = cloudbase
        self.request_token_endpoint = request_token_endpoint
        self.access_token_endpoint = access_token_endpoint
        self.xauth_consumer_key = xauth_consumer_key
        self.xauth_consumer_secret = xauth_consumer_secret
        if certificate is None or isinstance(certificate, six.string_types):
            self.certificate = certificate
        else:
            raise ValueError("Invalid certificate. Must be a string type or None.")
[docs]    def is_xauth(self):
        return self.xauth_consumer_key is not None and self.xauth_consumer_secret is not None 
    def __repr__(self):
        return (
            "<%s: cloudbase=%s, request_token=%s, access_token=%s, certificate=%s, xauth support=%s>"
            % (
                self.__class__.__name__,
                self.cloudbase,
                self.request_token_endpoint,
                self.access_token_endpoint,
                self.certificate,
                self.is_xauth(),
            )
        ) 
# A built-in instance representing the Wolfram Public Cloud.
WOLFRAM_PUBLIC_CLOUD_SERVER = WolframServer(
    "https://www.wolframcloud.com",
    "https://account.wolfram.com/auth/request-token",
    "https://account.wolfram.com/auth/access-token",
    xauth_consumer_key=None,
    xauth_consumer_secret=None,
)