Skip to content

SandboxService

SandboxService(rest)

Bases: ObjectService

Service to handle sandboxes in TM1

Source code in TM1py/Services/SandboxService.py
def __init__(self, rest: RestService):
    super().__init__(rest)

create(sandbox, **kwargs)

create a new sandbox in TM1 Server

Parameters:

Name Type Description Default
sandbox Sandbox

Sandbox

required

Returns:

Type Description
Response

response

Source code in TM1py/Services/SandboxService.py
def create(self, sandbox: Sandbox, **kwargs) -> Response:
    """create a new sandbox in TM1 Server

    :param sandbox: Sandbox
    :return: response
    """
    url = "/Sandboxes"
    return self._rest.POST(url=url, data=sandbox.body, **kwargs)

delete(sandbox_name, **kwargs)

delete a sandbox in TM1

Parameters:

Name Type Description Default
sandbox_name str
required

Returns:

Type Description
Response

response

Source code in TM1py/Services/SandboxService.py
def delete(self, sandbox_name: str, **kwargs) -> Response:
    """delete a sandbox in TM1

    :param sandbox_name:
    :return: response
    """
    url = format_url("/Sandboxes('{}')", sandbox_name)
    return self._rest.DELETE(url, **kwargs)

exists(sandbox_name, **kwargs)

check if the sandbox exists in TM1

Parameters:

Name Type Description Default
sandbox_name str

String

required

Returns:

Type Description
bool

bool

Source code in TM1py/Services/SandboxService.py
def exists(self, sandbox_name: str, **kwargs) -> bool:
    """check if the sandbox exists in TM1

    :param sandbox_name: String
    :return: bool
    """
    url = format_url("/Sandboxes('{}')", sandbox_name)
    return self._exists(url, **kwargs)

get(sandbox_name, **kwargs)

get a sandbox from TM1 Server

Parameters:

Name Type Description Default
sandbox_name str

str

required

Returns:

Type Description
Sandbox

instance of TM1py.Sandbox

Source code in TM1py/Services/SandboxService.py
def get(self, sandbox_name: str, **kwargs) -> Sandbox:
    """get a sandbox from TM1 Server

    :param sandbox_name: str
    :return: instance of TM1py.Sandbox
    """
    url = format_url("/Sandboxes('{}')", sandbox_name)
    response = self._rest.GET(url=url, **kwargs)
    sandbox = Sandbox.from_json(response.text)
    return sandbox

get_all(**kwargs)

get all sandboxes from TM1 Server

Returns:

Type Description
List[Sandbox]

List of TM1py.Sandbox instances

Source code in TM1py/Services/SandboxService.py
def get_all(self, **kwargs) -> List[Sandbox]:
    """get all sandboxes from TM1 Server

    :return: List of TM1py.Sandbox instances
    """
    url = "/Sandboxes?$select=Name,IncludeInSandboxDimension,IsLoaded,IsActive,IsQueued"
    response = self._rest.GET(url, **kwargs)
    sandboxes = [Sandbox.from_dict(sandbox_as_dict=sandbox) for sandbox in response.json()["value"]]
    return sandboxes

get_all_names(**kwargs)

get all sandbox names

Parameters:

Name Type Description Default
kwargs
{}

Returns:

Type Description
List[str]
Source code in TM1py/Services/SandboxService.py
def get_all_names(self, **kwargs) -> List[str]:
    """get all sandbox names

    :param kwargs:
    :return:
    """
    url = "/Sandboxes?$select=Name"
    response = self._rest.GET(url, **kwargs)
    return [entry["Name"] for entry in response.json()["value"]]

load(sandbox_name, **kwargs)

load sandbox into memory

Parameters:

Name Type Description Default
sandbox_name str

str

required

Returns:

Type Description
Response

response

Source code in TM1py/Services/SandboxService.py
def load(self, sandbox_name: str, **kwargs) -> Response:
    """load sandbox into memory

    :param sandbox_name: str
    :return: response
    """
    url = format_url("/Sandboxes('{}')/tm1.Load", sandbox_name)
    return self._rest.POST(url=url, **kwargs)

merge(source_sandbox_name, target_sandbox_name, clean_after=False, **kwargs)

merge one sandbox into another

Parameters:

Name Type Description Default
source_sandbox_name str

str

required
target_sandbox_name str

str

required
clean_after bool

bool: Reset source sandbox after merging

False

Returns:

Type Description
Response

response

Source code in TM1py/Services/SandboxService.py
def merge(
    self, source_sandbox_name: str, target_sandbox_name: str, clean_after: bool = False, **kwargs
) -> Response:
    """merge one sandbox into another

    :param source_sandbox_name: str
    :param target_sandbox_name: str
    :param clean_after: bool: Reset source sandbox after merging
    :return: response
    """
    url = format_url("/Sandboxes('{}')/tm1.Merge", source_sandbox_name)
    payload = dict()
    payload["Target@odata.bind"] = format_url("Sandboxes('{}')", target_sandbox_name)
    payload["CleanAfter"] = clean_after
    return self._rest.POST(url=url, data=json.dumps(payload), **kwargs)

publish(sandbox_name, **kwargs)

publish existing sandbox to base

Parameters:

Name Type Description Default
sandbox_name str

str

required

Returns:

Type Description
Response

response

Source code in TM1py/Services/SandboxService.py
def publish(self, sandbox_name: str, **kwargs) -> Response:
    """publish existing sandbox to base

    :param sandbox_name: str
    :return: response
    """
    url = format_url("/Sandboxes('{}')/tm1.Publish", sandbox_name)
    return self._rest.POST(url=url, **kwargs)

reset(sandbox_name, **kwargs)

reset all changes in specified sandbox

Parameters:

Name Type Description Default
sandbox_name str

str

required

Returns:

Type Description
Response

response

Source code in TM1py/Services/SandboxService.py
def reset(self, sandbox_name: str, **kwargs) -> Response:
    """reset all changes in specified sandbox

    :param sandbox_name: str
    :return: response
    """
    url = format_url("/Sandboxes('{}')/tm1.DiscardChanges", sandbox_name)
    return self._rest.POST(url=url, **kwargs)

unload(sandbox_name, **kwargs)

unload sandbox from memory

Parameters:

Name Type Description Default
sandbox_name str

str

required

Returns:

Type Description
Response

response

Source code in TM1py/Services/SandboxService.py
def unload(self, sandbox_name: str, **kwargs) -> Response:
    """unload sandbox from memory

    :param sandbox_name: str
    :return: response
    """
    url = format_url("/Sandboxes('{}')/tm1.Unload", sandbox_name)
    return self._rest.POST(url=url, **kwargs)

update(sandbox, **kwargs)

update a sandbox in TM1

Parameters:

Name Type Description Default
sandbox Sandbox
required

Returns:

Type Description
Response

response

Source code in TM1py/Services/SandboxService.py
def update(self, sandbox: Sandbox, **kwargs) -> Response:
    """update a sandbox in TM1

    :param sandbox:
    :return: response
    """
    url = format_url("/Sandboxes('{}')", sandbox.name)
    return self._rest.PATCH(url=url, data=sandbox.body, **kwargs)