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)